Servlet第七章知识点总结——监听器
知识点预览
监听器概述
监听器分类
监听Web应用程序范围内的事件
ServletContextListener接口
如何配置一个监听器
监听会话范围内事件
监听请求生命周期内事件
一.监听器概述
a) 监听session,request,application这三个对象里存取数据的变化
b) 监听器对象可以在事情发生前、发生后可以做一些必要的处理
c) Servlet监听器主要目的是给Web应用增加事件处理机制,以便更好地监视和控制Web应用的状态变化
二.监听器分类
三.监听Web应用程序范围内的事件(application级别)
a) Web应用启动和销毁事件(contentInitialed contentDestroyed)启动事件应用:页游(公用的数据加入缓存)关闭事件应用:关闭服务器之前保存活跃数据
b) Web应用程序的属性发生改变的事件(包括增加、删除、修改)。
c) 定义了ServletContextListener和ServletContextAttributeListener两个接口
四.ServletContextListener接口
a) ServletContextListener接口用于监听Web应用程序启动和销毁的事件
b) contextInitialized(ServletContextEvent sce):通知正在接受的对象,应用程序已经被加载及初始化
c) contextDestroyed(ServletContextEvent sce):通知正在接受的对象,应用程序已经被销毁
五.如何配置一个监听器?
a) \web_0604_listener_context\src\com\test\listener\MyServletContextListener.java
b) 1.先从接口实现,写一个类
c) 2.在web.xml里配置linstener
d) 3.当web容器启动或对应的域对象有操作的时候由web容器监听并调用对应的实现类对象进行处理
六.监听会话范围内事件
a) 管理从同一个客户端或用户向一个Web应用程序发出的一系列请求相关的状态或资源
b) HttpSessionBindingListener接口
i. 监听对象加入Session范围时
ii. 监听从Session范围中移出对象时
iii. 接口有两个方法
iv. voidvalueBound(HttpSessionBindingEvent event):当对象正在绑定到Session中,Servlet容器调用该方法来通知该对象
v. voidvalueUnbound(HttpSessionBindingEvent event):当从Session中删除对象时,Servlet容器调用该方法来通知该对象
vi. 购物车:会话超时使用,放入购物车,很久未操作,会话超时将数据存入数据库
c) HttpSessionAttributeListener接口
d) HttpSessionListener接口(可用于在线人数的统计)
i. 监听HttpSession对象的创建和销毁操作
ii. 当创建一个Session时,激发session Created(HttpSessionEvent se)方法
iii. 当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法
iv. 功能:统计在线人数
e) HttpSessionActivationListener接口
七.监听请求生命周期内事件
请求作用域范围内的生命周期事件用于管理整个request生命周期的状态和资源
a) ServletRequestListener接口
i. public void requestDestroyed(ServletRequestEvent sre):当请求被销毁时被处理。
ii. public void requestInitialized(ServletRequestEvent sre):当请求被创建时被处理
b) ServletRequestAttributeListener接口
i. public void attributeAdded(ServletRequestAttributeEvent arg0) :当在请求作用域中添加一个属性的时候调用该方法。
ii. public void attributeRemoved(ServletRequestAttributeEvent arg0) :当在请求作用域中删除一个属性时调用
iii. public void attributeReplaced(ServletRequestAttributeEvent arg0) :当在请求作用域中替换一个属性值的时候调用