在springmvc中,控制器不依赖任何servlet api对象,也可以将servlet api对象作为处理方法的入参使用,非常方便,比如需要使用HttpSession对象,那么就可以直接将HttpSession作为入参使用,如下
@RequestMapping(value = "/dologin.html", method = RequestMethod.POST) public String doLogin(@RequestParam String userCode, @RequestParam String userPassword, HttpSession session, HttpServletRequest request){ User user = userService.selectUserByUserCodeAndUserPassword(userCode, userPassword); if (null != user){ session.setAttribute("userSession", user); return "redirect:/user/main.html"; }else { request.setAttribute("error", "用户名或密码不正确"); return "login"; } } @RequestMapping("/main.html") public String main(HttpSession session){ if (session.getAttribute("userSession") == null){ return "redirect:/user/login.html"; } return "frame"; }
登录成功之后将当前用户信息存入HttpSession中,同样对于HttpServletRequest,主要用户登录失败后提示错误信息。
main方法中也增加了HttpSession入参,在方法体内通过逻辑来判断session中是否存有当前登录用户,若无,则证明没登录系统或session已过期