在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已過期