filter过滤器

首先创建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页面

原文地址:https://www.cnblogs.com/ws1149939228/p/11866634.html