पढ़ें Javadocs, यह स्पष्ट रूप से कहते हैं:
यह कहते हैं, request.getSession()
इस अनुरोध के साथ जुड़े मौजूदा सत्र देता है, या यदि अनुरोध एक सत्र नहीं है, एक बनाता है।
और अन्य संस्करण request.getSession(isCreate)
वर्तमान इस अनुरोध के साथ जुड़े HttpSession रिटर्न या, अगर वहाँ कोई वर्तमान सत्र है और बनाने के सच है, एक नया सत्र देता है।
यदि निर्माण गलत है और अनुरोध के पास कोई मान्य HttpSession नहीं है, तो यह विधि शून्य हो जाती है।
यह सुनिश्चित करने के लिए कि सत्र ठीक से बनाए रखा गया है, आपको प्रतिक्रिया देने से पहले इस विधि को कॉल करना होगा। यदि कंटेनर सत्र अखंडता को बनाए रखने के लिए कुकीज़ का उपयोग कर रहा है और प्रतिक्रिया पूरी होने पर एक नया सत्र बनाने के लिए कहा जाता है, तो एक अवैध स्टेटस एक्सेप्शन फेंक दिया जाता है।
अद्यतन
थोड़ा अनुसंधान पर, मैं पाया है सत्र है कि नहीं बनाया जब तक request.getSession()
कहीं कहा जाता है। चूंकि, The servlet container uses this interface to create a session between an HTTP client and an HTTP server.
अच्छी संभावना है कि आपके सर्वलेट कंटेनर डिफ़ॉल्ट रूप से आपके लिए सत्र बनाता है।
देखें:
- जावा डॉक्टर HttpSession
- चर्चा JavaRaunch पर: is HttpSession created automatically?
लेकिन, सुरक्षित पक्ष होने के लिए, request.getSession()
का उपयोग सत्र पाने के लिए, और केवल आप जब request.getSession(false)
का उपयोग यह सत्यापित करने की आवश्यकता है कि कोई सत्र पहले से ही बनाया गया है या नहीं।
इसका मतलब क्या है 'यह काम नहीं करता है? क्या आपके पास अपवाद है? यदि आपका परीक्षण शून्य से कुछ अलग करता है तो इसका मतलब है कि सत्र पहले से मौजूद है और इसे नया बनाने के लिए जरूरी नहीं है। – reef
तो आपको request.getSession (false) प्राप्त करें! = शून्य। कुछ और कोड के साथ हम आपकी मदद कर सकते हैं ... – PeterMmm
मेरा मतलब है (request.getSession (false) == null) सत्य होना चाहिए, लेकिन यह गलत है, मुझे नहीं पता कि – Sergey