六、Servlet监听器的分类
来源:互联网 发布:中国与东盟贸易数据 编辑:程序博客网 时间:2024/05/29 13:23
- 二监听的分类按监听的事件划分
- 1监听域对象自身的创建和销毁的事件监听器
- 1ServletContextServletContextListener接口介绍如下
- 例子测试ServletContextListener
- 2HttpSessionHttpSessionListener接口介绍如下
- 例子测试HttpSessionListener
- 3ServletRequestServletRequestListener接口介绍如
- 例子测试ServletRequestListener
- 1ServletContextServletContextListener接口介绍如下
- 2监听域对象中的属性的增加和删除的事件监听器
- 1ServletContextServletContextAttributeListener接口介绍如下
- 例子测试ServletContextAttributeListener
- 2HttpSessionHttpSessionAttributeListener接口介绍如下
- 例子测试HttpSessionAttributeListener
- 3ServletRequestServletRequestAttributeListener接口介绍如
- 例子测试ServletRequestAttributeListener
- 1ServletContextServletContextAttributeListener接口介绍如下
- 3监听绑定到HttpSession域中的某个对象的状态的事件监听器
- 1HttpBindingListener接口
- 2HttpSessionActivationListener接口监听Http会话的active和passivate状态接口中定义的回调方法有
- 1监听域对象自身的创建和销毁的事件监听器
- 二监听的分类按监听的事件划分
二、监听的分类(按监听的事件划分)
1、监听域对象自身的创建和销毁的事件监听器
如下:
1.1、ServletContext——>ServletContextListener接口介绍如下:
ServletContextListener接口,主要实现监听ServletContext的创建和删除。同时它提供了两个方法,它们被称为“Web应用程序的生命周期方法”。
- public void contextDestroyed(ServletContextEvent sce) {………………….}:通知正在收听的对象,应用程序已经被加载及初始化
- public void contextInitialized(ServletContextEvent sce) {……………………}:通知正在收听的对象,应用程序已经被关闭。
例子:测试ServletContextListener
创建FistListener.java
package com;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class FirstListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent sce) { System.out.println("destroy"); } public void contextInitialized(ServletContextEvent sce) { //通过上下文getServletContext(),和getInitParameter()获取web.xml值String init=sce.getServletContext().getInitParameter("init"); System.out.println("init的值为:"+init); }}
配置web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>FirstListener</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <listener> <listener-class>com.FirstListener</listener-class> </listener> <!--初始化值,以便FirstListener.java测试获取--> <context-param> <param-name>init</param-name> <param-value>12345</param-value> </context-param></web-app>
结果
1.2、HttpSession——>HttpSessionListener接口介绍如下:
HttpSessionListener接口实现监听HTTP会话创建、销毁。并提供了两个方法。
- public void sessionCreated(HttpSessionEvent se) {…………..}:通知正在收听的对象,session已经被加载初始化
public void sessionDestroyed(HttpSessionEvent se) {…………..}:通知正在收听的对象,session已经被销毁
例子:测试HttpSessionListener
package com;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class SessionListenr implements HttpSessionListener { public void sessionCreated(HttpSessionEvent se) { // TODO Auto-generated method stub System.out.println("sessionCreated"); } public void sessionDestroyed(HttpSessionEvent se) { // TODO Auto-generated method stub System.out.println("sessionDestroyed"); }}
配置web.xml
<listener><listener-class>com.SessionListenr</listener-class></listener>
1.3、ServletRequest——>ServletRequestListener接口介绍如
ServletRequestListener监听客户端请求,对请求进行统一处理
- public void requestInitialized(ServletRequestEvent rre) {……….}:通知正在收听对象,ServletRequest已经被加载初始化
- public void requestDestroyed(ServletRequestEvent rre) {………}:通知正在收听的对象,ServletRequest
已经被关闭
例子:测试ServletRequestListener
创建RequestListener.java
package com;import javax.servlet.ServletRequestEvent;import javax.servlet.ServletRequestListener;public class RequestListener implements ServletRequestListener { public void requestDestroyed(ServletRequestEvent rre) { // TODO Auto-generated method stub System.out.println("requestDestroyed"); } public void requestInitialized(ServletRequestEvent rre) { // TODO Auto-generated method stub System.out.println("requestInitialized"); }}
配置web.xml
<listener> <listener-class>com.RequestListener</listener-class> </listener>
2、监听域对象中的属性的增加和删除的事件监听器
如下:
2.1、ServletContext——>ServletContextAttributeListener接口介绍如下:
ServletContextAttributeListener接口,主要实现监听ServletContext的属性增加、删除和修改。同时它提供了三个方法。
- public void attributeAdded(ServletContextAttributeEvent scab) {……..}:当对象加入application的范围时,通知正在收听的对象
- public void attributeRemoved(ServletContextAttributeEvent scab) {……..}:当在application的范围有对象取代另一个对象时,通知正在收听的对象
- public void attributeReplaced(ServletContextAttributeEvent scab) {……..}:当有对象从application的范围移除时,通知正在收听的对象
例子:测试ServletContextAttributeListener
创建ServletContextAttributeListener.java
package com;import javax.servlet.ServletContext;import javax.servlet.ServletContextAttributeEvent;public class ServletContextAttributeListener implements javax.servlet.ServletContextAttributeListener{ public void attributeAdded(ServletContextAttributeEvent scab) { } public void attributeRemoved(ServletContextAttributeEvent scab) { } public void attributeReplaced(ServletContextAttributeEvent scab) { }}
配置web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>FirstListener</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!--配置ServletContextAttributeListener类--> <listener> <listener-class>com.ServletContextAttributeListener</listener-class> </listener></web-app>
2.2、HttpSession——>HttpSessionAttributeListener接口介绍如下:
HttpSessionAttributeListener接口实现监听HTTP会话中属性的设置请求,提供以下两个方法。
- public void attributeAdded(HttpSessionBindingEvent hsbe) {……}:当有对象加入session,通知正在收听的对象
- public void attributeRemoved(HttpSessionBindingEvent hsbe) {…..}:当有对象从session的范围移除时,通知正在收听的对象(可通过HttpSessionBindingEent类主要有3个方法:getName()得到属性名字、getSession()得到这个session、getValues()得到属性值)
- public void attributeReplaced(HttpSessionBindingEvent hsbe) {……..}:当在session的范围有对象取代另一个对象时,通知正在收听的对象
例子:测试HttpSessionAttributeListener
创建sessionAttribute.java
package com;import javax.servlet.http.HttpSessionAttributeListener;import javax.servlet.http.HttpSessionBindingEvent;public class sessionAttribute implements HttpSessionAttributeListener { public void attributeAdded(HttpSessionBindingEvent hsbe) { // TODO Auto-generated method stub } public void attributeRemoved(HttpSessionBindingEvent hsbe) { // TODO Auto-generated method stub } public void attributeReplaced(HttpSessionBindingEvent hsbe) { // TODO Auto-generated method stub }}
配置web.xml
<listener><listener-class>com.sessionAttribute</listener-class></listener>
2.3、ServletRequest——>ServletRequestAttributeListener接口介绍如
ServletRequestAttributeListener监听请求的属性变化
- 向某个request对象中增加属性时被调用public void attributeAdded(ServletRequestAttributeEvent a)方法。
- 从某个request对象中删除属性时被调用public void attributeRemoved(ServletRequestAttributeEvent a)方法。
- 修改某个request中的属性时被调用public void attributeReplaced(ServletRequestAttributeEvent a)方法。
例子:测试ServletRequestAttributeListener
创建RequestAttributeListener.java
package com;import javax.servlet.ServletRequestAttributeEvent;import javax.servlet.ServletRequestAttributeListener;public class RequestAttributeListener implements ServletRequestAttributeListener { public void attributeAdded(ServletRequestAttributeEvent attributeEvent) { // TODO Auto-generated method stub } public void attributeRemoved(ServletRequestAttributeEvent attributeEvent) { // TODO Auto-generated method stub } public void attributeReplaced(ServletRequestAttributeEvent attributeEvent) { // TODO Auto-generated method stub }}
配置web.xml
<listener> <listener-class>com.RequestAttributeListener</listener-class> </listener>
3、监听绑定到HttpSession域中的某个对象的状态的事件监听器
如下:
3.1、HttpBindingListener接口
HttpBindingListener接口实现监听HTTP会话中对象的绑定信息。它是唯一不需要在web.xml中设定Listener的。并提供两个方法
- 属性被加入到session中时,激发属性的 public void valueBound(HttpSessionBindingEvent a)
- 属性被从session中删除时,激发属性的 public void valueUnbound(HttpSessionBindingEvent)
使用HttpSessionBindingEvent事件类对象的getSession( )方法可以得到这个session对象,使用 HttpSessionBindingEvent对象的getName( )方法得到属性的名字,使用getValue( )方法得到属性的值。
3.2、HttpSessionActivationListener接口:监听Http会话的active和passivate状态。接口中定义的回调方法有
HttpSessionActivationListener接口:监听Http会话的active和passivate状态。接口中定义的回调方法有
- session对象被保存到磁盘时,激发 sessionWillPassivate(HttpSessionEvent)
session对象被调入内存时,激发 sessionDidActivate(HttpSessionEvent)
Activate与Passivate是用于置换session对象的动作,当Web服务器因为资源利用或负载平衡等原因要将内存中的 session对象暂时储存至硬盘或其它储存器时(通过对象序列化),所作的动作称之为Passivate,而硬盘或储存器上的session对象重新加 载到JVM中时所采的动作称之为Activate。sessionDidActivate()方法与 sessionWillPassivate()方法分别于Activeate后与Passivate前被调用。
- 六、Servlet监听器的分类
- Servlet的监听器
- JSP的Servlet监听器
- Servlet的事件监听器
- 简单的servlet监听器
- servlet监听器的使用
- servlet监听器的小结
- servlet监听器的使用
- Servlet的事件监听器
- servlet监听器的学习
- servlet的八大监听器
- Servlet的过滤器,监听器
- Servlet的监听器Listener
- Android常用监听器的分类
- Listener是Servlet的监听器
- Servlet的三种监听器
- Servlet的过滤器及监听器
- servlet中常用的监听器
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
- JS 写登录
- js中时间戳转化为具体的年月日
- git 用法记录,方便以后
- The study of parameter of function in Python(20170908)
- 六、Servlet监听器的分类
- 【binary-tree-zigzag-level-order-traversal】
- 观察者模式
- 2152: 聪聪可可
- 浅谈Javascript中面向对象之对象
- java NIO功能结构分析
- arm-none-linux-gnueabi-gcc下载
- TCP长连接与短连接的区别
- Linux 下修改Tomcat使用的JVM内存大小