Class ServletUriComponentsBuilder
java.lang.Object
org.springframework.web.util.UriComponentsBuilder
org.springframework.web.servlet.support.ServletUriComponentsBuilder
- All Implemented Interfaces:
Cloneable
,UriBuilder
UriComponentsBuilder with additional static factory methods to create links
based on the current HttpServletRequest.
Note: As of 5.1, methods in this class do not extract
"Forwarded"
and "X-Forwarded-*"
headers that specify the
client-originated address. Please, use
ForwardedHeaderFilter
, or similar from the underlying server, to extract
and use such headers, or to discard them.
- Since:
- 3.1
- Author:
- Rossen Stoyanchev
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.web.util.UriComponentsBuilder
UriComponentsBuilder.ParserType
-
Constructor Summary
ModifierConstructorDescriptionprotected
Default constructor.protected
Create a deep copy of the given ServletUriComponentsBuilder. -
Method Summary
Modifier and TypeMethodDescriptionClone thisUriComponentsBuilder
.static ServletUriComponentsBuilder
fromContextPath
(HttpServletRequest request) Prepare a builder from the host, port, scheme, and context path of the given HttpServletRequest.static ServletUriComponentsBuilder
Same asfromContextPath(HttpServletRequest)
except the request is obtained throughRequestContextHolder
.static ServletUriComponentsBuilder
Same asfromRequest(HttpServletRequest)
except the request is obtained throughRequestContextHolder
.static ServletUriComponentsBuilder
Same asfromRequestUri(HttpServletRequest)
except the request is obtained throughRequestContextHolder
.static ServletUriComponentsBuilder
Same asfromServletMapping(HttpServletRequest)
except the request is obtained throughRequestContextHolder
.static ServletUriComponentsBuilder
fromRequest
(HttpServletRequest request) Prepare a builder by copying the scheme, host, port, path, and query string of an HttpServletRequest.static ServletUriComponentsBuilder
fromRequestUri
(HttpServletRequest request) Prepare a builder from the host, port, scheme, and path (but not the query) of the HttpServletRequest.static ServletUriComponentsBuilder
fromServletMapping
(HttpServletRequest request) Prepare a builder from the host, port, scheme, context path, and servlet mapping of the given HttpServletRequest.protected static HttpServletRequest
Obtain current request throughRequestContextHolder
.Remove any path extension from therequestURI
.Methods inherited from class org.springframework.web.util.UriComponentsBuilder
build, build, build, build, buildAndExpand, buildAndExpand, clone, encode, encode, fragment, fromHttpRequest, fromHttpUrl, fromOriginHeader, fromPath, fromUri, fromUriString, fromUriString, host, newInstance, path, pathSegment, port, port, query, queryParam, queryParam, queryParamIfPresent, queryParams, replacePath, replaceQuery, replaceQueryParam, replaceQueryParam, replaceQueryParams, scheme, schemeSpecificPart, toUriString, uri, uriComponents, uriVariables, userInfo
-
Constructor Details
-
ServletUriComponentsBuilder
protected ServletUriComponentsBuilder()Default constructor. Protected to prevent direct instantiation. -
ServletUriComponentsBuilder
Create a deep copy of the given ServletUriComponentsBuilder.- Parameters:
other
- the other builder to copy from
-
-
Method Details
-
fromContextPath
Prepare a builder from the host, port, scheme, and context path of the given HttpServletRequest. -
fromServletMapping
Prepare a builder from the host, port, scheme, context path, and servlet mapping of the given HttpServletRequest.If the servlet is mapped by name, for example,
"/main/*"
, the path will end with "/main". If the servlet is mapped otherwise, for example,"/"
or"*.do"
, the result will be the same as if callingfromContextPath(HttpServletRequest)
. -
fromRequestUri
Prepare a builder from the host, port, scheme, and path (but not the query) of the HttpServletRequest. -
fromRequest
Prepare a builder by copying the scheme, host, port, path, and query string of an HttpServletRequest. -
fromCurrentContextPath
Same asfromContextPath(HttpServletRequest)
except the request is obtained throughRequestContextHolder
. -
fromCurrentServletMapping
Same asfromServletMapping(HttpServletRequest)
except the request is obtained throughRequestContextHolder
. -
fromCurrentRequestUri
Same asfromRequestUri(HttpServletRequest)
except the request is obtained throughRequestContextHolder
. -
fromCurrentRequest
Same asfromRequest(HttpServletRequest)
except the request is obtained throughRequestContextHolder
. -
getCurrentRequest
Obtain current request throughRequestContextHolder
. -
removePathExtension
Remove any path extension from therequestURI
. This method must be invoked before any calls toUriComponentsBuilder.path(String)
orUriComponentsBuilder.pathSegment(String...)
.GET http://www.foo.example/rest/books/6.json ServletUriComponentsBuilder builder = ServletUriComponentsBuilder.fromRequestUri(this.request); String ext = builder.removePathExtension(); String uri = builder.path("/pages/1.{ext}").buildAndExpand(ext).toUriString(); assertEquals("http://www.foo.example/rest/books/6/pages/1.json", result);
- Returns:
- the removed path extension for possible re-use, or
null
- Since:
- 4.0
-
cloneBuilder
Description copied from class:UriComponentsBuilder
Clone thisUriComponentsBuilder
.- Overrides:
cloneBuilder
in classUriComponentsBuilder
- Returns:
- the cloned
UriComponentsBuilder
object
-