2010-02-04 25 views
7

में मैं JSPs उपयोग कर रहा हूँ और मेरे यूआरएल में मैं कहता हूँ "एल & टी" की तरह एक चर के लिए एक मूल्य की है। अब जब मैं request.getParameter उपयोग करके इसके लिए मूल्य प्राप्त करने का प्रयास मैं केवल "L" मिलता है। यह एक विभाजक के रूप में पहचानता है "&" और इस तरह यह एक पूरी श्रृंखला के रूप में नहीं माना जा रहा है।से बचने के लिए और एक यूआरएल

मैं इस समस्या को कैसे हल करते हैं?

+0

कुछ कोड दे - कैसे आप पता बार में "एल एंड टी" लगा रहे हैं? – Bozho

उत्तर

14
java.net.URLEncoder.encode("L & T", "utf8") 
इस

आउटपुट URL- एनकोडेड है, जो एक प्राप्त पैरामीटर के रूप में ठीक है: %26

// Your URL 
http://www.example.com?a=l&t 

// Encoded 
http://www.example.com?a=l%26t 
+0

चरित्र एन्कोडिंग के लिए दूसरे तर्क के साथ एक? – Bozho

+0

ठीक है, मेरी टिप्पणी गलत है, मैं इसे हटा दूंगा – Rodrigo

1

एक यूआरएल में एक शाब्दिक एम्परसेंड के रूप में एन्कोड किया जाना चाहिए इस समस्या से बचने के लिए पैरामीटर "यूआरएल एन्कोड" करने के लिए। यूआरएल क्वेरी स्ट्रिंग के प्रारूप है: ...?<name>=<value>&<name>=<value>&<etc> सभी <name> और <value> रों यूआरएल एन्कोड करने की, मूल रूप से सभी पात्रों कि% -escaped मूल्यों में गलत तरीके से व्याख्या की जा सकती (&) की तरह बदलने जिसका मतलब है की जरूरत है। अधिक जानकारी के लिए इस पेज देखें: http://www.w3schools.com/TAGS/ref_urlencode.asp

आप जावा के साथ समस्या यह यूआरएल जेनरेट कर रहे हैं, तो आप इस विधि का उपयोग करें: String str = URLEncoder.encode(input, "UTF-8");

यूआरएल कहीं और जनरेट कर रहा है (कुछ टेम्पलेट्स या जे एस या कच्चे मार्कअप) , आपको स्रोत पर समस्या को ठीक करने की आवश्यकता है।

1

आप की जरूरत है:

L+%26+T 
0

आप स्प्रिंग वेब से उपयोग कर सकते हैं। यह यूटिलिटी क्लास यूआरएल के कुछ हिस्सों को एन्कोडिंग के साधन भी प्रदान करती है, जैसे UriUtils#encodePath

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