2010-05-31 19 views
6

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

उत्तर

6

वसंत (एमवीसी) का उपयोग इस के लिए अधिक है। अगर आपको निर्भरता इंजेक्शन की आवश्यकता नहीं है, तो आप redirect filter से खुश होंगे।

1

आप स्प्रिंग वेब एमवीसी के साथ ऐसी चीजें कर सकते हैं। उनके नियंत्रक एपीआई यूआरएल के हिस्सों को बैक एंड पर विशिष्ट कॉल पर मैप कर सकता है।

4

असल में, अधिकांश एमवीसी फ्रेमवर्क रीस्टफुल क्रियाओं का समर्थन करते हैं (यानी क्रियाओं के तरीकों पर यूआरएल मैप करने की अनुमति देते हैं): स्प्रिंग एमवीसी, Stripes, REST plugin के साथ स्ट्रूट 2।

यदि आप उनमें से किसी का उपयोग नहीं कर रहे हैं, तो आप इसे यूआरएल पुनर्लेखन के साथ प्राप्त कर सकते हैं। UrlRewriteFilter बहुत प्रसिद्ध है और ऐसी चीजों को लागू करने की अनुमति देता है। प्रलेखन से के बारे में Method Invocation:

मानक सर्वलेट मानचित्रण है कि किया के माध्यम से web.xml बल्कि सीमित करती है। केवल .xxx या/xxxx/, के लिए कोई अपमान नहीं है किसी भी प्रकार का स्मार्ट मिलान है। का उपयोग करना UrlRewrite से मेल खाने पर किसी भी नियम को कक्षा पर विधि (विधि) चलाने के लिए सेट किया जा सकता है।

एक सर्वलेट सीधे

<rule> 
<from>^/products/purchase$</from> 
<run class="com.blah.web.MyServlet" method="doGet" /> 
</rule> 

यह doGet (HttpServletRequest अनुरोध, HttpServletResponse प्रतिक्रिया) जब "से" एक अनुरोध पर मिलान किया जाता है लागू करेगा आह्वान। (याद इस विधि की जरूरत है सार्वजनिक!)

अपने तरीकों

<rule> 
    <from>^/pref-editor/addresses$</from> 
    <run class="com.blah.web.PrefsServlet" method="runAddresses" /> 
</rule> 
<rule> 
    <from>^/pref-editor/phone-nums$</from> 
    <run class="com.blah.web.PrefsServlet" method="runPhoneNums" /> 
</rule> 
को सफाई से सौंपने के लिए इसका इस्तेमाल
2

मैं लिखा है एक पुस्तकालय jurlmap कहा जाता है जो अन्य बातों के अलावा करता है कि तुम क्या कह रहे हैं के लिये।

+0

इसका उपयोग करना मजेदार है! इस lib के लिए धन्यवाद! – dajood

+0

आह, आपका सर्वर नीचे है। गीथूब पर परियोजनाओं को साझा करना बेहतर है। –

+0

मेरे पास यह github पर है: https://github.com/mtomis/jurlmap, लेकिन मुझे यकीन नहीं है कि यह अभी भी कितना उपयोगी है। – mtomis

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