首先创建Filter实现
Filter
@Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest servletRequest1=(HttpServletRequest) request; //放行URL if (servletRequest1.getRequestURI().equals("/iusers/login")){ filterChain.doFilter(request,response); } Object user = servletRequest1.getSession().getAttribute("user"); if (user==null){ servletRequest1.getRequestDispatcher("/jsp/login.jsp").forward(request,response); }else { //放行请求 filterChain.doFilter(request,response); } }
重写doFilter方法进行拦截
编写controller控制器
@Controller @RequestMapping("/iusers") public class IUsersController { @Resource(name = "iUsersService") private IUsersService iUsersService; /*登录*/ @RequestMapping("/login") @ResponseBody private ModelAndView getLogin(String userName, String password, ModelAndView mv, HttpServletRequest request, HttpServletResponse response, HttpSession session) throws Exception { Users user = iUsersService.getlogin(userName, password); System.out.println("user======"+user); if (user!=null){ System.out.println("成功"); //登录成功 request.getSession().setAttribute("user",user); //转发 mv.setViewName("index"); }else{ //登录失败 mv.addObject("message","登录名或密码错误,请重新输入"); mv.setViewName("login"); // mv.setViewName("loginForm"); } return mv; }
效果如下:
如果检测到你还没有登录则跳转到login.jsp页面