2009-03-19 7 views
8

सभी मैं Tomcat 5.5 docs में मिल सकती है:क्रॉसकॉन्टेक्स्ट विशेषता टोमकैट में क्या करती है? क्या यह सत्र साझा करने में सक्षम बनाता है?

सही पर सेट किया है, तो आप ServletContext.getContext() के लिए इस आवेदन में कॉल चाहते सफलतापूर्वक अन्य वेब इस आभासी मेजबान पर चल रहे अनुप्रयोगों के लिए एक अनुरोध डिस्पैचर वापस जाने के लिए। GetContext() हमेशा शून्य वापस करने के लिए, सुरक्षा जागरूक वातावरण में झूठी (डिफ़ॉल्ट) पर सेट करें।

मैं कुछ मंच पदों कि टिप्पणी है कि स्थापित करने crossContext=true भी विभिन्न वेब अनुप्रयोगों के बीच सत्र वस्तु को साझा करने के लिए सक्षम बनाता पाया है, लेकिन मैं यह बताते हुए कोई आधिकारिक दस्तावेज़ ढूंढने के लिए सक्षम नहीं हूँ।

क्या Servlet.getContext() और विभिन्न वेब अनुप्रयोगों के बीच सत्र स्थिति साझा करने की क्षमता के बीच कोई संबंध है?

crossContext विशेषता वास्तव में टॉमकैट में क्या करता है?

उत्तर

8

जावाडोक ServletContext.getContext() से:

इस विधि सर्वलेट्स सर्वर के विभिन्न भागों के लिए संदर्भ में पहुँच प्राप्त करने की अनुमति देता है, और जरूरत के रूप में संदर्भ से RequestDispatcher वस्तुओं प्राप्त करते हैं। दिए गए पथ को "/" से शुरू किया जाना चाहिए, सर्वर के दस्तावेज़ रूट के सापेक्ष व्याख्या की गई है और इस कंटेनर पर होस्ट किए गए अन्य वेब अनुप्रयोगों की संदर्भ जड़ों के खिलाफ मेल खाती है।

तो उदाहरण के लिए यदि आप किसी भिन्न वेबैप से एक पृष्ठ शामिल करना चाहते हैं तो आपको crossContext को सत्य पर सेट करने की आवश्यकता है।

+0

क्या Servlet.getContext() और विभिन्न वेब अनुप्रयोगों के बीच सत्र स्थिति साझा करने की क्षमता के बीच कोई संबंध है? – Serxipc

+1

ऐसा नहीं है कि मुझे पता है। –

17

आप Single Sign-On Valve का उपयोग करके वेब अनुप्रयोगों के बीच सत्र साझा कर सकते हैं।

यदि आप एक ही वर्चुअल होस्ट में विभिन्न वेब अनुप्रयोगों के बीच कुछ जानकारी साझा करना चाहते हैं तो आप crossContext=true सेट करेंगे।

उदाहरण के लिए APP1 कहेंगे:

setAttribute("name", object); 

और एक अन्य एप्लिकेशन

getContext("/app1").getAttribute("name"); 

कह सकते हैं के बारे में जानकारी को पढ़ने के लिए। यदि crossContext को सत्य पर सेट नहीं किया गया था, तो getContext ("/ app1") शून्य वापस आ गया होगा।

हालांकि, क्रॉसकॉन्टेक्स्ट का उपयोग दुर्लभ और संभावित रूप से असुरक्षित दोनों है।

+0

धन्यवाद, लेकिन मैं एक ही संकेत की तलाश नहीं कर रहा हूं, मुझे HttpSession विशेषताओं को साझा करने की आवश्यकता है। मेरे नए प्रश्न http: // stackoverflow पर एक नज़र डालें।कॉम/प्रश्न/665 9 41/किसी भी तरह से-साझा-सत्र-राज्य-बीच-अलग-अनुप्रयोग-इन-टोमकैट – Serxipc

+0

आप सभी को धन्यवाद और विशेष रूप से आप महोदय, थैआआआआआआआआंक्स आप मेरे जीवन को बचाने के लिए – Dilllllo

+0

+1 एकल साइन पर इंगित करने के लिए +1 डॉन पर –

0

मैंने इसे स्वयं करने की कोशिश की और मुझे जादुई सत्र साझाकरण दुष्प्रभाव नहीं मिल रहा है, इसलिए क्रॉसकॉन्टेक्स्ट विशेषता केवल डॉक्स कहती है।

मैंने सत्र स्थिति साझा करने का कोई तरीका देखने के लिए another question पोस्ट किया है।

संबंधित मुद्दे