Java Web高级特性之(二)监听器

监听器的概念

web应用当中监听器是什么:

web应用服务器—>监听器<—>Session<—用户访问


定义:监听器是Servlet中的一种特殊类,用于监听ServletContext、HttpSession和ServletRequset等域对象的创建与销毁事件,以及监听这些域对象的属性发生修改的事件。

监听器可以在事件发生前、发生后做一些必要的处理。


监听器的用途

统计用户在线人数、在线用户

系统启动时加载初始化信息,如缓存、公共变量、数据库连接、定时器等等

统计网站访问量

跟Spring结合


监听器的启动顺序

Servlet2.5下是以web.xml中的配置顺序加载的;

Servlet3.0下没有办法制定顺序。

加载 顺序:

监听器>过滤器>Servlet


监听器的分类

按对象划分:

1.监听应用程序环境对象ServletContext

2.监听用户会话对象HttpSession

3.监听请求消息对象ServletRequset


按监听事件划分:

1.监听域对象自身的创建和销毁

每个Listener 两个事件处理方法:初始化、销毁

ServletContext ServletContextListener主要用途:定时器、全局属性对象

HttpSession HttpSessionListener 主要用途:统计在线人数、记录访问日志

ServletRequset ServletRequsetListener 主要用途:读取参数、记录访问历史

2.监听域对象的属性的增加和删除

每个AttributeListener三个事件处理方法:AttributeAdded(增加)、AttributeRemoved(删除)、AttributeReplaced(替换)

ServletContext ServletContextAttributeListener主要用途:定时器、全局属性对象

HttpSession HttpSessionAttributeListener主要用途:统计在线人数、记录访问日志

ServletRequset ServletRequsetAttributeListener主要用途:读取参数、记录访问历史

3.监听绑定到HttpSession域中的某个对象的状态

绑定—>解除绑定 绑定:session.setAttribute 解除绑定:session.removeAttribute

钝化—>活化 钝化:session对象持久化存储活化:将持久化的session从存储设备恢复到内存

session钝化机制:将服务器中不经常使用的session对象暂时序列化到系统文件系统或数据库系统中,当被使用时反序列化到内存中,整个过程由服务器自动完成。

HttpSessionBindingListener 绑定:valueBound方法解除绑定:valueUnbound方法

HttpSessionActivationListener 钝化:sessionWillPassivate方法活化:sessionDidActivate方法

这两个监听器不需要在web.xml注册


在Servlet3.0下的使用

@WebListener


监听器的实例

步骤:

1.创建一个实现监听器类接口的类

2.配置web.xml进行注册


一个简单的监听器,打印requset参数中参数名为name的参数值

public class MyServletRequestListener implements ServletRequestListener {

	@Override
	public void requestDestroyed( ServletRequestEvent arg0 ) {

	}

	@Override
	public void requestInitialized( ServletRequestEvent arg0 ) {
		System.out.println( arg0.getServletRequest().getParameter( "name" ) );
	}

}


web.xml中配置监听器
<listener>
		<listener-class>com.test.example.MyServletRequestListener</listener-class>
	</listener>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值