Java Servlet getParameter para un parámetro que es una URL
Estoy construyendo un sitio que envía una URL a un servlet para fines de análisis. En el lado del cliente, envío la url como un parámetro codificado. Por ejemplo...
Submit: http://www.site.com
Goes to: http://localhost/myservlet/?url=http%3A%2F%2Fwww.site.com
En el lado del servidor, tengo mi servlet solicitando el parámetro así ...
String url = request.getParameter("url");
Lo que recibo es una cadena decodificada:http://www.site.com. Hasta ahora todo bien, esto funciona como se esperaba ... la mayor parte del tiempo.
El problema ocurre cuando un parámetro de url contiene parámetros propios ...
Submit: http://www.site.com?param1=1¶m2=2
Goes to: http://localhost/myservlet/?url=http%3A%2F%2Fwww.site.com%3Fparam1%3D1%26param2%3D2
¡Todo está bien en el sitio del cliente, pero en mi servlet cuando obtengo el parámetro recibo solo una parte del parámetro url!
http://www.site.com?param1=1
Se cayó el segundo parámetro de mi entrada url param! Definitivamente estoy codificando el parámetro url antes de enviarlo al servidor ... ¿qué está pasando?