【问题标题】:What is the scope of HttpServletRequest when being used in a controller (singleton)?在控制器(单例)中使用时,HttpServletRequest 的范围是什么?
【发布时间】:2015-12-11 15:10:42
【问题描述】:

我有这个疑问...我有一个单例bean...我想在HttpServletRequest上设置一些参数,这样:

@RequestMapping(value = "/myUrl", method = RequestMethod.GET)
    public String myMethod(final ModelMap model, final HttpServletRequest req){
       req.getSession().setAttribute("myKey", "someValue");
       return "/myURL";
    }

那么,如果我设置了 myKey,那么该会话中的当前用户只能访问该值吗?或者因为它是一个单例 bean 可以被其他用户覆盖?

【问题讨论】:

标签: java spring


【解决方案1】:

您正在更改会话,而不是控制器。并且会话与发出请求的用户相关联,因此其他用户将无法看到此值。

来自getSession() documentation

返回当前关联的会话 使用此请求,或者如果请求没有会话,则创建 一个。

【讨论】:

  • 另外——如果访问会话你正在使用 servlet 请求做任何事情——你也可以使用把会话作为你的方法的参数,例如public String myMethod(final ModelMap model, final HttpSession session){ ... }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-23
  • 1970-01-01
  • 1970-01-01
  • 2016-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多