SpringMVC存取Session的两种方法

时间:2021-10-26 04:37:39

WEB 应用通常会引入 Session,用来在服务端和客户端之间保存一系列动作/消息的状态,比如网上购物维护 user 登录信息直到 user 退出。SpringMVC存取Session的两种方法,具体如下:

方法一:使用servlet-api

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@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";
  }
}

方法二:使用SessionAttributes

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@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";
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://blog.csdn.net/heirenheiren/article/details/38980817