SpringMVC two ways to access Session


WEB applications typically introduce Session, which is used to keep the status of series 1 actions/messages between the server and the client, such as online shopping, maintaining user login information until user exits. SpringMVC can access Session in two ways, as follows:

Method 1: use servlet-api

@Controller
public class ManagerController {

  @Resource
  private ManagerService managerServiceImpl;

  @RequestMapping(value = "manager/login.do",method = RequestMethod.GET)
  public ModelAndView login(ManagerModel managerModel,HttpSession httpSession){

    ManagerModel manager = managerServiceImpl.getManager(managerModel);
    if(manager!=null){
      manager.setPassword("");
      httpSession.setAttribute("manager", manager);
      return new ModelAndView(new RedirectView("../admin/main.jsp"));
    }else{
      return new ModelAndView(new RedirectView("../admin/login.jsp"));
    }
  }

  @RequestMapping(value = "manager/logout.do",method = RequestMethod.GET)
  public String logout(HttpSession httpSession){
    httpSession.getAttribute("manager");
    return "success";
  }
}

Method 2: use SessionAttributes

@Controller
@SessionAttributes("manager")
public class ManagerController {

  @Resource
  private ManagerService managerServiceImpl;

  @RequestMapping(value = "manager/login.do",method = RequestMethod.GET)
  public ModelAndView login(ManagerModel managerModel,ModelMap model){

    ManagerModel manager = managerServiceImpl.getManager(managerModel);
    if(manager!=null){
      manager.setPassword("");
      model.addAttribute("manager", manager);
      return new ModelAndView(new RedirectView("../admin/main.jsp"));
    }else{
      return new ModelAndView(new RedirectView("../admin/login.jsp"));
    }
  }

  @RequestMapping(value = "manager/logout.do",method = RequestMethod.GET)
  public String logout(@ModelAttribute("manager")ManagerModel managerModel){
    return "success";
  }
}