2012-01-24 16 views
28

के लिए कई यूआरएल-पैटर्न मुझे दो अलग-अलग यूआरएल पर एक ही सर्वलेट को मैप करने की आवश्यकता है। मैंने अपनी पूरी परियोजना के प्रबंधन के लिए नेटबीन्स 7.0.1 का उपयोग किया, इसलिए मैंने web.xml फ़ाइल को संशोधित करने के लिए अपने अनुकूल इंटरफ़ेस का उपयोग किया। क्या बनाया NetBeans यह है:एक ही सर्वलेट

<servlet-mapping> 
    <servlet-name>fred</servlet-name> 
    <url-pattern>*.jsp</url-pattern> 
    <url-pattern>/url</url-pattern> 
</servlet-mapping> 

यह किसी भी त्रुटि उत्सर्जन के बिना बिल्ला 5.5 द्वारा पढ़ा जाता है, लेकिन केवल दूसरा पैटर्न, काम करता है, जबकि पहले एक नजरअंदाज कर दिया है।

Googling मैंने पाया कि बिल्ला के लिए सही तरीके से यह एक है:

<servlet-mapping> 
    <servlet-name>fred</servlet-name> 
    <url-pattern>*.jsp</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>fred</servlet-name> 
    <url-pattern>/url</url-pattern> 
</servlet-mapping> 

तो, मेरे सवालों का: यह एक है, लेकिन बिल्ला में? अन्य कंटेनर स्वीकार करने वाले वाक्यविन्यास क्या हैं?

धन्यवाद, ग्यूसेप

उत्तर

39

मुझे लगता है कि यह बजाय उपयोग कर रहा है कंटेनर के साथ एक मुद्दा किया जा रहा कल्पना कंटेनर/NetBeans सर्वलेट से कोई लेना देना भी अधिक है। आपका शुद्ध सेम कल्पना 2.5 का उपयोग करने की सर्वलेट मानचित्रण के निर्माण के लिए और इसलिए आप प्राप्त

<servlet-mapping> 
    <servlet-name>fred</servlet-name> 
    <url-pattern>*.jsp</url-pattern> 
    <url-pattern>/url</url-pattern> 
</servlet-mapping> 

इस here बारे में अधिक पढ़ें लगता है। इसमें कहा गया है सर्वलेट स्कीमा की

पिछले संस्करणों एक फिल्टर mapping.For एकाधिक यूआरएल इस पूरे मानचित्रण खंड की अनावश्यक पुनरावृत्ति में जो परिणाम को मैप किया फिल्टर में केवल एक ही यूआरएल पैटर्न अनुमति देता है।

+0

सिफारिश मैं कहूंगा कि अगर यह वर्ष कल्पना (2.4) का उपयोग कर रहा है और नई वाक्य रचना को स्वीकार नहीं करता है कि बिल्ला कम से कम एक त्रुटि देना चाहिए। या नेटबीन को संगत web.xml रखने के लिए पुराने वाक्यविन्यास का उपयोग करना चाहिए। यही है ना क्या नए कंटेनर पुरानी वाक्यविन्यास को कई servlet-mapping stanzas के साथ स्वीकार करते हैं? – eppesuig

+1

@eppesuig मुझे यकीन है कि उनमें से अधिकतर पिछड़े संगत हैं :) और 2.5 सर्वलेट स्पेक एक्सएसडी निश्चित रूप से इसकी अनुमति देता है। –

+0

@eppesuig अगर आप उत्तर से संतुष्ट हैं तो आप इसे स्वीकार कर सकते हैं कि यह प्रश्न के बगल में टिक चिह्न पर क्लिक कर रहा है और/या अगर आप किसी भी तरह से आपकी मदद कर चुके हैं तो आप जवाब दे सकते हैं। उत्तर स्वीकार करने से इस मंच में आपकी प्रतिष्ठा बढ़ जाएगी। –

1

बिलाव कंटेनर का समर्थन करेंगे 3 url प्रतिमानों:

  1. पूरा चरित्र अनुक्रम
  2. /*
  3. *. ext (स्टार का मतलब कुछ भी)

/* केवल एक एकल के लिए सिफारिश की है ढांचा

यदि आप कई ढांचे का उपयोग तो .*

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