Java Web 过滤器&监听器
Posted o_o ....
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Web 过滤器&监听器相关的知识,希望对你有一定的参考价值。
Filter 过滤器
过滤器能对Servlet容器传给Web组件的ServletRequest对象和ServletResponse对象进行检查和修改。
doFilter
实现过滤的方法签名为void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
code1;
chain.doFilter(request,response)
code2;
}
init destroy
过滤器有初始化和销毁方法,初始化方法接收一个FilterConfig参数来读取过滤器的配置信息。
web.xml
过滤器的配置信息
<filter>
<filter-name>过滤器名称</filter-name>
<filter-class>过滤器所在的路径</filter-class>
</filter>
<filter-mapping>
<filter-name>过滤器名称</filter-name>
<url-pattern>需要过滤的资源</url-pattern>
</filter-mapping>
Listener 监听器
监听器的概念多用于图形化界面的开发当中。
监听器术语
- 事件源:被监听的对象
- 监听器:用于监听的对象
- 事件源与监听器的绑定
- 事件:事件源对象的改变
- 其他术语(非监听):
- 钝化:session 中对象持久化到一个存储设备中
- 活化:session 从一个存储设备中恢复对象
Servlet中的监听器
按照事件源的域,可以分为三个监听域:
- ServletContext
- HttpSession
- ServletRequest
按照事件不同,可分为以下监听事件:
- 对象的创建与销毁
- 对象属性的变更(增删改)
- HttpSession中JavaBean的状态改变(钝化、活化、绑定、解除绑定)
ServletContextListener
- 监听 ServletContext 对象创建:
contextInitialized(ServletContextEvent sce)
; - 监听 ServletContext 对象销毁:
contextDestroyed(ServletContextEvent sce)
;
Spring框架实现此接口为ContextLoaderListener,用于加载框架配置文件。
HttpSessionListener
用来监听 HttpSession 对象的创建和销毁
-
创建:
- 服务器端第一次调用 getSession() 方法时创建
-
销毁:
- Session 过期,默认过期时间为30分钟;
- 非正常关闭服务器;
- 手动调用 session.invalidate();
-
监听 HttpSession 对象创建:
sessionCreated(HttpSessionEvent se)
; -
监听 HttpSession 对象销毁:
sessionDestroyed(HttpSessionEvent se)
;
ServletRequestListener
用来监听 ServletRequest 对象的创建和销毁
- 创建:从客户端向服务器发送一次请求,服务器就会创建 request 对象;
- 销毁:服务器做出了响应之后,request 对象就销毁了;
- 监听 ServletRequest 对象创建:
requestInitialized(ServletRequestEvent sre)
; - 监听 ServletRequest 对象销毁:
requestDestroyed(ServletRequestEvent sre)
;
ServletContextAttributeListener
监听 ServletContext 对象中的属性变更(属性添加、移除、替换)的监听器
HttpSessionAttributeListener
监听 HttpSession 对象中的属性变更(属性添加、移除、替换)的监听器
ServletRequestAttributeListener
监听 ServletRequest 对象中的属性变更(属性添加、移除、替换)的监听器
HttpSessionBindingListener
用来监听 Java类 在 HttpSession 中的绑定和解除绑定的监听器
HttpSessionActivationListener
用来监听 HttpSession 中 Java类 的钝化和活化的监听器
以上是关于Java Web 过滤器&监听器的主要内容,如果未能解决你的问题,请参考以下文章