public class ServletUriComponentsBuilder extends UriComponentsBuilder
Note: This class extracts and uses values from the headers
 "Forwarded" (RFC 7239),
 or "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" if
 "Forwarded" is not found, in order to reflect the client-originated protocol
 and address. As an alternative consider using the
 ForwardedHeaderFilter to have such
 headers extracted once and removed, or removed only (without being used).
 See the reference for further information including security considerations.
| Modifier | Constructor and Description | 
|---|---|
protected  | 
ServletUriComponentsBuilder()
Default constructor. 
 | 
protected  | 
ServletUriComponentsBuilder(ServletUriComponentsBuilder other)
Create a deep copy of the given ServletUriComponentsBuilder. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
ServletUriComponentsBuilder | 
cloneBuilder()
Clone this  
UriComponentsBuilder. | 
static ServletUriComponentsBuilder | 
fromContextPath(HttpServletRequest request)
Prepare a builder from the host, port, scheme, and context path of the
 given HttpServletRequest. 
 | 
static ServletUriComponentsBuilder | 
fromCurrentContextPath()
Same as  
fromContextPath(HttpServletRequest) except the
 request is obtained through RequestContextHolder. | 
static ServletUriComponentsBuilder | 
fromCurrentRequest()
Same as  
fromRequest(HttpServletRequest) except the
 request is obtained through RequestContextHolder. | 
static ServletUriComponentsBuilder | 
fromCurrentRequestUri()
Same as  
fromRequestUri(HttpServletRequest) except the
 request is obtained through RequestContextHolder. | 
static ServletUriComponentsBuilder | 
fromCurrentServletMapping()
Same as  
fromServletMapping(HttpServletRequest) except the
 request is obtained through RequestContextHolder. | 
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 | 
getCurrentRequest()
Obtain current request through  
RequestContextHolder. | 
String | 
removePathExtension()
Remove any path extension from the  
requestURI. | 
build, build, buildAndExpand, buildAndExpand, clone, fragment, fromHttpRequest, fromHttpUrl, fromOriginHeader, fromPath, fromUri, fromUriString, host, newInstance, path, pathSegment, port, port, query, queryParam, queryParams, replacePath, replaceQuery, replaceQueryParam, replaceQueryParams, scheme, schemeSpecificPart, toUriString, uri, uriComponents, userInfoprotected ServletUriComponentsBuilder()
protected ServletUriComponentsBuilder(ServletUriComponentsBuilder other)
other - the other builder to copy frompublic static ServletUriComponentsBuilder fromContextPath(HttpServletRequest request)
Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromServletMapping(HttpServletRequest request)
If the servlet is mapped by name, e.g. "/main/*", the path
 will end with "/main". If the servlet is mapped otherwise, e.g.
 "/" or "*.do", the result will be the same as
 if calling fromContextPath(HttpServletRequest).
 
Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromRequestUri(HttpServletRequest request)
Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromRequest(HttpServletRequest request)
Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromCurrentContextPath()
fromContextPath(HttpServletRequest) except the
 request is obtained through RequestContextHolder.
 Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromCurrentServletMapping()
fromServletMapping(HttpServletRequest) except the
 request is obtained through RequestContextHolder.
 Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromCurrentRequestUri()
fromRequestUri(HttpServletRequest) except the
 request is obtained through RequestContextHolder.
 Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromCurrentRequest()
fromRequest(HttpServletRequest) except the
 request is obtained through RequestContextHolder.
 Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
protected static HttpServletRequest getCurrentRequest()
RequestContextHolder.public String removePathExtension()
requestURI. This method must be invoked before any calls to UriComponentsBuilder.path(String)
 or UriComponentsBuilder.pathSegment(String...).
 
 GET http://foo.com/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://foo.com/rest/books/6/pages/1.json", result);
 nullpublic ServletUriComponentsBuilder cloneBuilder()
UriComponentsBuilderUriComponentsBuilder.cloneBuilder in class UriComponentsBuilderUriComponentsBuilder object