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); } }