一、流程
登录接口--》验证用户名密码--》获取用户实体对象--》创建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