Java Web应用——监听器初识

Web监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext(application)HttpSession(session)ServletRequest(request)等域对象的创建于销毁事件。用于监听域对象的属性发生修改的事件,可以在事件发生前后做一些必要的处理。

一、Web监听器的用途:

1.统计在线人数和在线用户;

2.系统启东市加载初始化信息;

3.统计网站访问量;

4.Spring结合。

监听器的启动顺序:一个web.xml下可以有多个监听器,根据注册顺序进行监听器的加载

监听器、过滤器及Servlet加载顺序的优先级为:监听器>过滤器>Servlet

二、监听器的分类:

1.按监听器的对象划分:

  ①用于监听应用程序环境对象(ServletContext)的事件监听器;

  ②用于监听用户会话对象(HttpSession)的事件监听器;

  ③用于监听请求消息对象(ServletRequest)的事件监听器。

2.按监听的时间划分;

  ①监听域对象自身的创建和销毁的事件监听器;

  ②监听域对象中的属性的增加和删除的事件监听器;

  ③监听绑定到HttpSession域中的某个对象的状态的事件监听器。

3.按监听的事件划分:

  ①监听域对象自身的创建和销毁的事件监听器

ServletContext——ServletContextListener

ServletContext中可以定义多个ServletContextListener对象,只有一个ServletContext对象。

主要用途为:1.定时器;2.全局属性对象。     

HttpSession——HttpSessionListener

一个HttpSession可以注册多个HttpSessionListener对象,可以存在多个HttpSession对象。主要用途为:1.统计在线人数;2.记录访问日志。

ServletRequest——ServletRequestListener

一个ServletRequest可以注册多个ServletRequestListener对象。

主要用途为:1.读取参数;2.记录访问历史。

  ②监听域对象中的属性的增加和删除的事件监听器;

ServletContext——ServletContextAttributeListener

HttpSession——HttpSessionAttributeListener

ServletRequest——ServletRequestAttributeListener

  ③监听绑定到HttpSession域中的某个对象的状态的事件监听器。

HttpSession中的对象状态

绑定——解除绑定

钝化——活化

Session钝化机制:本质就在于把服务器中不经常使用的Session对象暂时序列化到系统文件系统或是数据库系统中。当被使用时反序列化到内存中,整个过程由服务器自动完成。

Tomcat中两种Session钝化管理器:(Session钝化机制有SessionManager管理)

1.org.apache.catalina.session.StandardManager

   ①当Tomcat服务器被关闭或重启时,tomcat服务器会将当前内存中的Session对象钝化到服务器文件系统中;

   ②Web应用程序被重新加载时,内存中的Session对象也会被钝化到服务器的文件系统中。

  钝化后的文件被保存到:Tomcat安装路径/work/Catalina/localhost/项目名称/SESSION.ser

2.org.apache.catalina.session.Persistentmanager

   ①在钝化的基础上进行了扩张。前两种情况同org.apache.catalina.session.StandardManager

   ②第三种情况可以配置主流内存的Session对象数目,将不常使用的Session对象保存到文件系统或数据库,当使用时再重新进行加载。

  默认情况下,Tomcat提供两个钝化驱动类:org.apache.Catalina.FileStoreorg.apache.Catalina.JDBCStore

Servlet规范:(以下两个监听器不需要在web.xml文件中进行注册)

1.HttpSessionBindingListener

绑定:valueBound方法

解除绑定:valueUnbound方法

2.HttpSessionActivationListener

钝化:sessionWillPassivate方法

活化:sessionDidActivate方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值