2010-06-03 15 views
7

के लिए डिस्पैचर मेरे पास Servlet Spec 2.3 के लिए डिज़ाइन किए गए पुराने वेबसर्वर के साथ Servlet Spec 2.4 के लिए लिखा गया एक ऐप है।फ़िल्टर मैपिंग

<filter-mapping> 
    <filter-name>sitemesh</filter-name> 
    <url-pattern>*.action</url-pattern> 
    <dispatcher>REQUEST</dispatcher>  
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 

मैं इस मानचित्रण फिर से लिख सकते हैं सर्वलेट 2.3 अनुरूप होने के लिए: web.xml फ़ाइल निम्न सिंटैक्स है?

उत्तर

1

बस < प्रेषक> टैग हटाएं।

सर्वलेट 2.3 प्रेषकों का समर्थन नहीं करता है। यदि आप शामिल नहीं करते हैं, तो इससे कोई फर्क नहीं पड़ता है। यदि आपने सर्वलेट/जेएसपी शामिल किया है, तो आपको उनका नाम बदलने की आवश्यकता है ताकि उन्हें 2.4 के रूप में सटीक व्यवहार प्राप्त करने के लिए फ़िल्टर नहीं किया जा सके।

9

आप केवल <dispatcher> प्रविष्टियों को हटा सकते हैं। डिफ़ॉल्ट रूप से Servlet 2.3 फ़िल्टर सब कुछ पर प्रेषण करता है और यह ठीक है। साइटमैश ने अपनी साइट पर भी उल्लेख किया है कि यह सर्वलेट 2.3 के साथ संगत है। यहाँ their site से एक उद्धरण है:

SiteMesh एक सर्वलेट फ़िल्टर है और इसलिए एक कंटेनर कि सर्वलेट 2.3 विनिर्देशों के अनुरूप की आवश्यकता है।

+0

मुझे यकीन नहीं है कि अगर आप सभी टैग हटाते हैं तो servlet 2.4 spec में, फ़िल्टर हमेशा से निष्पादित करता है या कभी नहीं। –

+3

@ डेविड: 2.4 के बाद से यह केवल 'अनुरोध' पर डिफ़ॉल्ट रूप से निष्पादित करता है। 'INCLUDE' और 'FORWARD' के लिए आपको' 'स्वयं निर्दिष्ट करना होगा (' REQUEST' के अलावा!)। – BalusC

+0

बिल्कुल सही, धन्यवाद! –

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