2012-11-02 9 views
9

Servlet specification कॉन्फ़िगरेशन पैरामीटर के साथ वेब एप्लिकेशन प्रदान करने के लिए दो अलग-अलग तरीकों (संदर्भ पैरामीटर और पर्यावरण प्रविष्टियों) को परिभाषित क्यों करता है?सर्वलेट-स्पेक: <context-param> बनाम <env-entry> web.xml में?

इन दृष्टिकोणों के संबंधित फायदे क्या हैं (जब इसे प्राथमिकता दी जानी चाहिए)?

उत्तर

16

पर्यावरण प्रविष्टियां JNDI के माध्यम से उपलब्ध हैं जो उपयोगी हो सकती हैं जब आपके पास सीधे हाथों पर नहीं है, जैसे EJBsweb.xml में से एक वास्तव में पर्यावरण की इच्छाओं को ओवरराइड करने के लिए प्राथमिकता श्रृंखला में अंतिम है। वे आमतौर पर सर्वर की अपनी कॉन्फ़िगरेशन में निश्चित होते हैं। तो यदि कोई वेबपैड से सर्वर-निर्दिष्ट पर्यावरण प्रविष्टि को ओवरराइड करना चाहता है, तो यह web.xml के माध्यम से किया जा सकता है।

संदर्भ पैरामीटर वास्तव में वेबैप के लिए विशिष्ट हैं। वे, जब आप एक ServletContext सीधे हाथों में है ही उपलब्ध हैं आमतौर पर केवल अंदर filters, servlets (और स्वाभाविक भी JSPsEL में ${initParam.someName} माध्यम से) और listeners। वे वेबपैलिकेशन में चल रहे फ़िल्टर, सर्लेट और/या श्रोताओं के लिए कॉन्फ़िगरेशन पैरामीटर प्रदान करने के लिए उपयोग किए जाने वाले हैं। उन्हें जेएनडीआई द्वारा प्रदान करने के लिए ज्यादा समझदारी नहीं होगी जो कि सरल उद्देश्य के लिए एक जटिल प्रक्रिया है।

+0

मैं अभी भी उलझन में हूं। मान लीजिए कि मैं अपना डेटाबेस कनेक्शन विवरण स्टोर करना चाहता हूं, उदाहरण के लिए? इन 2 में से मुझे क्या उपयोग करना चाहिए? मैं एक ही टोमकैट पर एक से अधिक बार अपने ऐप को स्थापित करने का इरादा रखता हूं। – Wouter

+0

@ वाउटर पर्यावरण प्रविष्टियों का एक बड़ा दायरा है, जो कि टोमकैट पर चल रहे सभी वेब अनुप्रयोगों के लिए उपलब्ध है। एक "संदर्भ" एक एकल वेब ऐप है, एक एकल [WAR फ़ाइल] पर मैपिंग (https://en.wikipedia.org/wiki/WAR_%28Sun_file_format%29)। तो यदि आपका डेटाबेस केवल एक ही वेब ऐप परोसता है, तो इसे संदर्भ स्तर पर करें। ऐसा करने का एक तरीका है ' ...' अपने वेब ऐप के 'मेटा-आईएनएफ' फ़ोल्डर में 'context.xml' फ़ाइल में टैग' लिख रहा है। जैसा कि "मेरे ऐप को एक ही टोमकैट पर एक से अधिक बार इंस्टॉल करने" के आपके उल्लेख के लिए, मुझे समझ में नहीं आता है, समझ में नहीं आता है। –

+0

@ बालससी आपका पहला अनुच्छेद बिल्कुल स्पष्ट नहीं है। यदि आप कहने का मतलब है कि पर्यावरण प्रविष्टियों के संदर्भ में पैरामीटर की तुलना में व्यापक दायरा है, तो अधिक स्पष्ट रूप से कहें। शायद उद्धरण [टोमकैट डॉक्टर] (https://tomcat.apache.org/tomcat-8.0-doc/config/globalresources.html#Environment_Entries): "सभी वेब अनुप्रयोगों के लिए दृश्यमान" –

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