今天做了个小的管理员登陆处理页面 ,通过一个Jsp页面,表单提交到此servlet,用此servlet处理用户名和密码的问题。当用户名和密码正确时,转到管理页面admin.jsp,当密码或用户名不正确时,返回到登陆页面并显示错误信息。
当没有写代码中红色的return时,密码不正确时运行正常,显示错误信息;但是当密码错误是就出现 500错误,经过反复思考觉得应该是用到两个forward 的问题,若执行第一个forward之后 加上return让其 直接返回,问题就很好的解决了!
while (rs.next()) {
if (name.equals(rs.getString("name"))
&& password.equals(rs.getString("password"))) {
RequestDispatcher dispatcher = request
.getRequestDispatcher("../bookshop/admin.jsp");
dispatcher.forward(request, response);
return;
}
}
request.setAttribute("Error", "*用户名或密码不正确");
RequestDispatcher dispatcher = request
.getRequestDispatcher("../adminLogin.jsp");
dispatcher.forward(request, response);