关于servlet的监听
来源:互联网 发布:淘宝盖楼怎么玩 编辑:程序博客网 时间:2024/05/29 03:06
一、Servlet监听的概念
Servlet监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext、HttpSession和ServletRequest等域对象(可以理解为一个对象,只不过不是基本的对象)的创建与销毁事件,以及监听这些域对象中属性发生修改的事件。
监听对象:
1、ServletContext:application,整个应用只存在一个
2、HttpSession:session,针对每一个对话
3、ServletRequest:request,针对每一个客户请求
监听内容:创建、销毁、属性改变事件
监听作用:可以在事件发生前、发生后进行一些处理,一般可以用来统计在线人数和在线用户、统计网站访问量、系统启动时初始化信息等。
二、监听器的基本使用
创建步骤:
1、创建一个实现监听器接口的类,例ServletRequestListener
2、配置web.xml文件,注册监听器
完整类名(包名+类名)
监听器的启动顺序:按照web.xml的配置顺序来启动
加载顺序:监听器>过滤器>Servlet
三、监听器种类
根据监听对象不同分别实现ServletContextListener、HttpSessionListener、ServletRequestListener接口。
①ServletContext的创建和销毁:contextInitialized方法和contextDestroyed方法
public void contextInitialized(ServletContextEvent sce)//ServletContext创建时调用
public void contextDestroyed(ServletContextEvent sce)//ServletContext销毁时调用
主要用途:作为定时器、加载全局属性对象、创建全局数据库连接、加载缓存信息等
实例:
在web.xml中可以配置项目初始化信息,在contextInitialized方法中进行启动
<context-param> <param-name>属性名</param-name> <param-value>属性值</param-value></context-param>
②HttpSession的创建和销毁:sessionCreated和sessionDestroyed方法
public void sessionCreated(HttpSessionEvent se)//session创建时调用
public void sessionDestroyed(HttpSessionEvent se)//session销毁时调用
【注】
web.xml配置session超时参数,单位:分,session超时的时间并不是精确的
<session-config> <session-timeout>10</session-timeout></session-config>
③ServletRequest的创建和销毁:requestInitialized和requestDestroyed方法
public void requestInitialized(ServletRequestEvent sre)//request创建时调用
public void requestDestroyed(ServletRequestEvent sre)//request销毁时调用
主要用途:读取request参数,记录访问历史。
监听域对象中的属性的增加和删除的事件监听器:
根据监听对象不同分别实现ServletContextAttributeListener、HttpSessionAttributeListener、ServletRequestAttributeListener接口。
实现方法:attributeAdded、attributeRemoved、attributeReplaced
3、监听绑定到HttpSeesion域中的某个对象的状态的事件监听器(创建普通JavaBean)
HttpSession中的对象状态:绑定→解除绑定;钝化→活化
实现接口及方法:HttpSessionBindingListener接口(valueBound和valueUnbound方法)、HttpSessionActivationListener接口(sessionWillPassivate和sessionDidActivate方法)
【注1】①要实现钝化和活化必须实现Serializable接口
②不需要在web.xml中注册
【注2】
绑定: 通过setAttribute保存到session对象当中
解除绑定: 通过removeAttribue去除
钝化: 将session对象持久化到存储设备上
活化: 将session对象从存储设备上进行恢复
session钝化机制:
①把服务器不常使用的session对象暂时序列化到系统文件或者是数据库中,当使用时反序列化到内存中,整个过程由服务器自动完成;
②session的钝化机制由SessionManager管理,创建一个普通的JavaBean绑定和接触需要实现HttpSessionBindingListener接口
- 关于servlet的监听
- 关于Servlet中的事件监听
- servlet里面的监听
- [Servlet]事件监听,ServletContext的事件监听
- [Servlet]事件监听,ServletContext的事件监听
- 关于Button的监听
- 关于监听的注意事项
- Servlet监听
- Servlet监听
- servlet监听
- servlet监听
- servlet监听
- servlet监听
- servlet监听
- servlet监听
- Servlet监听
- servlet监听
- Servlet 监听
- 基于workerman 的 消息推送
- Android开发艺术探索笔记(13)- DecorView
- 冒泡法。
- TS Intro - Elementary stream
- 使用Spring调用SOAP Web Service
- 关于servlet的监听
- javascript入门需要注意的地方
- Boost:解析命令行参数
- 计算机图形学(三)_图元的属性_16_ 反走样_6_直线亮度差的校正
- (java多线程并发)控制并发线程数的Semaphore、ScheduledThreadPoolExcutor、BlockingQueue、ReadWriteLock
- 可以动态增长的通讯录(在第一版的基础上进行了改进)
- C qsort和C++ sort函数详解
- Fat Jar for Eclipse
- AGCF