public class LogoutListener implements HttpSessionAttributeListener {
private static final Log log = LogFactory.getLog(LogoutListener.class);
public void attributeAdded(HttpSessionBindingEvent event) {
log.info("add attribute to session");
System.out.println("add attribute to session");
}
public void attributeRemoved(HttpSessionBindingEvent event) {
log.info("remove attribute from session");
System.out.println("remove attribute from session");
if (Constants.USER_KEY.equals(event.getName())) {
User user = (User) event.getValue();
if (user != null) {
ApplicationContext ctx = WebApplicationContextUtils
.getWebApplicationContext(event.getSession()
.getServletContext());
UserService userService = (UserService) ctx
.getBean("userServiceImpl");
//对用户进行操作,比如调用service的方法修改用户在线状态为不在线状态
}
}
}
}
public void attributeReplaced(HttpSessionBindingEvent event) {
/*log.info("replace attribute from session");
System.out.println("replace attribute from session");*/
}
}
相关推荐
然而,当涉及到用户会话(Session)管理时,AJAX请求可能会引发一些特殊的问题,特别是当Session失效时。本文将深入探讨这个主题,并提供解决方案。 Session是Web应用中用于跟踪用户状态的一种机制。它存储在服务器...
以下是一个简单的Struts2拦截器示例,用于处理Ajax请求和Session失效的情况: ```java public String intercept(ActionInvocation invocation) throws Exception { ActionContext ac = invocation....
- 在`web.xml`中配置监听器`ContextLoaderListener`,使得Spring在Web应用启动时初始化ApplicationContext。 4. **集成Struts2**: - 将Struts2的jar包添加到`WEB-INF/lib`目录,特别是Struts2-Spring插件的jar包...
session监听器则可以监控session的创建、失效等事件,实现自动登出功能。 6. **JSTL与EL表达式**:为了减少JSP页面中的Java代码,项目可能使用了JSTL(JavaServer Pages Standard Tag Library)标签库,如fmt、c、...
7. **过滤器与监听器**:Filter在JavaWeb中用于拦截请求和响应,实现如权限验证、字符编码转换等功能。Listener则是监听Web应用中的特定事件,如用户登录、session失效等,以实现相应的处理。 8. **EJB与JMS**:...
Listener则是监听特定事件的对象,例如Session监听器可监控会话的创建、失效等事件。 7. **JDBC(Java Database Connectivity)**: JDBC是Java平台的标准API,用于连接Java应用程序和各种类型的数据库。通过JDBC,...
session失效的几种情况 - **clearSession**:手动调用session的invalidate方法。 - **顺次注销**:用户正常退出系统。 - **timeout**:长时间无活动导致session过期。 - **在服务器重启后**:重启服务器会清空所有...
6. `listener`元素定义监听器,这些监听器在特定事件(如会话创建、销毁等)发生时被调用。 7. `servlet`元素用于注册Servlet,提供Servlet类的完整路径,并可以设置初始化参数。 8. `servlet-mapping`元素用于映射...
同时,会介绍会话的概念,如session对象的创建、设置属性、获取属性和失效,以及如何处理跨页面的数据共享。 5. **第五章:MVC模式与JSP自定义标签** MVC(Model-View-Controller)模式是JavaWeb开发中常用的设计...
15.4. Struts 15.4.1. ContextLoaderPlugin 15.4.1.1. DelegatingRequestProcessor 15.4.1.2. DelegatingActionProxy 15.4.2. ActionSupport 类 15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.5.1.1. 将 ...
- 例如,当一个Portlet更新了数据时,其他相关的Portlet可以监听到这个事件并更新其显示的内容。 **支持的国际化:** - Portlet可以通过设置支持的语言和地区来实现国际化。 - 这样可以确保Portlet能够适应不同用户...