一、流程

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

05-11 15:47