Jsp/servlet 标准不要求一个web容器支持分布式应用,但是他一定要支持HttpSessionActivationListener借口,以使代码可以支持分布式环境。一般免费的web容器都不支持分布式,weblogic websphere是支持的。为了负载均衡或者fail-over,web容器可以迁移一个session到其他的jvm.session的passivation是指非活动的session被写入持久设备(比如硬盘)。activate自然就是相反的过程。在分布式环境中切换的属性必须实现serializable接口。
一般情况下他和HttpSessionBindingListener一起使用。
比如一个属性类,
public class attributeClass implements HttpSessionBindingListener,HttpSessionActivationListener{
//HttpSessionActivationListener
public void sessionDidActivate(HttpSessionEvent se)
{ logout("sessionDidActivate("+se.getSession().getId()+")");//激活
}
public void sessionWillPassivate(HttpSessionEvent se)
{//被传送到别的jvm或 写到硬盘
logout("sessionWillPassivate("+se.getSession().getId()+")");
}
//HttpSessionBindingListener
public void valueBound(HttpSessionBindingEvent event)
{ //被设置到session中(setAttribute)
logout("valueBound("+event.getSession().getId()+event.getValue()+")");
}
public void valueUnbound(HttpSessionBindingEvent event)
{ //从session中解除(removeAttribute)
logout("valueUnbound("+event.getSession().getId()+event.getValue()+")");
}
}
这样你就可以将它加到session中
public class AAAServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
session.setAttribute("attribute",attributeClass);
}
}
分享到:
相关推荐
- **Session监听器**:例如`HttpSessionBindingListener`,用来监听对象与`session`之间的绑定与解绑操作;`HttpSessionActivationListener`用于监听`session`的序列化与反序列化操作,但一般情况下,这些操作是由...
特殊的监听器还包括 HttpSessionBindingListener 和 HttpSessionActivationListener,这两个接口用于帮助 JavaBean 对象了解自己在 session 域中的状态。HttpSessionBindingListener 接口用于监听把实现此接口的 ...
用于监听HttpSession中对象的序列化和反序列化事件,监听器类需实现javax.servlet.http.HttpSessionActivationListener接口。 HttpSessionActivationListener接口的方法: voidsessionWillPassivate...
在Java的Web开发中,监听器(Listener)是一种强大的工具,它允许程序员对特定事件进行响应,而无需直接干预应用程序的流程。监听器主要用于监控Servlet容器中的各种事件,例如Servlet上下文的创建和销毁,HTTP会话...
以下是关于JavaWeb监听器的详细知识: 1. **监听器的概念** 监听器在Java中是一个实现了特定接口的Java类,用于监听和处理对象的状态变化或特定事件。当被监听的对象触发了预设的事件,监听器中的对应方法会被自动...
在Java Web开发中,特别是在使用Servlet时,我们可以利用监听器来监控和响应对象状态的变化,从而实现动态更新和数据同步。下面将详细阐述这一知识点。 ### 监听器简介 监听器是Java Servlet API提供的一种机制,它...
### Java Web 开发技术:Listener 监听器技术详解 #### 一、课程目标与概述 本章将详细介绍Java Web开发中的监听器技术。通过学习本章内容,读者能够达到以下学习目标: - **理解监听器的概念**:了解监听器的...
这类监听器专门用于监听session中的对象实例绑定和解绑事件。主要包括以下两个接口: 1. **HttpSessionBindingListener** - `valueBound(HttpSessionBindingEvent event)`:当一个对象实例绑定到session上时调用...
Java Servlet监听器是Java Servlet API中的一个重要组成部分,它们允许开发者在Web应用的生命周期内的某些关键点添加自定义行为。具体来说,监听器可以监控Web应用中的三个主要对象:ServletContext(代表整个Web...
当Session创建和销毁时,这个监听器可以执行相应的逻辑,如增加或减少在线用户计数。 在配置文件`web.xml`中,我们需要声明这个监听器,确保它在Web应用启动时被加载和注册。例如: ```xml <!-- ... --> ...
- 这个监听器关注于ServletContext对象的属性变化。 - `attributeAdded()`会在属性添加到ServletContext时触发。 - `attributeReplaced()`在属性被替换时调用。 - `attributeRemoved()`则在属性被移除时执行。 ...
当特定的事件(如Web应用启动、停止、会话创建、销毁等)发生时,Servlet容器会通过回调Listener中的方法来通知监听器。 **一、基本概念** 观察者模式的核心是订阅和通知。在JavaWeb中,Servlet规范定义了一系列...
Listeners用于监听应用程序事件,如ServletContext初始化、属性改变等。 - **interface: ServletContextListener** - **interface: ServletContextAttributeListener** - **interface: ServletRequestListener** - ...