filter实现拦截没有登录的用户

@WebFilter("/*")  //注解配置过滤路径
public class LoginFilter implements Filter {

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
        //1.获取HttpServletRequest对象
        HttpServletRequest request=(HttpServletRequest)servletRequest;
        //获取访问的路径
        String uri = request.getRequestURI();
        //判断,如果访问路径是往登录界面走放行
        if (uri.contains("/login.jsp")||uri.contains("/loingServlet.action")) {
            chain.doFilter(servletRequest, servletResponse);
        }else{
            User user = (User)request.getSession().getAttribute("user");
            //如果用户存在,则放行
            if(user!=null){
                chain.doFilter(servletRequest, servletResponse);
            }else{
                //否则转发登录页面,提示消息
                request.setAttribute("login-msg","该页面,需要登陆后才能访问");
                request.getRequestDispatcher("/login.jsp").forward(servletRequest,servletResponse);
            }
        }
    }

}

猜你喜欢

转载自www.cnblogs.com/jasonjson/p/12410432.html