Что ж, есть два метода для более простого доступа к этим данным, но интерфейс не предлагает возможности получить весь URL-адрес за один вызов. Придется собрать вручную:
public static String makeUrl(HttpServletRequest request)
{
return request.getRequestURL().toString() + "?" + request.getQueryString();
}
Я не знаю, как это сделать с помощью каких-либо средств Spring MVC.
Если вы хотите получить доступ к текущему запросу, не передавая его повсюду, вам нужно будет добавить слушателя в web.xml:
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
А затем используйте это, чтобы привязать запрос к текущему потоку:
((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest()
HttpServletRequest
объект. Это потому, что я использую несколько вспомогательных классов / методов и не хочу каждый раз передавать объект запроса.