小米笔记 - 坏记性不如烂笔头

SpringMVC存取Session的两种方法

方法一:使用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";
    }
}

方法二:使用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";
    }
}

ps:多个session使用注解的话,@SessionAttributes允许指定多个属性。你可以通过字符串数组的方式指定多个属性,如 @SessionAttributes({“attr1”,”attr2”})

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »