Are there any differences between getting session through HttpServletRequest.getSession()
and HttpSession
injected in controller's method?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Basically there is no diffrerence between the session
object injected into a Spring MVC controller:
@RequestMapping(value = "/somepath", method = RequestMethod.POST)
@ResponseBody
public JsonResponse someMethod (HttpSession session)
{
// play with session attributes
}
And the session
object retrieved from the HttpServletRequest
:
@RequestMapping(value = "/somepath", method = RequestMethod.POST)
@ResponseBody
public JsonResponse someMethod (HttpServletRequest request)
{
Session session = request.getSession();
// You are playin with the same session attributes.
}
The former style just provide you with a facility to get the contextual HttpSession
object by injecting it as a controller argument so that Spring takes care of the all the dirty stuff for you.