2011-10-25 13 views
9

पर मैप किए गए दो अलग-अलग सर्लेट होने के बाद मुझे दूसरों द्वारा लिखित एक जे 2 ईई परियोजना का सामना करना पड़ा। जब मैं web.xml पर आता हूं, तो उसी यूआरएल पैटर्न पर दो अलग-अलग सर्लेट मैप किए जाते हैं। मुझे इस दृष्टिकोण का उद्देश्य आश्चर्य है। यह काम वास्तव में कैसे करता है और क्या विवाद है?एक ही यूआरएल पैटर्न

यहाँ web.xml के प्रासंगिक हिस्सा है:

<servlet> 
    <servlet-name>fileDownload</servlet-name> 
    <servlet-class>com.htsoft.core.web.servlet.FileDownloadServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>fileDownload</servlet-name> 
    <url-pattern>/file-download</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>fileDownLoad</servlet-name> 
    <servlet-class>com.kaiwii.oa.action.system.FileDownloadServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>fileDownLoad</servlet-name> 
    <url-pattern>/file-downLoad</url-pattern> 
</servlet-mapping> 
+0

एक्सएमएल के हिस्सों को पेस्ट करने के लिए अच्छा होगा। – hellectronic

+0

मैं पहले से ही web.xml सामग्री पोस्ट कर चुका हूं। –

+3

वे समान नहीं हैं: सर्वलेट spec का कहना है कि पैटर्न मिलान केस-संवेदी है। –

उत्तर

11

केवल एक सर्वलेट कहा जाता हो जाएगा; दो तंत्रों के साथ एक अनुरोध को संभालने के लिए मुझे कोई तंत्र नहीं है (न ही मुझे यकीन है कि इसका क्या अर्थ होगा)।

सर्वलेट यूआरएल पैटर्न ओवरलैप हो सकते हैं, लेकिन सटीक उसी यूआरएल के साथ दो होने का कोई मतलब नहीं है। मुझे याद नहीं है कि सर्वलेट spec स्पष्ट रूप से को अस्वीकार करता है, हालांकि मिलान पहले मिलान में बंद हो जाता है। मिलान विधि को spec में परिभाषित किया गया है।

Servlet 2.4 spec PDF देखें पी। 85+

+0

यह कल्पना स्पष्ट है कि यूआरएल-पैटर्न का परीक्षण उनकी घटना के क्रम में किया जाना चाहिए, इसलिए पहला सबसे लंबा मैच है। एसआरवी 2.5। – EJP

+0

@EJP मैंने सोचा कि मैपिंग विनिर्देशों का हिस्सा क्या है? –

+0

मैंने अपनी टिप्पणी में संशोधन किया, लेकिन फ़िल्टर मैपिंग और सुरक्षा बाधाओं पर चर्चा करने वाले भाग web.xml ऑर्डर के बारे में स्पष्ट हैं; # 11.1 जो चर्चा करता है नहीं है। – EJP

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