Instead of using RequestContextHolder
directly, you can also use ServletUriComponentsBuilder
and its static methods:
ServletUriComponentsBuilder.fromCurrentContextPath()
ServletUriComponentsBuilder.fromCurrentServletMapping()
ServletUriComponentsBuilder.fromCurrentRequestUri()
ServletUriComponentsBuilder.fromCurrentRequest()
They use RequestContextHolder
under the hood, but provide additional flexibility to build new URLs using the capabilities of UriComponentsBuilder
.
Example:
ServletUriComponentsBuilder builder = ServletUriComponentsBuilder.fromCurrentRequestUri();builder.scheme("https");builder.replaceQueryParam("someBoolean", false);URI newUri = builder.build().toUri();