过滤器filter和监听器listener

来源:互联网 发布:js实现一个单例模式 编辑:程序博客网 时间:2024/04/19 07:54


过滤器的生命周期
实例化
初始化 init()
过滤 doFilter()
销毁 destroy()


过滤器的应用场合
对请求和响应进行统一处理
对请求进行日志记录和审核
对数据进行屏蔽和替换
对数据进行加密和解密

创建类实现监听器接口
javax.servlet.http.HttpSessionBindingListener
在valueBound()和valueUnbound()方法中实现
用户数量的统计
valueUnbound方法会在三种情况下自动调用
调用使session失效的方法:session.invalidate()
session超时
调用setAttribute重新设置了别的对象,或是调用
removeAttribute移除了这个属性
在web.xml中配置监听器
valueBound(HttpSessionBindingEvent arg0) {
//用户对象存入session时自动调用
//用户数量加1
}
valueUnbound(HttpSessionBindingEvent arg0) {
//用户对象从session中删除时自动调用
//用户数量减1
}
<listener>
<listener-class>监听器完全限定名</listener-class>
</listener>

HttpSessionListener、 HttpSessionBindingListener
二者的区别
HttpSessionListener只需要设置到web.xml就可以监听整个
应用中的所有session
HttpSessionBindingListener必须实例化后放入某一个
session中,才能监听
监听范围
HttpSessionListener设置一次就可以监听所有session
HttpSessionBindingListener通常是一对一

ServletContextListener
contextInitialized(ServletContextEvent arg)
contextDestroyed(ServletContextEvent arg)


0 0