Dao层略过数组
Domain略过cookie
Service层过session
Web层jsp
Select逻辑spa
获取表单数据,Web—service——Dao返回用户信息code
若是返回不为null不然,重定向到登陆页面。则判断用户是否勾选7天免登陆,若是勾选(判断一下)。把用户数据存入session域中,而且要建立一个cookie设置时间为7天,保存cookie中.对象
select代码:blog
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //得到表单数据 String name = request.getParameter("username"); String password = request.getParameter("password"); //查询有没有该用户 User u = new User(name, password); UserService us = new UserServiceImpl(); User user = us.login(u); //用户帐号密码正确 if (user != null) { //判断是否勾选7天免登录 if ("ok".equals(request.getParameter("auto"))) { //数据保存到session中 request.getSession().setAttribute("user", user); //保存信息到cookie中 Cookie cookie = new Cookie("auto#"+name, password); cookie.setMaxAge(70 * 60); cookie.setPath("/"); response.addCookie(cookie); } request.getRequestDispatcher("main.jsp").forward(request, response); } else { response.sendRedirect("/autoFiler/index.jsp"); } }
Filter过滤器逻辑get
Filter主要过滤index.jspit
得到cookie数组进行非空判断,若是cookie有值则遍历之,判断cookie是不是保存的有username的值,若是有则进行把cookie保存的用户名密码取出,调用service——Dao判断用户是否存在,若是存在转发到mian.jsp,并放行。若是不存在,重定向到index.Jsp登陆页面。若是cookie数组中没有保存该用户的cookie,则放行。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; //1. 获取cookie 判断非空 Cookie[] cookies = req.getCookies(); if(cookies!=null){ //2. 遍历cookie for (Cookie cookie : cookies) { //3. 判断cookie存在 name命名的值 if(cookie.getName().contains("auto")){ String username=cookie.getName().split("#")[1]; String password=cookie.getValue(); User u=new User(username,password); UserService us = new UserServiceImpl(); User user = us.login(u); //4.若是user对象存在 自动登陆 if(user!=null){ req.getSession().setAttribute("user", user); request.getRequestDispatcher("main.jsp").forward(request, response); chain.doFilter(req, res); }else{ //5.若是不存在,从新跳转至登陆页面 res.sendRedirect("/autoFiler/index.jsp"); chain.doFilter(req, res); } } } chain.doFilter(req, res); } }