从Spring-Boot开始深入理解Spring系列(七)——Spring-Boot使用servlets、filter、listener、interceptor

基础概念理解

servlet

Servlet 是一种运行 服务器端 的 java 应用程序,具有 独立于平台和协议 的特性,并且可以动态的生成 web 页面,它工作在 客户端请求 与 服务器响应 的中间层。
扩展认知:同时servelet也是一种JavaEE的技术规范和标准

filter

Filter 又称为过滤器,对 用户请求 进行 预处理,接着将请求交给 Servlet 进行 处理 并 生成响应,最后 Filter 再对 服务器响应 进行 后处理。Filter 是可以复用的代码片段,常用来转换 HTTP 请求、响应 和 头信息。Filter 不像 Servlet,它不能产生 响应,而是只 修改 对某一资源的 请求 或者 响应。

listener

Listener 可以监听 web 服务器中某一个 事件操作,并触发注册的 回调函数。通俗的语言就是在 application,session,request 三个对象 创建/消亡 或者 增删改 属性时,自动执行代码的功能组件。

interceptor

类似 面向切面编程 中的 切面 和 通知,我们通过 动态代理 对一个 service() 方法添加 通知 进行功能增强。比如说在方法执行前进行 初始化处理,在方法执行后进行 后置处理。拦截器 的思想和 AOP 类似,区别就是 拦截器 只能对 Controller 的 HTTP 请求进行拦截。

对比

servlet和filter的关系

servlet技术规范中,定义了filter技术,并提供了接口
Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。简单说,就是可以实现web容器对某资源的访问前截获进行相关的处理,还可以在某资源向web容器返回响应前进行截获进行处理。

listener和event的关系

监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。

简单的说,被监听对象A中,关联着B对象。事件源A类对外提供一个方法,用于设置监听器对象B到A类的某一实例变量中。在需要监听事件源的方法中,方法体的某一处先构造创建一个Event对象,将this即B与相关的动作封装进Event对象中,然后调用监听器B对象的doXXXX(event)方法,将事件对象传入方法实参中。

从Spring-Boot开始深入理解Spring系列(七)——Spring-Boot使用servlets、filter、listener、interceptor
从Spring-Boot开始深入理解Spring系列(七)——Spring-Boot使用servlets、filter、listener、interceptor
filter和listener和interceptor的对比
从Spring-Boot开始深入理解Spring系列(七)——Spring-Boot使用servlets、filter、listener、interceptor

深入理解:

原理详解

生命周期、作用域、执行顺序的理解

实战:

示例应用

项目实战应用场景

源码下载

参考博客