2012-09-26 6 views
8

कोड में से एक में मैंने देखा है कि, वहाँ था कोई <servlet-mapping> टैग औरहम web.xml प्रविष्टि में <सर्वलेट-मानचित्रण> बिना एक सर्वलेट आह्वान कर सकते हैं

<servlet> 
    <servlet-name>startServlet</servlet-name> 
    <servlet-class>com.login.StartupServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

नीचे के रूप में केवल अपने घोषित कर सकते हैं बिना यह काम <servlet-mapping> और <load-on-startup>1</load-on-startup> पर काम करते हैं ??

यह सर्वलेट डीबी से कनेक्ट करने के लिए सर्वर स्टार्टअप पर लोड हो जाएगा और कैशिंग पर कुछ ऑपरेशन करेगा।

पीएस: यह सर्वलेट 2.0+ संस्करण पर है और एनोटेटेड नहीं है।

धन्यवाद Punith

उत्तर

7

कोड तुम्हें तैनात कुछ आप एक "प्रारंभकर्ता सर्वलेट" कह सकते हैं परिभाषित करता है। इसे सीधे बाहरी दुनिया से नहीं पहुंचाया जाता है (यूआरएल का उपयोग करके) लेकिन यह सर्वलेट कंटेनर द्वारा शुरू किया जाएगा।

यह मान्य है लेकिन इसे ग्राहकों द्वारा एक्सेस नहीं किया जा सकता है। यह अक्सर प्रारंभिक उद्देश्यों के लिए प्रयोग किया जाता है। आप Servlets 3.0 एनोटेशन का उपयोग कर <servlet-mapping> के बिना servlets तक पहुंच सकते हैं।

दिमाग कि <load-on-startup> में सही/गलत मान (0/1) नहीं है लेकिन यह स्टार्टअप का एक पूर्णांक परिभाषित करता है। उच्च संख्या का मतलब है कि सर्वलेट के बाद कम संख्या वाले वाले लोगों को लोड किया जाएगा।

+0

असल में सुरक्षा उपकरण में से एक त्रुटि फेंक रहा है, कह रहा है ... web.xml में परिभाषित एक सर्वलेट को संबंधित सर्वलेट मैपिंग के बिना एक्सेस नहीं किया जा सकता है। –

+1

अच्छा, यह सच है :-) हालांकि, मुझे नहीं लगता कि इसे एक त्रुटि दिखानी चाहिए - मेरी राय में एक चेतावनी अधिक उपयुक्त होगी। –

2

यह पैटर्न अक्सर जावा ईई वेब अनुप्रयोग के प्रारंभ के लिए उपयोग किया जाता है। उदाहरण के लिए, यह ईजेबी 3.1 में पेश किए गए @Singleton एनोटेशन के लिए एक लोकप्रिय कामकाज है।

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