public class AdminLoginServlet extends HttpServlet {
private AdminService aService = new AdminServiceImpl();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//post 怎么解决乱码
request.setCharacterEncoding("UTF-8");
String checkcode = request.getParameter("checkcode");
if(checkcode == ""){
request.setAttribute("msg", "验证码为空");
RequestDispatcher rd= request.getRequestDispatcher("/login.jsp");
rd.forward(request, response);
}else{
String ckcode = (String) request.getSession().getAttribute("ckcode");
if(checkcode.equals(ckcode)){
//request.getSession().getAttribute("checkcode");
String name = request.getParameter("uname");
String pass = request.getParameter("upass");
Admin entity = aService.checkLogin(name, pass);
if(entity==null){
//重定向
request.setAttribute("msg", "用户名或者密码错误");
RequestDispatcher rd= request.getRequestDispatcher("/login.jsp");
rd.forward(request, response);
//请求转发
}else{
System.out.println(entity.toString());
//利用session存入用户对象
request.getSession().setAttribute("admin", entity);
//转发到这个index.jsp页面中 疑问 index.jsp能获取到admin对象的值
//response.sendRedirect("./index.jsp");
//请求转发
RequestDispatcher rd= request.getRequestDispatcher("/index.jsp");
rd.forward(request, response);
}
}else{
request.setAttribute("msg", "验证码不正确");
RequestDispatcher rd= request.getRequestDispatcher("/login.jsp");
rd.forward(request, response);
}
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
本文介绍了一个基于Java Servlet的管理员登录验证流程实现。该流程包括了前端输入验证、验证码校验、用户信息验证以及会话管理等内容。通过使用forward进行页面跳转来保持状态的一致性。
1836

被折叠的 条评论
为什么被折叠?



