监听器Listener(application、session监听器的实现以及session属性的监听器)

Listener的作用:

  1. Listener是Servlet规范的另一个高级特性,用于监听Java Web程序中的事件,例如创建、销毁session、request、context等,并触发相应的事件,事件发生的时候会自动触发该事件对应的Listener。
  2. Java Web程序也一样,使用Listener和Event完成相应事件的处理。

监听器Listener的配置:

//application监听器配置

<listener>
<listener-class>com.javaweb.listener.ApplicationListener</listener-class>
</listener>

//session监听器配置

<listener>
<listener-class>com.javaweb.listener.MySessionListener</listener-class>
</listener>

示例:

application监听器:

application监听器的作用 :

  1. 监听的Web应用的生命周期。
  2. 用于处理应用程序启动初始化和关闭释放资源的问题

实现

  1. 实现ServletContextListener接口
public class ApplicationListener implements ServletContextListener {
	@Override
	public void contextDestroyed(ServletContextEvent sct) {
		System.out.println("应用关闭-->"+new Date().toLocaleString());
	}

	@Override
	public void contextInitialized(ServletContextEvent sct) {
		System.out.println("应用启动-->"+new Date().toLocaleString());
		//得到应用路径
		String path = sct.getServletContext().getContextPath();
		System.out.println("应用是:"+path);
	}
}

session监听器:
在这里插入图片描述

实现:

  1. HttpSessionListener接口
public class MySessionListener implements HttpSessionListener {
	@Override
	public void sessionCreated(HttpSessionEvent hse) {
		String dateTime = new Date().toLocaleString();
		HttpSession session = hse.getSession();
		System.out.println(dateTime+" 创建 sessiom,ID:"+session.getId());
	}

	@Override
	public void sessionDestroyed(HttpSessionEvent hse) {
		String dateTime = new Date().toLocaleString();
		HttpSession session = hse.getSession();
		System.out.println(dateTime+" 销毁session,ID:"+session.getId());
	}

session属性监听:HttpSessionAttributeListener接口

public class MySessionAttrListener implements HttpSessionAttributeListener {
	@Override
	public void attributeAdded(HttpSessionBindingEvent hsb) {
		//得到当前session
		System.out.print("session ID:"+hsb.getSession().getId());
		//获取属性名和属性值
		System.out.println(" 增加属性:"+hsb.getName()+",属性值是:"+hsb.getValue());
}
public void attributeRemoved(HttpSessionBindingEvent hsb) {
		System.out.print("session ID:"+hsb.getSession().getId());
		System.out.println(" 删除属性:"+hsb.getName()+",属性值是:"+hsb.getValue());
	}
public void attributeReplaced(HttpSessionBindingEvent hsb) {
		System.out.print("session ID:"+hsb.getSession().getId());
		System.out.println(" 替换属性:"+hsb.getName()+",属性值是:"+hsb.getValue());
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值