java---拦截器Filter

java—拦截器Filter

在这里插入图片描述
AFilter拦截器:
第一层拦截,A拦截访问Servlet的请求

@WebFilter("/as")
public class AFilter implements Filter {
    
    
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    
    
        System.out.println("A出生了");
    }
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    
    
        System.out.println("A进来了");
        filterChain.doFilter(servletRequest,servletResponse);//放行,执行过滤器链中的下一个过滤器,如果没有下一个过滤器,则放行
        System.out.println("A结束拦截");
    }
    @Override
    public void destroy() {
    
    
        System.out.println("A销毁了");
    }
}

Servlet代码:

@WebServlet("/as")
public class AServlet extends HttpServlet {
    
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        System.out.println("AServlet进来了");
      //转发到
      user.jsprequest.getRequestDispatcher("/users/user.jsp").forward(request,response);
    }
}

BFilter拦截器
第二层拦截,B拦截,servlet转发到jsp的过程

@WebFilter(value = "/users/user.jsp" , dispatcherTypes = DispatcherType.FORWARD)
public class BFilter implements Filter {
    
    
    public void destroy() {
    
    
        System.out.println("B出生了");
    }
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
    
    
        System.out.println("B进来了");
        chain.doFilter(req, resp);
        System.out.println("B结束拦截");
    }
    public void init(FilterConfig config) throws ServletException {
    
    
        System.out.println("B销毁了");
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44889894/article/details/114002749