javaweb之监听器详解

  • 格式:pdf
  • 大小:76.01 KB
  • 文档页数:3

javaweb之监听器详解

在servlet中定义了多种类型的监听器,他们⽤于监听事件源分别是servletContext,httpsession,servletrequest 这三个域对象。servlet中监听器主要有三类:

1,监听三个域对象的创建和销毁的监听器(3个 ),

servletContextListenlisten监听器:⽤来监听servletcontxt域对象的创建和销毁的监听器:

创建:在服务器启动的时候,为每个web应⽤创建单独的ServletContext对象。 contextInitialized⽤来监听创建

销毁:在服务器关闭的时候,或者项⽬从web服务器中移除的时候。

contextDsttroyed⽤来监听销毁

创建监听器就是新建⼀个类然后实现servletContextListen

然后在配置xml(⽤eclipse创建lissten⽂件系统会⾃动⽣成)

监听器名称的全路径

HttpSessionListener监听器

⽤来监听HttpSession对象的创建和销毁

n 服务器端第⼀次调⽤getSession()⽅法时候。

l 销毁:

n ⾮正常关闭服务器(正常关闭服务器session会被序列化)。

n Session过期(默认过期时间30分钟)。

n ⼿动调⽤session.invalidate()⽅法。

套路同上

ServletRequestListener监听器

l ⽤户监听ServletRequest对象的创建和销毁

l 创建

n 从客户端向服务器发送⼀次请求,服务器就会创建request对象。

l 销毁

服务器对这次请求作出了响应之后,request对象就销毁了。

2,监听三个域对象的属性变更(属性添加,移除,替换)的监听器(3个)

ServletContextAttributeListener

l 监听ServletContext对象中的属性变更(属性添加,移除,替换)的监听器

HttpSessionAttributeListener

l 监听HttpSession对象中的属性变更(属性添加,移除,替换)的监听器

ServletRequestAttributeListener

l 监听ServletRequest对象中的属性变更(属性添加,移除,替换)的监听器

3,监听httpsession中Javabean的状态改变(钝化,活化,绑定,解绑)的监听(2个)

保存在Session域中的Java类可以有多种状态:绑定到session中;从session中解除绑定;随session对象持久化到⼀个存储设备中(钝化);随session对象从⼀个存储设备中恢复(活化)。Servlet对⽅中定义了两个特殊的监听的接⼝来帮助Java类了解⾃⼰在Session域中的状态:HttpSessionBindingListener接⼝HttpSessionActivationListener接⼝,实现这两个接⼝的类不需要在web.xml中进⾏配置。

HttpSessionBindingListener监听器:

监听Java类在HttpSession中的绑定和解除绑定的状态的监听器:

HttpSessionActivationListener监听器

监听HttpSession中Java类的钝化和活化监听器

l 配置完成session的序列化和反序列化Context标签可以配置在:tomcat/conf/context.xml:所有tomcat下虚拟主机和虚拟⽬录下的⼯程都会序列化sessiontomcat/conf/Catalina/localhost/context.xml:localhost虚拟主机下的所有项⽬会序列化session⼯程/META-INF/context.xml:当前⼯程才会序列化session。

保存在Session域中的Java类可以有多种状态:绑定到session中;从session中解除绑定;随session对象持久化到⼀个存储设备中(钝化);随session对象从⼀个存储设备中恢复(活化)。