एक यूआरएल की रूट पर फ़िल्टर कैसे मैप किया जा सकता है? मैं टोमकैट 7.0.2 का उपयोग कर रहा हूं और ROOT.war के रूप में एप्लिकेशन को तैनात कर रहा हूं। स्वागत पृष्ठ sign_in.xhtml है। जब भी क्लाइंट साइट की रूट (यानी केवल डोमेन नाम) के लिए अनुरोध भेजता है, या जब ग्राहक sign_in.xhtml अनुरोध करता है तो मैं एक फ़िल्टर चलाने के लिए चाहता हूं। यहाँ मैं अब तक है: sign_in.xhtml के लिएसर्वलेट फ़िल्टर यूआरएल मैपिंग
<filter>
<filter-name>My filter</filter-name>
<filter-class>com.myApp.myFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>My filter</filter-name>
<url-pattern>/sign_in.xhtml</url-pattern>
</filter-mapping>
अनुरोधों को सीधे, सफलतापूर्वक फिल्टर आह्वान है, लेकिन मुझे यकीन है कि जड़ फिल्टर आह्वान करने के लिए के लिए अनुरोध प्राप्त करने के लिए नहीं कर रहा हूँ। सर्वलेट कल्पना के अनुसार (संस्करण 3.0) डिफ़ॉल्ट सर्वलेट को
<url-pattern>/</url-pattern>
नक्शे, और जड़ तक कोई रिक्त स्ट्रिंग नक्शे।
"रिक्त स्ट्रिंग (" ") एक विशेष URL पैटर्न है कि वास्तव में आवेदन के संदर्भ जड़, यानी करने के लिए नक्शे, प्रपत्र http://host:port//इस मामले में पथ की जानकारी का अनुरोध किया गया है:। यहाँ कल्पना से प्रासंगिक अनुभाग है '/' है और सर्वलेट पथ और संदर्भ पथ खाली स्ट्रिंग ("") है। "
हालांकि, निम्नलिखित यूआरएल पैटर्न दोनों टॉमकैट को अपवाद फेंकने का कारण बनते हैं।
<url-pattern></url-pattern>
<url-pattern>""</url-pattern>
मैं यह वास्तव में सराहना करते हैं अगर किसी को इस पर कुछ प्रकाश डाला सकता है। धन्यवाद।
एंड्रयू
इस बलुससी में देखने के लिए धन्यवाद। यदि उपयोगकर्ता को अपना पासवर्ड बदलना है तो मैं पुनर्निर्देशन को मजबूर करना चाहता हूं। एक फिल्टर उचित समाधान की तरह लगता है। मुझे लगता है मुझे 7.0.3 के लिए इंतजार करना होगा या कुछ अलग के साथ आना होगा। कोई विचार? –
'/ *' पर एक फ़िल्टर सुनना जो केवल यूआरआई खाली होने पर कार्रवाई करता है। – BalusC
मैं इसे जाने दूंगा और फिर टॉमकैट बग ठीक होने के बाद यूआरएल-पैटन अपडेट कर दूंगा। –