着急请教一个问题:关于Spring MVC HttpSessionListener监听的

qq_17007595 qq_17007595 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
public class OnlineUtil implements ServletContextListener, HttpSessionListener,
HttpSessionAttributeListener {
// 声明一个ServletContext对象
private ServletContext application = null;


@Override
public void contextInitialized(ServletContextEvent sce) {
// 容器初始化时,向application中存放一个空的容器
this.application = sce.getServletContext();
this.application.setAttribute("onLineUser", new ArrayList());
}


@Override
public void attributeAdded(HttpSessionBindingEvent hse) {
// 如果登陆成功,则将用户保存在列表之中
List list = (List) this.application.getAttribute("onLineUser");
if(hse.getValue() instanceof Member){
list.add(hse.getValue());
}
this.application.setAttribute("onLineUser", list);
}

/**
* 任何一个Session被销毁时进入
*/

@Override
public void sessionDestroyed(HttpSessionEvent hse) {
// 将用户名从列表中删除
List list = (List) this.application.getAttribute("onLineUser");
if(null!=list && list.size()>0){
Member member=(Member) list.get(0);
//问题就在这块 :数据库操作
// if(null!=member){
// member.setOnlineFlag(1);//更新为离线状态
// memberService.updateIsOnline(member);
// }
list.remove(member);
}
this.application.setAttribute("onLineUser", list);
}
}

private MemberService memberService;

public MemberService getMemberService() {
return memberService;
}
@Resource(name = "memberService")
public void setMemberService(MemberService memberService) {
this.memberService = memberService;
}
需求是这样的:客户要求做一个实时在线人数统计,这个做出来了。问题就是:我在客户退出的时候,
进入这个销毁sessionDestroyed的方法(如果客户点击退出按钮,这个就好办了,关键是一般人都直接关闭浏览器),
然后更新数据库中OnlineFlag(在线状态)这个字段。现在是获取不到memberService,无法进行更新操作。
...全文

相关推荐

监听session的创建到销毁

本文将深入探讨如何在Spring MVC项目中实现Session监听,并详细讲解相关知识点。首先,我们需要了解Session监听器的基本概念。

q9w8e7r6t5y4u3i2o1p0

Java监听器Listener深入理解与应用

监听器(Listener)是Java Servlet规范中定义的一种特殊类,用于监听Web应用中的特定事件。在Java Web开发中,监听器可以响应各种事件,如会话生命周期事件、请求处理事件以及应用上下文事件等。它为开发者提供了一个在不同阶段插入自定义逻辑的机会,从而实现对应用状态变化的监控和对业务流程的精细控制。监听器的基本工作原理是通过实现特定的接口来完成的,这些接口定义了一组回调方法,这些方法会在相应的事件发生时由Servlet容器自动调用。常见的监听器接口包括以及Spring中的。

王奥雷

详解Spring MVC拦截器实现session控制

综合以上,本文通过具体的代码示例和技术细节深入讲解了如何使用Spring MVC拦截器实现session控制,包括如何监听session的创建和销毁,如何实现用户的重复登录控制以及如何在拦截器中处理未登录用户的访问权限问题

weixin_38500709

spring监听器

### Spring监听器与过滤器详解:关键代码与实践应用#### 标题解析与核心概念标题“spring监听器”指向了Spring框架中一个重要的组件——监听器(Listener)。

myselfhgc

STRUTS:listener监听器

Struts框架作为早期流行的MVC架构之一,充分利用了监听器机制来增强其功能性和灵活性。

oceanbaxia
评论 2
收藏 已收藏
分享
返回顶部
qq_17007595
Java EE 67,535 成员 225,843 内容