I am building a site which submits a url to a servlet for analysis purposes. On the client side, I submit the url as a parameter that is encoded. For example...
Submit: http://www.site.com
Goes to: http://localhost/myservlet/?url=http%3A%2F%2Fwww.site.com
On the server side, I have my servlet request the parameter like so...
String url = request.getParameter("url");
What I receive is a decoded string: http://www.site.com. So far so good -- this works as expected... most of the time.
The problem occurs when a url param contains parameters of its own...
Submit: http://www.site.com?param1=1&param2=2
Goes to: http://localhost/myservlet/?url=http%3A%2F%2Fwww.site.com%3Fparam1%3D1%26param2%3D2
Everything is fine on the client site, but in my servlet when I get the parameter I receive only part of the url param!
http://www.site.com?param1=1
It dropped the second param from my input url param! I am definitely encoding the url param before submitting it to the server... what is going on?