Java web之监听器

import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/**监听器
 * 
  * 作用:监听作用域对象request、session、application的创建、销毁和内容的改变
 * 
  *使用步骤:
  *创建一个普通的类实现相应的接口(ServletRequestListener,
 *ServletRequestAttributeListener,HttpSessionListener,
 *HttpSessionAttributeListener,ServletContextListener,
 *ServletContextAttributeListener),重写里面的方法.
 *
  *具体如下:
  *
 *1.监听request
 *
 *
 *(1)ServletRequestListener:监听request对象的创建与销毁
  *方法:requestInitialized(ServletRequestEvent sre)//监听对象创建
 *方法:requestDestroyed(ServletRequestEvent sre)//监听对象销毁
 *注意:形参可以获取监听的request对象:sre.getServletRequest();
 *
 *
 *(2)ServletRequestAttributeListener:监听request作用域中数据的变更
 *方法:attributeAdded(ServletRequestAttributeEvent srae)//监听作用域中数据的增加
 *方法:attributeRemoved(ServletRequestAttributeEvent srae)//监听数据的移除	
 *方法:attributeReplaced(ServletRequestAttributeEvent srae)//监听数据的改变
 *注意:形参可以获取被监听的数据	
 *srae.getName():获取监听数据的键
 *srae.getValue():获取监听数据的值
 *
 *
 *(3)HttpSessionListener:监听session的创建和销毁
 *方法:sessionCreated(HttpSessionEvent se)//监听session对象的创建			
 *方法:sessionDestroyed(HttpSessionEvent se)//监听session对象的销毁
 *注意:形参可以获取被监听的session对象:se.getSession();
 *
 *
 *(4)HttpSessionAttributeListener:监听session作用域中数据的变更
 *方法:attributeAdded(HttpSessionBindingEvent event)//监听作用域中数据的增加						
 *方法:attributeRemoved(HttpSessionBindingEvent event)//监听数据的移除	
 *方法:attributeReplaced(HttpSessionBindingEvent event)//监听数据的改变
 *注意:形参可以获取被监听的数据
 *event.getName():获取数据的键名
 *event.getValue():获取数据的值
 *
 *
 *(5)ServletContextistener:监听application对象的初始化和销毁
 *contextInitialized(ServletContextEvent sce):初始化,服务器启动
 *contextDestroyed(ServletContextEvent sce):销毁	,服务器关闭
 *注意:形参可以获取当前application对象。sce.getServletContext();
 *
 *
 *(6)ServletContextAttributeListener:监听监听application作用域的数据的变更
 *attributeAdded(ServletContextAttributeEvent event)://监听作用域中数据的增加
 *attributeRemoved(ServletContextAttributeEvent event)://监听数据的移除	
 *attributeReplaced(ServletContextAttributeEvent event://监听数据的改变
 *注意:形参可以获取当前监听的数据
 *event.getName()  获取数据的键名
 *event.getValue() 获取数据的值
 *
 * 2.在web.xml中配置监听器类	
 * <listener>
 * <listener-class>
 * com.bjsxt.listener.MyListener
 * </listener-class>
 * </listener>
 * @author zhou'en'xian
 *
 */
public class MyListener implements ServletRequestListener,
ServletRequestAttributeListener,HttpSessionListener,
HttpSessionAttributeListener,ServletContextListener,
ServletContextAttributeListener{
	/*@Override
	public void requestInitialized(ServletRequestEvent sre) {
		
		ServletRequestListener.super.requestInitialized(sre);
		System.out.println("初始化》有用户访问!");
	}
	@Override
		public void requestDestroyed(ServletRequestEvent sre) {
			System.out.println("请求结束!已响应客户端!");
			ServletRequestListener.super.requestDestroyed(sre);
			
		}
		*/
	/*
	@Override
		public void attributeAdded(ServletRequestAttributeEvent srae) {
			
			ServletRequestAttributeListener.super.attributeAdded(srae);
			System.out.println("request中增加了属性"+srae.getName()+srae.getValue());
		}
	@Override
		public void attributeReplaced(ServletRequestAttributeEvent srae) {
			
			ServletRequestAttributeListener.super.attributeReplaced(srae);
			System.out.println("request中修改了属性"+srae.getName()+srae.getValue());
		}
	@Override
		public void attributeRemoved(ServletRequestAttributeEvent srae) {
			
			ServletRequestAttributeListener.super.attributeRemoved(srae);
			System.out.println("request域中删除了数据"+srae.getName()+srae.getValue());
			
		}*/
/*
	@Override
	public void sessionCreated(HttpSessionEvent se) {
		
		HttpSessionListener.super.sessionCreated(se);
		System.out.println("会话建立!"+se.getSession().toString());
	}
	@Override
	public void sessionDestroyed(HttpSessionEvent se) {
		
		HttpSessionListener.super.sessionDestroyed(se);
		System.out.println("会话结束!");
	}
	@Override
	public void attributeAdded(HttpSessionBindingEvent se) {
		
		HttpSessionAttributeListener.super.attributeAdded(se);
		System.out.println("session域中添加了属性"+"\t"+se.getName()+se.getValue());
	}
	@Override
	public void attributeReplaced(HttpSessionBindingEvent se) {
		
		HttpSessionAttributeListener.super.attributeReplaced(se);
		System.out.println("session域中修改了属性"+"\t"+se.getName()+se.getValue());
	}
	@Override
	public void attributeRemoved(HttpSessionBindingEvent se) {
		
		HttpSessionAttributeListener.super.attributeRemoved(se);
		System.out.println("session域中删除属性"+"\t"+se.getName()+se.getValue());
	}*/
	@Override
	public void contextInitialized(ServletContextEvent sce) {
		
		ServletContextListener.super.contextInitialized(sce);
		System.out.println("服务开启!");
	}
	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		
		ServletContextListener.super.contextDestroyed(sce);
		System.out.println("服务关闭!");
	}
	@Override
	public void attributeAdded(ServletContextAttributeEvent scae) {
		
		ServletContextAttributeListener.super.attributeAdded(scae);
		System.out.println(scae.getName()+"context域中增加了属性"+scae.getValue());
	}
	@Override
	public void attributeReplaced(ServletContextAttributeEvent scae) {
		
		ServletContextAttributeListener.super.attributeReplaced(scae);
		System.out.println(scae.getName()+"context域中修改了属性"+scae.getValue());
		
	}
	@Override
	public void attributeRemoved(ServletContextAttributeEvent scae) {
		
		ServletContextAttributeListener.super.attributeRemoved(scae);
		System.out.println(scae.getName()+"context域中删除了属性"+scae.getValue());
	}
	
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

城南皮卡丘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值