java—Interceptor Filter
AFilter interceptor: the
first level of interception, A intercepts requests to access 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 code:
@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 interceptor The
second layer of interception, B interception, the process of servlet forwarding to 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销毁了");
}
}