servlet监听器
在WEB应用中响应特定对象的特定事件
好处:更方便的控制application,session,request对象的发生的特定事件
可以集中处理特定的事件
-------------------------------------------------------------------
HttpSession监听器接口
1 HttpSessionListener(需要配web.xml)
2 HttpSessionAttributeListener(需要配web.xml)
3 HttpSessionBindingListener
4 HttpSessionActivationListener(需要配web.xml)
-------------------------------------------------------------------
HttpSessionListener
1 sessionCreated()//当session对象产生的时候调用的方法
2 sessionDestroyed()//当session对象消灭的时候调用的方法
web.xml配置
<listener>
<listener-class>webbook.chapter14.CounterListener(对应的实现类)
</listener-class>
</listener>
---------------------------------------------------------------------
HttpSessionAttributeListener
1 attributeAdded()//添加时调用
2 attributeReplaced()//替换时调用
3 attributeRemoved()//删除时调用
产生事件的代码
session.setAttribute("username","wangwu");
session.setAttribute("username","lisi");
session.removeAttribute("username");
-----------------------------------------------------------------
HttpSessionBindingListener
1 valueBound();
2 vaoueUnbound();
调用机制
如果一个类实现了HttpSessionBindingListener接口,则当这个类的对象通过session.setAttribute()被绑定到Session对象中时,
则该对象的valueBound()方法被自动调用,当这个对象从Session中删除时(调用session.invalidate()和session.removeAtrribute()
方法,或Session对象过期)valueUnbound()方法将被自动调用.
--------------------------------------------------------------------------------------------------------
HttpSessionActivationListener
1 sessionDidActivate();
2 sessionWillPassivate();
---------------------------------------------------------------------------------
例子:
1 建立CounterListener处理类
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class CounterListener implements HttpSessionListener {
private static long onlineNumber=0;
public void sessionCreated(HttpSessionEvent se) {
onlineNumber++;
}
public void sessionDestroyed(HttpSessionEvent se) {
onlineNumber--;
}
public static long getOnlineNumber(){
return onlineNumber;
}
}
2 配置web.xml
<listener>
<listener-class>com.tags.CounterListener</listener-class>
</listener>
3 JSP页面
<%@page import="com.tags.CounterListener;"%>
<body>
当前的在线人数:<%=CounterListener.getOnlineNumber() %> <br>
</body>
----------------------------------------------------------------------------
ServletContext监听器接口
ServletContextListener
1 contextInitialized()
2 contextDestroyed()
调用机制
当在web应用中部署了实现该接口的实现类后,在WEB容器加载WEB应用时(如:启动服务器)就会自动调用contextInitialized()方法,
而当WEB容器销毁WEB应用时(如:关闭服务器),会自动调用contextDestroyed()方法.
-----------------------------------------------------------------------------------
ServletContextAttributeListener
1 attributeAdded()
2 attributeReplaced()
3 attributeRemoved()
触发事件的代码
context.setAttribute("counter",new Integer(0));
context.setAttribute("counter",new Integer(100));
context.removeAttribute("counter");
-----------------------------------------------------------
HttpServletRequest监听器
ServletRequestListener
1 requestInitialized();
2 requestDestroyed()
调用机制
与ServletContextListener接口类似,在web应用中部署实现该接口的实现类扣,在HttpServletRequest对象(JSP中的request对象)建立
或者被销毁时,由web容器自动调用requestInitialized()或者requestDestroyed()方法.
--------------------------------------------------------------------------------------
ServletRequestAttributeListener
1 attributeAdded();
2 attributeReplaced();
3 attributeRemoved();
触发事件的代码
request.setAttribute("username","lisi");
request.setAttribute("username","wangwu");
request.removeAttribute("username");
******************************************************************
public class ListenerOnline implements HttpSessionLinstener,ServletContext{
private application;
public void sessionCreated(HttpSessionEvent event){
Integer n=(Integer)application.getAttrabute("z",1000);
application.setAttrabute("z",n.IntValue()+1);
}
public void sessionDestroyed(HttpSessionEvent event){
}
public void contextInitialized(ServletContextEvent event){
application=event.getServletContext();
application.setAttrabute("z",1000);
}
public void contextDestroyed(ServletContextEvent event){
}
}
<listener>
<listener-class>com.tags.ListenerOnline</listener-class>
</listener>
<meta http-equiv="refresh" content="3"/>
分享到:
相关推荐
在Java Web开发中,Servlet监听器(Servlet Listener)扮演着重要的角色,它是Servlet规范的一部分,允许开发者对Web应用程序中的特定事件进行监听和响应。在这个范例中,我们将深入探讨如何利用监听器来统计在线...
Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定的Servlet容器事件发生时执行相应的代码。在本文中,我们将深入探讨Servlet监听器的工作原理、配置和使用,结合具体的"web.xml"配置以及JSP页面的...
Servlet监听器技术是Java Servlet规范中的一项重要特性,它允许开发者在特定的Servlet容器事件发生时执行自定义的代码逻辑。这些事件可以包括Web应用程序的初始化、终止,或者是Servlet或Servlet上下文...
Java Servlet监听器(Listener)是Java Web开发中的一个重要组件,它们允许开发者在特定事件发生时执行自定义逻辑,而无需直接修改原有的业务代码。监听器是Servlet规范的一部分,通过实现特定的接口,开发者可以...
"Servlet监听器在基于移动Web在线考试系统中的应用" Servlet监听器是Servlet规范中定义的一种特殊类,用于监听Web应用程序中的ServletContext、HttpSession和ServletRequest等域对象的创建与销毁事件,以及这些域...
Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定事件发生时执行代码,比如在Web应用程序启动、停止时,或者在用户会话创建、销毁时。这为程序员提供了更多的控制权,使得他们能够更好地管理和监控...
Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定事件发生时执行代码,比如在Web应用程序启动、停止,或者在某个Servlet被创建或销毁时。在这个“servlet监听器实现踢人小案例”中,我们将探讨如何...
JAVA Servlet监听器是指在Servlet容器中,用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后做一些必要的处理。监听器可以分为多种类型,每种类型都有其特定的应用场景和用途。 ...
### IBM Servlet监听器课件知识点概述 #### 一、Servlet监听器定义与作用 - **定义**: Servlet监听器是一种特殊类型的Java类,用于监听并响应Web应用中的特定事件或状态变化。 - **作用**: - 监听Web模块的状态...
### Servlet监听器总结 #### 一、Listener概念与作用 - **定义**:在Java Web开发中,Listener(监听器)是一种特殊的组件,主要用于监听容器内的特定事件,并根据这些事件的发生执行相应的处理逻辑。 - **功能**...
Servlet监听器是Java Web开发中的一个重要概念,它们是Servlet API的一部分,允许开发者在特定的Servlet容器事件发生时执行代码。这些事件可以是Web应用程序启动、关闭,或者与HTTP会话相关的事件,如创建、销毁或...
Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定事件发生时执行代码,比如在Web应用程序启动或停止时,或者在某个Servlet实例被创建或销毁时。本教程将深入探讨Servlet监听器的工作原理、类型以及...
在Java Web开发中,Servlet监听器(Servlet Listeners)是一种重要的组件,它们可以在特定的事件发生时被调用,比如Web应用的初始化、用户会话的创建或销毁等。在这个例子中,我们将探讨如何利用Servlet监听器在系统...
在本文中,我们将深入探讨Java EE(J2EE)中的Servlet监听器以及它们在Web应用程序中的作用,特别是在访问人数统计和引入MVC模式方面。首先,让我们了解什么是Servlet监听器。 Servlet监听器是Java Servlet规范的一...
Servlet监听器是Java Web开发中的一个重要概念,它属于Java Servlet规范的一部分,主要应用于JSP/Servlet环境。在Java Web应用程序中,监听器(Listeners)扮演着观察者(Observer)的角色,能够监听特定事件的发生...
servelt 监听器 class MyRequest extends HttpServletRequestWrapper { public MyRequest(HttpServletRequest request) { super(request); } public String MyEncoding(String value) { String value...
servlet过滤器和监听器,servlet过滤器和监听器课件,servlet过滤器和监听器PPT