java_web学习第三天(Servlet的事件监听)

Servlet的时间监听:
	监听器:其实就是一个实现特定接口的java程序,时间监听用来监听时间的方法或者某个属性的改变。当发生上述事件的时候,监听器的某个方法将被调用。


1.监听ServletContext
	
package com.enterise.always.servlet;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
 * ServletContext的事件监听
 * @author Always
 *
 */
public class MyServletContextListener implements ServletContextListener{

	public void contextDestroyed(ServletContextEvent arg0) {
		System.out.println("MyServletContextListener.contextDestroyed()------------->");
	}

	public void contextInitialized(ServletContextEvent arg0) {
		System.out.println("MyServletContextListener.contextInitialized()---------->");
	}

}


在web.xml中配置listener
	<listener>
		<listener-class>com.enterise.always.servlet.MyServletContextListener</listener-class>
	</listener>
 
当在项目被加载进tomcat的时候,ServletContext被创建时会调用时间监听中的:
信息: SessionListener: contextInitialized()
MyServletContextListener.contextInitialized()---------->
 
2.监听HttpRequest
 
package com.enterise.always.servlet;


import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;


public class MyHttpRequestListener implements ServletRequestListener {


	public void requestDestroyed(ServletRequestEvent arg0) {
		System.out.println("MyHttpRequestListener.requestDestroyed()");
	}


	public void requestInitialized(ServletRequestEvent arg0) {
		System.out.println("MyHttpRequestListener.requestInitialized()");
	}


}
 
	<listener>
		<listener-class>com.enterise.always.servlet.MyHttpRequestListener</listener-class>
	</listener>
 
在request被创建的时候:
MyHttpRequestListener.requestInitialized()
 
当在浏览器上访问另外一个servlet资源的时候:
MyHttpRequestListener.requestDestroyed()
MyHttpRequestListener.requestInitialized()
MyHttpRequestListener.requestDestroyed()
先是将原先的request销毁,调用销毁方法
之后再次调用新的request的创建和销毁。
 
 
3.session的监听:
	
package com.enterise.always.servlet;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/**
 * HttpSession的事件监听
 * @author Always
 *
 */
public class MyHttpSessionListener implements HttpSessionListener{

	public void sessionCreated(HttpSessionEvent se) {
		System.out.println("MyHttpSessionListener.sessionCreated()--------->");
	}

	public void sessionDestroyed(HttpSessionEvent se) {
		System.out.println("MyHttpSessionListener.sessionDestroyed()------>");
	}

}

web.xml配置:
	<listener>
		<listener-class>com.enterise.always.servlet.MyHttpSessionListener</listener-class>
	</listener>

当在session创建的时候会执行sesssionCreated()的方法。
在session关闭或销毁的时候会调用sessionDestory的方法:
 
MyHttpSessionListener.sessionCreated()--------->
 
MyHttpSessionListener.sessionDestroyed()------>
 
具体的使用案例有:

统计当前在线人数
统计当前在线用户

 
 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值