请求拦截器filter的注解为@WebFilter("/*")是什么意思?

259 阅读1分钟

这个@WebFilter("/*")不是拦截所有资源吗?为什么不拦截静态的html

@WebFilter("/*")  //拦截所有资源
public class LoginFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {

        //进行登入检查,通过session对登入进行检查,因为登入成功后Login的servlet 会对请求界面响应一个session
        HttpServletRequest req = (HttpServletRequest)request;

        //获取session,获取session需要把servletrequest强转为HttpServletRequest
        HttpSession session = req.getSession();
        Object ob = session.getAttribute("user");
        //

        //判断session的user受否为空

        if (ob!=null){
            //不为空,放行
            chain.doFilter(request,response);
        }else {
            //为空,进行拦截,转发到,登入界面,直接结束函数就行了
            req.setAttribute("error_msg","您还没有登入呢,请进行登入");
            req.getRequestDispatcher("/login.jsp").forward(request,response);
            return;
        }
    }


    public void init(FilterConfig config) throws ServletException {
    }

    public void destroy() {
    }

我这里拦截了所有的资源,但是当我访问任意界面的时候,它都应该跳转到登入界面

我想的是登入界面也在/*的资源范围内,不应该显示空白吗,但是它显示了html的骨架

image.png