tags:

views:

67

answers:

3

I am using jsps and in my url I have a value for a variable like say "L & T". Now when I try to retrieve the value for it by using request.getParameter I get only "L". It recognizes "&" as a separator and thus it is not getting considered as a whole string.

How do I solve this problem?

+3  A: 
java.net.URLEncoder.encode("L & T", "utf8")

this outputs the URL-encoded, which is fine as a GET parameter:

L+%26+T
Bozho
A: 

A literal ampersand in a URL should be encoded as: %26

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

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

You need to "URL encode" the parameters to avoid this problem. The format of the URL query string is: ...?<name>=<value>&<name>=<value>&<etc> All <name>s and <value>s need to be URL encoded, which basically means transforming all the characters that could be interpreted wrongly (like the &) into %-escaped values. See this page for more information: http://www.w3schools.com/TAGS/ref_urlencode.asp

If you're generating the problem URL with Java, you use this method: String str = URLEncoder.encode(input, "UTF-8");

Generating the URL elsewhere (some templates or JS or raw markup), you need to fix the problem at the source.

quixoto