2010-08-05 18 views
5

में JSP को (एक आसान एक- होना चाहिए)
यूआरएल अनुप्रेषित करने के लिए कैसे web.xml

मैं एक मेरी विशिष्ट jsp में पैटर्न बेकार के सभी यूआरएल * .js कैसे अनुप्रेषित कर सकते हैं।
होगा मेरे web.xml काम करने के लिए इस अतिरिक्त:

<servlet-mapping> 
     <servlet-name>MySpecific.jsp</servlet-name> 
     <url-pattern>yada*.js</url-pattern> 
</servlet-mapping> 

या शायद मैं उस उद्देश्य के लिए javax.servlet.filter का उपयोग करना चाहिए?

उत्तर

11

मैं उन फ़ाइलों को /yada नामक फ़ोल्डर में छोड़ दूंगा और फिर /yada/* के url-pattern का उपयोग करना चाहिए।

यदि आप ऐसा नहीं करना चाहते हैं, तो फ़िल्टर में इसे हाथ से निर्धारित करना वास्तव में एकमात्र उपाय है।


अद्यतन: अगर आपके अपडेट के अनुसार, आप वास्तव में एक दूसरा सवाल जो सीधे अपने प्रारंभिक सवाल से स्पष्ट नहीं किया गया है: "कैसे एक सर्वलेट के रूप में JSP फ़ाइल घोषित करने के लिए" । जवाब है: <servlet-class> के बजाय <jsp-file> का उपयोग करें।

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

फिर भी, टिप्पणियों में कहा गया है, यह सबसे अच्छा अभ्यास नहीं है। यह एक जेएसपी फ़ाइल में कच्चे जावा कोड में गंध करता है जिसे आपको avoid को सभी हद तक करना चाहिए।

+0

लेकिन क्या सर्व-नाम विशेषता सीधे जेएसपी फ़ाइल में हो सकती है, न कि सर्वलेट? – Spiderman

+0

ओह, मैंने सोचा कि आपके पास पहले से ही '' है। नहीं, आप अकेले ऐसा नहीं कर सकते। '' में 'सर्वलेट-वर्ग>' के बजाय ' 'का उपयोग करें और यह काम करेगा। हालांकि यह अनुशंसा नहीं है। जेएसपी इसके लिए गलत उपकरण है। जेएसपी में कच्चा जावा कोड [avoided] होना चाहिए (http://stackoverflow.com/questions/3177733/howto-avoid-java-code-in-jsp-files) सभी हद तक। – BalusC

+0

हम नहीं जानते कि वह कच्चे जावा कोड का उपयोग कर रहा है (मुझे लगता है कि वह नहीं है) – helios

1

सर्वर के आधार पर जो चीजें आप url-pattern में डाल सकते हैं, वे बहुत सीमित हैं।

दो मान्य हैं:

  • एक निरपेक्ष पथ (कोई वाइल्डकार्ड)
  • * .ext

ताकि विनिर्देश मिलान नहीं है। मैं वास्तव में एक फिल्टर का उपयोग करेंगे।

पीएस: जेएसपी उत्पन्न करने में <% पृष्ठ स्रोत एन्कोडिंग = ... सामग्री टाइप = ...%> निर्दिष्ट करना न भूलें :)। और सामग्री-प्रकार में वर्णसेट = xxxxx

+0

ठीक है लेकिन मैं फ़िल्टर से जेएसपी कैसे भेजूं। मुझे आगे की आज्ञा या पहले के बाद 'chain.doFilter()' को कॉल करना होगा। और क्या मुझे इसे कॉल करना होगा यदि पैटन पाया गया था या केवल अगर पैटर्न नहीं मिला था – Spiderman

+0

मैं इस धागे को http://stackoverflow.com/questions/3415240/forward-request-from-a-filter में जारी रखता हूं क्योंकि मैं वर्तमान में इस धागे में एक टिप्पणी से अधिक नहीं लिख सकता है और समस्या अभी तक हल नहीं हुई है – Spiderman

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