1. 监听Servlet : Listener
主要功能是负责监听Web的各种 *** 作,当相关的事件触发后将产生事件,并对事件进行处理。
2.监听器分为3种:
application监听器
session监听器
request监听器
application监听器
《如图所示&代码演示》
需要实现:ServletContextListener(常用)
然后重写方法 容器启动时调用
//容器启动时调用
public void contextInitialized(ServletContextEvent event){
}
//容器消毁时调用
public void contextDestroyed(ServletContextEvent event){
}
Session监听器
实现:HttpSessionListener (偶尔用)
重写:
《如图所示&代码演示》
//session创建时调用
public void sessionCreated(HttpSessionEvent event){
}
//session销毁时调用
public void sessionDestroyed(HttpSessionEvent event){
}
HttpSessionEvent事件方法:
.getSession() //取得当前的session
实现:HttpSessionAttributeListener (不用,性能差)
重写:HttpSessionBindingEvent事件方法:
.getSession() //取得session
.getName() //取得属性的名称
.getValue() //取得属性的内容
request监听器//增加属性时触发 public void attributeAdded(HttpSessionBindingEvent event){ } //删除属性时触发 public void attributeRemoved(HttpSessionBindingEvent event){ } //替换属性时触发 public void attributeReplaced(HttpSessionBindingEvent event){ }
实现:ServletRequestListener (不用,性能差)
重写:
ServletRequestEvent事件方法:
.getServletRequest() //取得ServletRequest对象
.getServletContext() //取得ServletContext对象
//请求开始时调用
public requestInitialized(ServletRequestEvent event){
}
//请求结束时调用
public requestDestroyed(ServletRequestEvent event){
}
补充:
为什么说session监听器和request监听器一般都不用?
因为以request监听器为例,如果采用request监听,那就意味着每次请求都要触发一次监听,这大大降低了程序的效率,因此很少用。
web.xml:
在tomcat执行时被加载。
正常关闭时被销毁。
com.zking.listener.CountRSListener
《实例演示》统计在线人数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)