2010-02-03 27 views
7

यहां संदेह है कि मैं ServletContext के साथ आया हूं प्रति वेब-ऐप और एक प्रति JVM है। लेकिन अगर मैं एक ही JVM पर एक से अधिक वेब-ऐप चला रहा हूं। उसके बाद इसमें 2 सर्वलेट कॉन्टेक्स्ट प्रति JVM है। क्या यह संभव है? क्या कोई इस पर विस्तार कर सकता है?ServletContext प्रति वेब-ऐप या प्रति JVM प्रति एक है?

उत्तर

7

प्रत्येक वेबपैप का अपना सर्वलेट कॉन्टेक्स्ट होगा। api docs जिस तरह से रखा गया है:

प्रति जावा वर्चुअल मशीन प्रति "वेब एप्लिकेशन" प्रति एक संदर्भ है।

"वेब अनुप्रयोग प्रति" भाग (ए "वेब अनुप्रयोग" इस तरह/सूची और संभवतः एक .war फ़ाइल के माध्यम से स्थापित के रूप में सर्वलेट और सामग्री सर्वर का URL नाम स्थान के विशेष समूह के तहत स्थापित की एक संग्रह है।) इसका अर्थ यह है कि यदि आप क्लस्टर में एप्लिकेशन सेट अप करते हैं तो क्लस्टर में प्रत्येक नोड में एक अलग जेवीएम होता है, और JVM प्रत्येक वेबपैप के लिए ServletContext सहित सभी एप्लिकेशन की अलग-अलग प्रतियां चलाएगा।

2

ServletContext:

प्रति "वेब अनुप्रयोग" जावा वर्चुअल मशीन प्रति एक संदर्भ है।

इसका मतलब है कि प्रत्येक वेब एप्लिकेशन में प्रत्येक VM पर बिल्कुल एक ServletContext है। (एकाधिक-वीएम केस तब होता है जब आपके पास एक वितरित अनुप्रयोग होता है)

8

प्रति वेब एप्लिकेशन और प्रति JVM में से प्रत्येक को निम्न तालिकाओं के साथ समझाया जा सकता है।

एक सर्वर (एक JVM) पर कई वेब Apps:

Web App A - Server/JVM 1 - Context 1 
Web App B - Server/JVM 1 - Context 2 
Web App C - Server/JVM 1 - Context 3 

एक ही वेब एप्लिकेशन कई सर्वर पर (कई JVMs):

Web App A - Server/JVM 1 - Context 1 
Web App B - Server/JVM 1 - Context 2 
Web App C - Server/JVM 1 - Context 3 
Web App C - Server/JVM 2 - Context 4 
संबंधित मुद्दे