【问题标题】:How to get session information in Spring MVC 3如何在 Spring MVC 3 中获取会话信息
【发布时间】:2011-11-12 15:56:21
【问题描述】:

我是 Spring MVC 的新手,我正在尝试在我的控制器类中获取会话信息

我现在正在使用

HttpSession objHttpSession = request.getSession(true);

如果我想获取会话创建时间和我正在使用的会话 ID

objHttpSession.getCreationTime(); objHttpSession.getId();

我想知道有没有特定于 Spring MVC 的方法来获取会话详细信息?

提前致谢

【问题讨论】:

    标签: java spring-mvc


    【解决方案1】:

    当我需要访问会话详细信息时,我通常会在我的 Spring MVC 控制器方法中声明一个 HttpSession 类型的参数。

    例如:

    @RequestMapping("/myrequest")
    public void handleMyRequest(HttpSession session, ...) {
       ...
    }
    

    我认为这是最简单的方法,但不知道它是否符合您的需求。

    【讨论】:

      【解决方案2】:

      你可以像这样在 Spring MVC 中获取会话:

      ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
      HttpSession session = attr.getRequest().getSession();
      

      currentRequestAttributes 方法返回当前绑定到当前请求的线程的RequestAttributes,您可以从该请求中获取会话。当您需要在非春季课程中掌握课程时,这很有用。否则你可以使用:

      @RequestMapping(...)
      public void myMethod(HttpSession session) {   
      }
      

      Spring 会将HttpSession 实例注入到控制器的方法中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-15
        • 1970-01-01
        • 1970-01-01
        • 2012-09-26
        • 1970-01-01
        • 2017-08-23
        • 2021-06-16
        • 2017-09-14
        相关资源
        最近更新 更多