JavaWeb用户信息管理系统-创建登录业务的Filter

1 创建过滤器Filter进行登录过滤

/**
 * 判断当前游览器是否登录的Filter
 *
 * */
@WebFilter(urlPatterns = {"*.do","*.jsp"})
public class UserLoginFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request=(HttpServletRequest)servletRequest;
        String uri=request.getRequestURI();
        //判断当前请求是否为login.jsp或者login.do,那么就放行
        if(uri.indexOf("login.jsp")!=-1||uri.indexOf("login.do")!=-1){
   filterChain.doFilter(servletRequest,servletResponse);

        }else{
            HttpSession session=request.getSession();
            Users users = (Users) session.getAttribute(Constants.USER_SESSION_KEY);
        if(users!=null){
            filterChain.doFilter(servletRequest,servletResponse);

        }else
        {
            request.setAttribute(Constants.REQUEST_MSG,"不登录休想访问");
            request.getRequestDispatcher("login.jsp").forward(servletRequest,servletResponse);

        }

        }

    }

    @Override
    public void destroy() {

    }
}

拦截所有的jsp和servlet,但是需要放行登录时候必要的页面。

2 测试结果

posted @ 2020-07-06 16:42  赵广陆  阅读(49)  评论(0编辑  收藏  举报