Сервлет Java getParameter для параметра, который является URL

Я строю сайт, который отправляет URL сервлету для анализа. На стороне клиента я передаю URL как параметр, который закодирован. Например...

Submit: http://www.site.com
Goes to: http://localhost/myservlet/?url=http%3A%2F%2Fwww.site.com

На стороне сервера у меня есть запрос к сервлету с параметром примерно так ...

String url = request.getParameter("url");

Я получаю расшифрованную строку:http://www.site.com, Пока все хорошо - это работает как положено ... большую часть времени.

Проблема возникает, когда параметр URL содержит параметры собственного ...

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

На клиентском сайте все нормально, но в моем сервлете, когда я получаю параметр, я получаю только часть параметра url!

http://www.site.com?param1=1

Он пропустил второй параметр из моего входного параметра URL! Я определенно кодирую параметр url перед отправкой его на сервер ... что происходит?