我在项目中创建一个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
}

10-07 12:55