拦截器登录验证

拦截器登录验证

  1. 配置

    
        
        
    
  2. 拦截器

    public class LoginInterceptor implements HandlerInterceptor {
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
            HttpSession session = request.getSession();
            //已登录,放行
            if (session.getAttribute("userLoginInfo") != null) {
                return true;
            }
            //在登陆页面,放行
            if (request.getRequestURI().contains("login")) {
                return true;
            }
            //未登录,转发到登录页面
            request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);
            return false;
        }
    }
  3. 控制器

    @Controller
    @RequestMapping("/user")
    public class LoginController {
        //主页
        @RequestMapping("/main")
        public String main() {
            return "main";
        }
        //跳转到登陆页面
        @RequestMapping("/login")
        public String login() {
            return "login";
        }
        //登陆后回到主页
        @RequestMapping("/userlogin")
        public String login(HttpSession session, String username, String pwd, Model model) {
            session.setAttribute("userLoginInfo", username);
            model.addAttribute("username", username);
            return "main";
        }
        //注销后回到登陆页面
        @RequestMapping("/logout")
        public String logout(HttpSession session){
            session.removeAttribute("userLoginInfo");
            return "login";
        }
    }
  4. 主页

    首页

    ${username}已登录

    注销

  5. 登陆页面

    登陆页面

    用户名: 密码:

你可能感兴趣的:(拦截器登录验证)