Servlet的事件监听器
来源:互联网 发布:qq三国js技能必学 编辑:程序博客网 时间:2024/05/16 17:55
监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。
Servle监听器:
在Servlet规范中定义了多种类型的监听器,它们用于监听的事件源分别为 ServletContext, HttpSession 和 ServletRequest 这三个域对象。
Servlet规范针对这三个对象上的操作,又把这多种类型的监听器划分为三种类型。
监听三个域对象创建和销毁的事件监听器
监听域对象中属性的增加和删除的事件监听器
监听绑定到 HttpSession 域中的某个对象的状态的事件监听器。
监听servletContext域对象创建和销毁:
ServletContextListener 接口用于监听 ServletContext 对象的创建和销毁事件。
当 ServletContext 对象被创建时,激发contextInitialized (ServletContextEvent sce)方法
当 ServletContext 对象被销毁时,激发contextDestroyed(ServletContextEvent sce)方法。
一、监听三个域对象创建和销毁的事件监听器:
1.ServletContextListener接口:
MyServletContextListener:
public class MyServletContextListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println(arg0.getServletContext() + "被创建了");
}
public void contextInitialized(ServletContextEvent arg0) {
System.out.println(arg0.getServletContext() + "被销毁了");
}
}
web.xml
<listener>
<listener-class>cn.class3g.web.listener.MyServletContextListener
</listener-class>
</listener>
2.HttpSessionListener接口
MySessionListener
public class MyHttpSessionListener implement HttpSessionListener{
public void sessionCreated(HttpSessionEvent arg0){
System.out.println(arg0.getSource()+"被销毁了");
}
public void sessionDestroyed(HttpSessionEvent arg0){
System.out.println(arg0.getSource()+"被创建了");
}
}
3.ServletRequestListener接口
MyServletRequestListener
public class MyServletRequestListener implements ServletRequestListener {
public void requestDestroyed(ServletRequestEvent arg0) {
System.out.println("请求对象"+arg0.getSource() + "被销毁了");
}
public void requestInitialized(ServletRequestEvent arg0) {
System.out.println("请求对象"+arg0.getSource() + "被创建了");
}
}
统计当前在线人数:
OnlineListener
public class OnlineListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent arg0) {
ServletContext context = arg0.getSession().getServletContext();
Integer count = (Integer) context.getAttribute("peopleOnline");
if (count == null) {
count = 1;
} else {
count++;
}
context.setAttribute("peopleOnline", count);
}
public void sessionDestroyed(HttpSessionEvent arg0) {
ServletContext context = arg0.getSession().getServletContext();
Integer count = (Integer) context.getAttribute("peopleOnline");
count--;
context.setAttribute("peopleOnline", count);
}
}
web.xml:
<listener>
<listener-class>cn.class3g.web.listener.OnlineListener</listener-class>
</listener>
Index.jsp
<body>
统计当前在线人数为:${applicationScope.peopleOnline }
或
<%
System.out.println(application.getAttribute("peopleOnline"));
%>
</body>
- Servlet的事件监听器
- Servlet的事件监听器
- servlet事件监听器
- servlet事件监听器
- Servlet事件监听器
- Servlet事件监听器
- Servlet事件监听器
- Servlet事件监听器
- Servlet事件监听器(一)
- Servlet事件监听器
- servlet事件监听器
- Servlet事件监听器
- WEB-Servlet事件监听器
- Servlet 事件监听器
- Servlet事件监听器
- Servlet事件监听器
- Servlet事件监听器
- Servlet事件监听器
- [MongoDB] 安装MongoDB配置Replica Set
- 【SCOI2005】繁忙的都市
- cocos2d-x 斗地主牌组排序
- Struts2中的路径问题总结
- 插值方法实现(拉格朗日插值和牛顿插值)
- Servlet的事件监听器
- linux cd 命令的几个小技巧
- 门面模式
- 上班到现在的状态
- 股票F10关键字过滤工具操作介绍
- 天嵌TQ210宿主机ubuntu挂载NFS文件系统详细步骤
- 如何搭建本地WordPress
- sql server mdf 数据库文件导入 mysql
- centos下安装nginx