Listener学习笔记
本文参考了部分学友的文章,对这位朋友的辛勤劳动表示敬意,谢谢!
原文链接:http://just-do-myself.iteye.com/blog/654979
?
监听器常用在application对象及session对象创建时:
1)如果一个类实现了ServletContextListener接口,则需要重写init方法及destroy方法,当服务器启动的时候init方法被调用,当服务器关闭的时候destroy方法被调用
2)如果一个类实现了ServletContextAttributeListener接口,则需要重写attributeAdded方法attributeRemoved方法及attributeReplaced方法,当往application里放值的时候attributeAdded方法被调用,当从application里删值的时候attributeRemoved方法被调用,当替换application里的值的时候attributeReplaced方法被调用
3)如果一个类实现了HttpSessionListener接口,则需要重写init方法及destroy方法,当session创建的时候init方法被调用,当session销毁的时候destroy方法被调用
4)如果一个类实现了HttpSessionAttributeListener接口,则需要重写attributeAdded方法及attributeRemoved方法及attributeReplaced方法,当往session里放值的时候attributeAdded方法被调用,当从session里删值的时候attributeRemoved方法被调用,当替换session里的值的时候attributeReplaced方法被调用
?? 如要统计一下网站的同时在线用户数量及最高在线数量,可以使用HttpSessionListener实现,当用户访问的时候创建session,session数量加一,将session数量放入application里,当用户离开的时候session销毁,session数量减一
?
举例:
1、用户登录表单Login.jsp
2、用户登录处理页:LoginConf.jsp
3、用户列表显示页面:ShowAllUser.jsp
4、用户注销页面Logout.jsp
5.自定义Listener:OnlineUserListener
<listener> <listener-class>listener.OnlineUserListener</listener-class> </listener>