獲取到的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; ????}
因?yàn)閟essionId 和request 為 null ,所以也就用不了request 去存取 session 。不知道什么原因?有人幫忙解決一下嗎?
2018-12-21
苦了我一天,找到問(wèn)題所在了!!
自定義的 CustomSessionManager 要繼承 DefaultWebSessionManager ,而不是 DefaultSessionManager ,難怪獲得的 sessionId 和 request 為 null,給后來(lái)者一個(gè)告誡,不要像我一樣了。