Filter in JavaWeb

filter filter

Insert image description here

@WebFilter("/*")
public class UserSessionFilter implements Filter {
    
    
    /**
     * 不需要拦截的
     */
    private String[] furl = new String[]{
    
    "/login", "/zhuce"};

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    
    
        //转换为httpservlet
        HttpServletRequest req = (HttpServletRequest) servletRequest;
        HttpServletResponse resp = (HttpServletResponse) servletResponse;
        //释放不需要拦截的
        for (int i = 0; i < furl.length; i++) {
    
    
            //获取上下文
            String cp = req.getContextPath() + furl[i];
            //获取请求路径
            String rui = req.getRequestURI();
            if (cp.equals(rui)) {
    
    
                filterChain.doFilter(req, resp);
                return;
            }
        }
        //根据session来判断用户是否已经登录
        HttpSession session = req.getSession();
        Object id = session.getAttribute("isDeng");
        if (id == null || "".equals(id)) {
    
    
            //跳转到登陆页面
            resp.sendRedirect("login");
            return;
        }
        //当不为空时说明用户已经登录放行
        filterChain.doFilter(req, resp);


    }
}

Guess you like

Origin blog.csdn.net/qq_45066822/article/details/129480533