💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
## 过滤链的执行顺序 多个过滤器可以叠加使用.filter过滤器的执行顺序是跟web.xml的url-pattern配置顺序挂钩的.如果两个filter针对同一个servlet进行过滤了,那么配置在上面的先执行,下面的后执行. ## 实例 web.xml配置 ~~~ <filter> <filter-name>Show1Filter</filter-name> <filter-class>com.like.Show1Filter</filter-class> </filter> <filter-mapping> <filter-name>Show1Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>Show2Filter</filter-name> <filter-class>com.like.Show2Filter</filter-class> </filter> <filter-mapping> <filter-name>Show2Filter</filter-name> <url-pattern>/show</url-pattern> </filter-mapping> ~~~ servlet的配置 ~~~ @WebServlet(name = "ShowServlet", urlPatterns = "/show") public class ShowServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("servlet"); } } ~~~ Show1Filter ~~~ @WebFilter(filterName = "Show1Filter") public class Show1Filter implements Filter { public void destroy() { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { System.out.println("show1 request"); chain.doFilter(req, resp); System.out.println("show1 response"); } public void init(FilterConfig config) throws ServletException { } } ~~~ Show2Filter ~~~ @WebFilter(filterName = "Show2Filter") public class Show2Filter implements Filter { public void destroy() { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { System.out.println("show2 request"); chain.doFilter(req, resp); System.out.println("show2 response"); } public void init(FilterConfig config) throws ServletException { } } ~~~ 结果 ``` show1 request show2 request servlet show2 response show1 response ```