獲取到的sessionId 和request 為 null
protected?Session?retrieveSession(SessionKey?sessionKey)?throws?UnknownSessionException?{
????????Serializable?sessionId?=?getSessionId(sessionKey);
????????if(sessionId?==?null)?{
????????????System.out.println("sessionId?為?null?");
????????}
????????ServletRequest?request?=?null;
????????if(sessionKey?instanceof?WebSessionKey)?{
????????????
????????????request?=?((WebSessionKey)?sessionKey).getServletRequest();
????????}
????????
????????if(request?==?null)?{
????????????System.out.println("request?為?null");
????????}
????????if(request?!=?null?&&?sessionId?!=?null)?{
????????????Session?session?=?(Session)request.getAttribute(sessionId.toString());
????????????if(session?!=?null)?{//在request中取
????????????????System.out.println("從request中取...");
????????????????return?session;
????????????}
????????}
????????
????????Session?session?=?super.retrieveSession(sessionKey);//從redis中取
????????if(request?!=?null?&&?sessionId?!=?null)?
????????????request.setAttribute(sessionId.toString(),?session);
????????
????????return?session;
????}因為sessionId 和request 為 null ,所以也就用不了request 去存取 session 。不知道什么原因?有人幫忙解決一下嗎?
2018-12-21
苦了我一天,找到問題所在了??!
自定義的 CustomSessionManager 要繼承 DefaultWebSessionManager ,而不是 DefaultSessionManager ,難怪獲得的 sessionId 和 request 為 null,給后來者一個告誡,不要像我一樣了。