「JavaWeb 20-3」Filter的执行流程与拦截路径配置

Java (36) 2024-01-30 18:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说「JavaWeb 20-3」Filter的执行流程与拦截路径配置,希望能够帮助你!!!。

#头条创作挑战赛#

10.3 Filter 执行流程

Filter的执行流程如下:

「JavaWeb 20-3」Filter的执行流程与拦截路径配置_https://bianchenghao6.com/blog_Java_第1张

「JavaWeb 20-3」Filter的执行流程与拦截路径配置_https://bianchenghao6.com/blog_Java_第2张

代码演示执行流程

  • 在 doFilter() 方法中的前后都加上输出语句:
 @Override
 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
         System.out.println("1. FilterDemo1....");
         filterChain.doFilter(servletRequest,servletResponse);
         System.out.println("3. FilterDemo2....");
 }
  • 在 hello.jsp 页面上加上输出语句:
「JavaWeb 20-3」Filter的执行流程与拦截路径配置_https://bianchenghao6.com/blog_Java_第3张

演示结果如下:

「JavaWeb 20-3」Filter的执行流程与拦截路径配置_https://bianchenghao6.com/blog_Java_第4张

从演示结果可以总结出:

将对请求进行处理的代码放在放行之前进行处理,而如果请求完资源后还要对响应的数据进行处理时可以在放行后进行逻辑处理

10.4 Filter 拦截路径配置

拦截路径表示 Filter 会对请求的哪些资源进行拦截,使用 @WebFilter 注解进行配置

如:@WebFilter("拦截路径")

拦截路径由如下四种配置方式:

  • 拦截具体的资源:如:/index.jsp —— 只有访问 index.jsp 时才会被拦截
  • 目录拦截: 如:/user/* —— 访问 /user 下的所有资源,都会被拦截
  • 后缀名拦截:如:*.jsp —— 访问后缀名为 jsp 的资源,都会被拦截
  • 拦截所有:如:/* —— 访问所有资源都会被拦截

注意:拦截路径的配置方式和 Servlet 请求资源路径配置方式一样,但含义不一样

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

发表回复