我在项目中创建一个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")
但是我的应用程序陷入了循环。然后再次回到我的听众!
我想我可以在会话完全创建之前访问它。
任何想法?
最佳答案
最后,我通过在sessionCreated中设置Statistic Model的属性来解决此问题,并在sessionDestroyed中保存Statistic Model:
@Override
public void sessionCreated(HttpSessionEvent se) {
//set some atribute for Statistic Model
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
//save Statistic Model
}