知识&技术&梦想 知识&技术&梦想

在SpringMvc4中取得Session

在项目过程中难免会使用session信息, 在使用springmvc开发的过程中就遇到了这个情况, 怎么使用springmvc取得session呢? 接下来看办法. 这里使用两种取得方式, 第一种. 使用servlet的方式.
@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"));
    }
}
使用方式和设置方式一样. 只需要在方法里写上HttpSession httpSession 就可以取值了. 例子:
@RequestMapping(value = "manager/logout.do",method = RequestMethod.GET)
public String logout(HttpSession httpSession){
    
    httpSession.getAttribute("manager");
    return "success";
}
除了这种方式外, 还可以使用另一种方式. 第二种方式使用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";
	}
}
除了这两种方式以外可能还可以使用其他的方式, 但是现在不去考究了, 去写代码了.
大纲