Filter过滤器执行流程

在上一篇博客我们进行了Filter的入门讲解,这里我们讲解Filter的执行流程,从下图可以大致了解到,当客户端发送请求的时候,会经过过滤器,然后才能到我们的servlet,当我们的servlet处理完请求之后,我们的response还是先经过过滤器才能到达我们的客户端,这里我们进行一个代码的演示,看看具体执行流程。首先给出一个图。

这里我们通过实现Filter接口,来进行定义过滤器类,通过注解来配置该过滤器拦截的路径。

package com.zhiying.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter("/*")
public class FilterDemo2 implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // 对request对象的请求进行处理
        System.out.println("处理了request请求");

        // 放行
        chain.doFilter(request,response);

        // 对response对象的响应进行处理
        System.out.println("处理了response响应");
    }
}

然后给出我们的index.jsp


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  index.jsp...
  <%
    System.out.println("index.jsp...");
  %>
  </body>
</html>

可以看出,但我们客户端发起请求的时候,首先是经过了Filter过滤器,处理了request请求,然后去执行了我们的servlet/jsp,当执行完毕后,我们的response响应也经过了过滤器,这里经过过滤器的时候是从放行后面开始执行的,也就是处理了response响应(注意并没有再次处理request请求)。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SpringBoot中的过滤器、拦截器、监听器是用来监听和处理请求、响应以及应用程序状态变化的组件,并在必要的情况下拦截、过滤和处理它们。 1. 过滤器(Filter) 过滤器是处理请求和响应的组件,可以在处理请求和响应之前对它们进行预处理,也可以在处理请求和响应完成之后对它们进行后处理。过滤器可以用于自定义日志记录、性能测试、权限检查等操作。 SpringBoot中的过滤器是基于Servlet规范实现的,因此可以通过实现javax.servlet.Filter接口或继承javax.servlet.Filter类来编写过滤器。 2. 拦截器(Interceptor) 拦截器是处理请求和响应的组件,可以在处理请求和响应之前、之后和发送到视图之前对它们进行预处理和后处理,和过滤器相比,拦截器具有更完整的处理流程和更强大的处理能力。 SpringBoot中的拦截器是基于Spring MVC框架实现的,因此可以通过实现org.springframework.web.servlet.HandlerInterceptor接口或继承org.springframework.web.servlet.handler.HandlerInterceptorAdapter类来编写拦截器。 3. 监听器(Listener) 监听器是用来监听应用程序状态变化的组件,它可以监听到应用程序启动、关闭、请求、会话创建和销毁等事件,并在这些事件发生时执行相应的操作。 SpringBoot中的监听器是基于Spring框架实现的,因此可以通过实现org.springframework.context.ApplicationListener接口或继承org.springframework.context.event.ApplicationListenerAdapter类来编写监听器。通常,我们使用SpringBoot提供的ApplicationListener接口来编写监听器,然后将其注册到应用程序上下文中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贺志营

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值