Search code examples
javasessionspring-mvcservletshttpsession

Spring MVC - Session differences


Are there any differences between getting session through HttpServletRequest.getSession() and HttpSession injected in controller's method?


Solution

  • 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.