Servlet的事件监听器
2011-11-24 20:21
381 查看
监听器就是一个实现特定接口的普通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>
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 应用程序事件、监听器
- 方立勋_30天掌握JavaWeb_Servlet事件监听器
- Jsp/Servlet-----------第5章 过滤器和事件监听器
- JavaWEB开发-Servlet事件监听器
- servlet监听器与事件
- Servlet事件监听器
- Java精选笔记_Servlet事件监听器
- Servlet事件监听器
- servlet事件监听器
- 对象作用域与Servlet事件监听器