springboot项目实战-过滤器、监听器和拦截器

本文介绍了Spring Boot中过滤器、监听器和拦截器的概念及区别,强调了它们在Servlet规范中的特殊角色。过滤器用于拦截请求并处理,常见应用包括用户授权、日志记录和编码解码。监听器则是用于监听Web项目中的特定事件,如Session、ApplicationContext和Request。拦截器类似于过滤器,但基于Java反射机制,主要用于权限验证、日志记录等。文章还探讨了过滤器与拦截器的区别,并展示了如何在Spring Boot中实现自定义过滤器,以及过滤器的典型应用场景。
摘要由CSDN通过智能技术生成

Servlet规范中有3个非常特殊的Servlet,分别是过滤器、监听器和拦截器,如果使用得当,利用它们可以简单地完成一般Servlet才能实现的烦琐功能。下面分别介绍过滤器、监听器和拦截器。

过滤器、监听器和拦截器简介

过滤器(Filter)放在Web资源之前,可以在前端请求抵达Web资源之前被截获,并且还可以在资源返回客户之前截获输出的请求。过滤器是用来拦截请求的,处于客户端与被请求资源之间,目的是重用代码。在一个项目中可以配置多个过滤器,一个请求会依次通过配置的所有过滤器。

Web项目常用的过滤器有以下3种:

用户授权的过滤器:负责检查用户请求,根据请求信息过滤用户的非法请求。

日志过滤器:详细记录某些特殊的用户请求。

负责编码/解码的过滤器:对请求参数的编码和解码。

Java中的过滤器是一种特殊的Servlet,它不能处理用户请求,也不能为客户端生成响应信息,它主要用于对HttpServletRequest进行前处理,也可以对HttpServletResponse进行后处理,是一个典型的处理链程序。

监听器也是一种特殊的Servlet,能够监听Web项目中特定的事件。例如,监听ServletContext、HttpSession和ServlerRequest对象的创建和销毁及各种变量的创建、销毁和修改等,还可以在一些请求前后增加监听处理,实现监听。

监听器的父接口为java.util.EventListener,所有监听器都需要实现此接口。常见的监听器有:HttpSessionListener用来监听Session,ContextLoaderListener是在启动Web容器时自动监听装配ApplicationContext的配置信息&

  • 33
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Springboot拦截器过滤器监听器是用来处理请求和响应的组件。拦截器是基于Java的反射机制,可以在请求处理前后进行一些操作,比如记录日志、权限验证等。过滤器是基于Servlet规范的,可以在请求进入Servlet之前或响应返回给客户端之前进行一些操作,比如字符编码、请求过滤等。监听器是用来监听Web应用程序中的事件,比如ServletContext的创建和销毁、Session的创建和销毁等。\[1\] 在Springboot中,可以通过在application类上添加注解@SpringBootApplication和@ServletComponentScan来启用拦截器过滤器监听器。\[2\]拦截器过滤器监听器都是通过实现相应的接口来实现的。例如,创建一个过滤器可以通过实现Filter接口,并在@Component注解中添加@Order注解来指定过滤器的执行顺序。\[3\] 拦截器过滤器监听器Springboot中都可以起到不同的作用,可以根据具体需求选择使用哪种组件来处理请求和响应。 #### 引用[.reference_title] - *1* *2* [springBoot(6)---过滤器监听器拦截器](https://blog.csdn.net/yudiandemingzi/article/details/80399971)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [SpringBoot拦截器-过滤器-监听器](https://blog.csdn.net/weixin_45203607/article/details/120250823)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

虾米大王

有你的支持,我会更有动力

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

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

打赏作者

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

抵扣说明:

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

余额充值