web项目提交表单出现404错误
表单部分如下:
文件名:login.jsp
<form action="login" method="post">
<div class="u">
<input type="text" class="uname" name="userName" value="" />
</div>
<div class="p">
<input type="password" class="pwd" name="password" value="" />
</div>
<div class="s">
<select name="type">
<option value="">请选择登陆类型</option>
<option value="0">学生</option>
<option value="1">老师</option>
<option value="2">管理员</option>
</select>
</div>
<div class="l">
<button type="submit">登录</button>
</div>
</form>
servlet文件:
文件名:LoginServlet
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String userName = req.getParameter("userName");
String password = req.getParameter("password");
String type = req.getParameter("type");
if(StringUtils.isBlank(userName) || StringUtils.isBlank(password) || StringUtils.isBlank(type)) {
req.setAttribute("error", "录入信息不能为空!");
req.getRequestDispatcher("login.jsp").forward(req, resp);
return;
}
HttpSession session = req.getSession();
if(StringUtils.isNotBlank(type)) {
try {
if("0".equals(type)) {
//学生登录验证
Student student = DaoFactory.getInstance().getStudentDao().login(userName, MD5.encrypByMd5(MD5.encrypByMd5(password)));
if(student != null) {
session.setAttribute("user", student);
session.setAttribute("type", type);
resp.sendRedirect("index.jsp");
}else {
req.setAttribute("error", "用户名或密码错误!");
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
}else if("1".equals(type)) {
//老师登录验证
Teacher teacher = DaoFactory.getInstance().getTeacherDao().login(userName, MD5.encrypByMd5(MD5.encrypByMd5(password)));
if(teacher != null) {
session.setAttribute("user", teacher);
session.setAttribute("type", type);
resp.sendRedirect("index.jsp");
}else {
req.setAttribute("error", "用户名或密码错误!");
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
}else {
//管理员登录验证
Admin admin = new Admin();
admin.setUserName(userName);
admin.setPwd(MD5.encrypByMd5(MD5.encrypByMd5(password)));
Admin entity = DaoFactory.getInstance().getAdminDao().login(admin);
if(entity != null) {
//执行跳转
session.setAttribute("user", entity);
session.setAttribute("type", type);
resp.sendRedirect("index.jsp");
}else {
//用户或密码错误!!
req.setAttribute("error", "用户名或密码错误!");
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}else {
}
}
}
检查了tomcat部署路径 改为了/ 。路径核对无误。
成功登录
1.路径没错,就有可能是没有权限,看看前端请求的时候,header有没有token字符串
2.后端接口写的有问题
3.看看有没有阻止表单默认提交行为