编写FilterDemo1类
package com.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class FilterDemo1 implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("我是FilterDemo1,客户端向Servlet发送的请求被我拦截到了"); //对请求放行,进入下一个过滤器FilterDemo2 chain.doFilter(request, response); System.out.println("我是FilterDemo1,Servlet向客户端发送的响应被我拦截到了"); } @Override public void destroy() { } }
编写FilterDemo2类
package com.oracle.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class FilterDemo2 implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("我是FilterDemo2,客户端向Servlet发送的请求被我拦截到了"); //对请求放行,进入Servlet chain.doFilter(request, response); System.out.println("我是FilterDemo2,Servlet向客户端发送的响应被我拦截到了"); } @Override public void destroy() { } }
web.xml
<filter> <filter-name>filterDemo1</filter-name> <filter-class>com.filter.FilterDemo1</filter-class> </filter> <filter> <filter-name>filterDemo2</filter-name> <filter-class>com.filter.FilterDemo2</filter-class> </filter> <filter-mapping> <filter-name>filterDemo1</filter-name> <url-pattern>/*</url-pattern> <!-- /*是对所有的文件进行拦截 --> </filter-mapping> <filter-mapping> <filter-name>filterDemo2</filter-name> <url-pattern>/*</url-pattern> <!-- /*是对所有的文件进行拦截 --> </filter-mapping>