इसके दो तरीके।
अपने HttpServletRequestWrapper
कार्यान्वयन में मूल HttpSession
"लपेटना"।
मैंने इसे थोड़ी देर पहले हेज़ेलकास्ट और वसंत सत्र के साथ वितरित सत्रों के क्लस्टरिंग के लिए बनाया था।
Here बहुत अच्छी तरह से समझाया गया है।
पहले, लागू अपनी खुद की HttpServletRequestWrapper
public class SessionRepositoryRequestWrapper extends HttpServletRequestWrapper {
public SessionRepositoryRequestWrapper(HttpServletRequest original) {
super(original);
}
public HttpSession getSession() {
return getSession(true);
}
public HttpSession getSession(boolean createNew) {
// create an HttpSession implementation from Spring Session
}
// ... other methods delegate to the original HttpServletRequest ...
}
, के बाद अपनी खुद की फ़िल्टर से, मूल HttpSession
लपेटता है, और FilterChain
अपने सर्वलेट कंटेनर द्वारा प्रदान के अंदर डाल दिया।
public class SessionRepositoryFilter implements Filter {
public doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
HttpServletRequest httpRequest = (HttpServletRequest) request;
SessionRepositoryRequestWrapper customRequest =
new SessionRepositoryRequestWrapper(httpRequest);
chain.doFilter(customRequest, response, chain);
}
// ...
}
अंत में, यह सुनिश्चित करने के लिए कि यह किसी अन्य से पहले प्रदर्शन करता है, अपने फ़िल्टर को web.xml में सेट करें।
इसे प्राप्त करने का दूसरा तरीका है जो आपके सर्वलेट कंटेनर को आपके कस्टम सत्र प्रबंधक को प्रदान करता है।
उदाहरण के लिए, Tomcat 7 में।
AFAIK, यह संभव नहीं है। जेईई स्पेक यह जरूरी नहीं है कि एचटीपीएसशन कार्यान्वयन बदला जा सके। लेकिन मुख्य सवाल यह है कि आप ऐसा क्यों करना चाहते हैं? –
यह सुनिश्चित नहीं है कि आपको इसे कार्यान्वित करने के तरीके की आवश्यकता है, लेकिन यह जांचें http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial- सत्र- ट्रैकिंग।एचटीएमएल – eon
आपको ऐसा करने की ज़रूरत है कि आपको लगता है कि आपको HttpSession को कार्यान्वित करने की आवश्यकता है? – CrackerJack9