我在项目中创建了 HttpSessionListener 。在这个监听器中,我在会话中设置了如下内容:
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 属性 :
((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest().getAttribute("subsiteId")
但我的应用程序陷入了循环。并再次回到我的听众! 我猜我在完全创建之前就访问了Session。 任何想法?
答案 0 :(得分:0)
最后,我通过 sessionCreated 中的统计模型的set属性解决了这个问题,并将统计模型保存在 sessionDestroyed 中:
@Override
public void sessionCreated(HttpSessionEvent se) {
//set some atribute for Statistic Model
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
//save Statistic Model
}