Class ServletUriComponentsBuilder
- java.lang.Object
- org.springframework.web.util.UriComponentsBuilder
- org.springframework.web.servlet.support.ServletUriComponentsBuilder
- All Implemented Interfaces:
Cloneable,UriBuilder
public class ServletUriComponentsBuilder extends UriComponentsBuilder
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, useForwardedHeaderFilter, or similar from the underlying server, to extract and use such headers, or to discard them.- Since:
- 3.1
- Author:
- Rossen Stoyanchev
Constructor Summary
Constructors Modifier Constructor Description protectedServletUriComponentsBuilder()Default constructor.protectedServletUriComponentsBuilder(ServletUriComponentsBuilder other)Create a deep copy of the given ServletUriComponentsBuilder.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ServletUriComponentsBuildercloneBuilder()Clone thisUriComponentsBuilder.static ServletUriComponentsBuilderfromContextPath(HttpServletRequest request)Prepare a builder from the host, port, scheme, and context path of the given HttpServletRequest.static ServletUriComponentsBuilderfromCurrentContextPath()Same asfromContextPath(HttpServletRequest)except the request is obtained throughRequestContextHolder.static ServletUriComponentsBuilderfromCurrentRequest()Same asfromRequest(HttpServletRequest)except the request is obtained throughRequestContextHolder.static ServletUriComponentsBuilderfromCurrentRequestUri()Same asfromRequestUri(HttpServletRequest)except the request is obtained throughRequestContextHolder.static ServletUriComponentsBuilderfromCurrentServletMapping()Same asfromServletMapping(HttpServletRequest)except the request is obtained throughRequestContextHolder.static ServletUriComponentsBuilderfromRequest(HttpServletRequest request)Prepare a builder by copying the scheme, host, port, path, and query string of an HttpServletRequest.static ServletUriComponentsBuilderfromRequestUri(HttpServletRequest request)Prepare a builder from the host, port, scheme, and path (but not the query) of the HttpServletRequest.static ServletUriComponentsBuilderfromServletMapping(HttpServletRequest request)Prepare a builder from the host, port, scheme, context path, and servlet mapping of the given HttpServletRequest.protected static HttpServletRequestgetCurrentRequest()Obtain current request throughRequestContextHolder.StringremovePathExtension()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, host, newInstance, path, pathSegment, port, port, query, queryParam, queryParam, queryParams, replacePath, replaceQuery, replaceQueryParam, replaceQueryParam, replaceQueryParams, scheme, schemeSpecificPart, toUriString, uri, uriComponents, uriVariables, userInfo
Constructor Detail
ServletUriComponentsBuilder
protected ServletUriComponentsBuilder()
Default constructor. Protected to prevent direct instantiation.
ServletUriComponentsBuilder
protected ServletUriComponentsBuilder(ServletUriComponentsBuilder other)
Create a deep copy of the given ServletUriComponentsBuilder.- Parameters:
other- the other builder to copy from
Method Detail
fromContextPath
public static ServletUriComponentsBuilder fromContextPath(HttpServletRequest request)
Prepare a builder from the host, port, scheme, and context path of the given HttpServletRequest.
fromServletMapping
public static ServletUriComponentsBuilder fromServletMapping(HttpServletRequest request)
Prepare a builder from the host, port, scheme, context path, and servlet mapping of the given HttpServletRequest.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 callingfromContextPath(HttpServletRequest).
fromRequestUri
public static ServletUriComponentsBuilder fromRequestUri(HttpServletRequest request)
Prepare a builder from the host, port, scheme, and path (but not the query) of the HttpServletRequest.
fromRequest
public static ServletUriComponentsBuilder fromRequest(HttpServletRequest request)
Prepare a builder by copying the scheme, host, port, path, and query string of an HttpServletRequest.
fromCurrentContextPath
public static ServletUriComponentsBuilder fromCurrentContextPath()
Same asfromContextPath(HttpServletRequest)except the request is obtained throughRequestContextHolder.
fromCurrentServletMapping
public static ServletUriComponentsBuilder fromCurrentServletMapping()
Same asfromServletMapping(HttpServletRequest)except the request is obtained throughRequestContextHolder.
fromCurrentRequestUri
public static ServletUriComponentsBuilder fromCurrentRequestUri()
Same asfromRequestUri(HttpServletRequest)except the request is obtained throughRequestContextHolder.
fromCurrentRequest
public static ServletUriComponentsBuilder fromCurrentRequest()
Same asfromRequest(HttpServletRequest)except the request is obtained throughRequestContextHolder.
getCurrentRequest
protected static HttpServletRequest getCurrentRequest()
Obtain current request throughRequestContextHolder.
removePathExtension
@Nullable public String 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
public ServletUriComponentsBuilder cloneBuilder()
Description copied from class:UriComponentsBuilderClone thisUriComponentsBuilder.- Overrides:
cloneBuilderin classUriComponentsBuilder- Returns:
- the cloned
UriComponentsBuilderobject