码迷,mamicode.com
首页 > 其他好文 > 详细

监听器

时间:2018-07-20 21:14:37      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:err   监视   text   com   dde   绑定   listen   create   监听器   

监听器是监听某些对象状态变化的组件。
被监听的对象为三个域对象:ServletRequest,HttpSession和ServletContext,分别可以监听它们自身的创建和销毁和它们对象属性的变化。
监听域对象本身创建和销毁需要实现的接口分别为:ServletRequestListener,HttpSessionListener,ServletContextListener。需要用类实现接口,然后重写方法,其中带有created或initialized的方法名的方法为创建时要执行的方法,带有destroy的方法名的方法为销毁时要执行的方法。另外需要要在工程下的Web.xml中配置该类文件,在<listener>标签中的<listener-class>中写入该类的位置。
监听域对象属性的变化需要实现的接口分别为:ServletRequestAttributeListener,HttpSessionAttributeListener,ServletAttributeContextListener,
需要实现接口然后重写方法,不同之处在于它有三个方法:attributeAdded(),attributeRemoved()和attributeReplaced(),分别对应着添加属性,删除属性与更改属性,在域中setAttribute(),如果键值和之前setAttribute()的相同,则视为修改。当然,它们同样需要在Web.xml中配置路径。
Session域对象感知监听器,它可以监视Session域中对象的状态,并做出回应。它总共可以监视四种状态,即绑定状态,解绑状态,钝化状态,活化状态。分别代表了对象被加入到Session域,对象被从Session域中移除,对象被持久化到了磁盘中,对象从磁盘中回到了Session的内存中。
绑定与解绑需要实现的接口为HttpSessionBindingListener,钝化与活化需要实现的接口为HttpSessionActivationListener和Serializable,可以通过context.xml(在META-INF下创建)来修改钝化时间,默认为1分钟。
下面是个实现监视Session域对象的钝化和活化的小例子:

package com.java.demo02;

import java.io.Serializable;

import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionEvent;

public class User implements HttpSessionActivationListener,Serializable{
		private String name;
		private int age;
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public int getAge() {
			return age;
		}
		public void setAge(int age) {
			this.age = age;
		}
		public User(String name, int age) {
			super();
			this.name = name;
			this.age = age;
		}
		public User() {
			super();
		}
		//活化
		public void sessionDidActivate(HttpSessionEvent arg0) {
			 System.out.println("user活化了");
			
		}
		//钝化
		public void sessionWillPassivate(HttpSessionEvent arg0) {
			 System.out.println("user钝化了");
			
		}
		@Override
		public String toString() {
			return "User [name=" + name + ", age=" + age + "]";
		}
		
}

  

监听器

标签:err   监视   text   com   dde   绑定   listen   create   监听器   

原文地址:https://www.cnblogs.com/zhangrui0328/p/9343450.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!