Ну, так как вы упоминаете, что URL не приходит из запроса сервлета, правильный ответ, как обычно, , это зависит .
Проблема с частью запроса в URL заключается в том, что нет четкой спецификации о том, как обрабатывать дублирование параметров.
Например, рассмотрим следующий URL:
http://www.example.com?param1=value1¶m2=value2¶m1=value3
Что вы ожидаете в качестве значения для param1? первое значение, последнее, массив? Проблема заключается в том, что, согласно спецификациям, все эти ответы действительны, и поставщик сервера может свободно поддерживать один из этих или других. Некоторые используют нотацию param1 [], чтобы указать, что она должна рассматриваться как массив, но опять же, это не унифицированное решение.
Итак, «лучшее» решение - узнать, как ваш конечный объект обрабатывает параметры, и имитировать поведение с помощью самодельного служебного класса.