关闭

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

420人阅读 评论(0) 收藏 举报
分类:

监听器的概念

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>


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15912次
    • 积分:315
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:8篇
    • 译文:0篇
    • 评论:3条
    文章分类
    文章存档
    最新评论