Java中的监听器 - ServletRequestListener
在讲监听器之前我们先聊下:HttpServletRequest
和 ServletRequest
的区别:
- 首先二者都是接口;
- HttpServletRequest 接口 继承与 ServletRequest 接口;
- HttpServletRequest 接口中比 ServletRequest 接口 多了一些针对了 http 协议的方法如:
- getHeader()
- getMethod()
- getSession()
- …
1、HttpServletRequest
浏览器客户端发出的请求会被封装成一个 HttpServletRequest
对象。该对象中包含了客户端请求过来的一些信息如:
- 请求的参数
- 请求的地址
- 客户端的ip地址
- 提交的数据
- 客户端操作系统
- 。。。
工作原理:
当 http
转发给 web
容器处理时, web
容器会收集相关信息,并产生 HttpServletRequest
对象,其中客户端请求过来的一些数据就都封装在了该对象中,那么使用这个对象的话就可以取得所有 http
中的信息,我们可以在 servlet
中进行处理,也可以转给其他的 servlet/ jsp
来处理;
2、ServletRequestListener 监听器
首先这是 Spring
八个监听器中的一种,它用于监听 ServletRequest
对象的创建和销毁,一个 ServletRequest
可以注册多个 ServletRequestListener
接口, ServletRequest
创建时调用 requestInitialized()
, ServletRequest
销毁是调用方法: requestDestroyed()
;
ServletRequestListener 监听器的源码如下:
public interface ServletRequestListener extends EventListener {
default void requestDestroyed(ServletRequestEvent sre