java - Spring HttpSessionListener 陷入循环

标签 java spring spring-mvc httpsession

我在我的项目中创建了一个HttpSessionListener。在此监听器中,我在 session 中设置了如下内容:

 public void sessionCreated(HttpSessionEvent se) {
    //some Business for access to subsiteId
    se.getSession().setAttribute("subsiteId", subsiteId);

    //set some atribute for Statistic Model
    iStatisticService.save(remoteIp, userAgent, page); 
 }

在我的GenericSave(我的StatisticService扩展它)中,我想读取我已经在SessionListener中设置的subsiteId Attribute:

((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest().getAttribute("subsiteId")

但是我的应用程序陷入循环。再次回到我的听众身边! 我想我在 session 完全创建之前就可以访问它。 有什么想法吗?

最佳答案

最后,我通过在sessionCreated中设置统计模型的属性并将统计模型保存在sessionDestroyed中来解决这个问题:

@Override
public void sessionCreated(HttpSessionEvent se) {
    //set some atribute for Statistic Model
}

@Override
public void sessionDestroyed(HttpSessionEvent se) {
    //save Statistic Model
}

关于java - Spring HttpSessionListener 陷入循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35308776/

相关文章:

java - Spring & JUnit : Spring instantiates two instances of test class, 仅注入(inject)其中一个的依赖项,运行另一个

java - 如何使用 Controller 建议处理 Spring MVC 中的 404 错误

spring-mvc - 如何在 Spring Webflux 中返回 Mono<Map<String, Flux<Integer>>> 响应?

ios - 如何使用 CryptoSwift 框架快速解密 AES 128

java - 泛型 hell : hamcrest matcher as a method parameter

java - 使用volley库进行JSON解析

java - spring boot mongodb审计报错

spring - 在 Spring 拦截器中访问 session 范围变量

mysql - Spring Framework JpaRepository 通过 findAll() 方法返回第一个表行的重复项

java - 推送时如何从 Firebase 检索数据并显示用户名?