一、流程
登錄接口--》驗證用戶名密碼--》獲取用戶實體對象--》創建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
