一、流程
登錄接口--》驗證用戶名密碼--》獲取用戶實體對象--》創建session (key,value)
其他接口調用--》獲取session(key)
二、代碼
//登錄並寫入緩存 @RequestMapping("a/login") @ResponseBody public String loginAction(HttpSession session, String userName, String password, HttpServletRequest request) { HrUser hr=new HrUser(); hr.setNickName(userName); session.setAttribute("userInfo", hr); return ""; }
//對外獲取緩存 @RequestMapping("a/logb") // , method = RequestMethod.POST) @ResponseBody public String logb() { Object pp=getSession().getAttribute("userInfo"); String result="1"; if(pp!=null) { result=((HrUser)pp).getNickName(); } return result; } //獲取會話緩存內容 private HttpSession getSession() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) .getRequest(); return request.getSession(); }
三、效果
A用戶 本地運行代碼,先調用 a/login接口傳參?userName=1234 ,再調用 a/logb 會返回1234 一存一取成功
B用戶 在A用戶執行完存取操作后,執行 a/logb ,不會返回任何東西,因為只有A用戶的會話才有緩存,這時 B去執行 a/login接口傳參?userName=12345 ,再調用 a/logb 會返回12345 A用戶執行 調用 a/logb 只會返回自己會話的緩存1234