public interface UriInfo
getBaseUri()
.
All methods throw java.lang.IllegalStateException
if called outside the scope of a request (e.g. from a provider constructor).
Context
Modifier and Type | Method | Description |
---|---|---|
URI |
getAbsolutePath() |
Get the absolute path of the request.
|
UriBuilder |
getAbsolutePathBuilder() |
Get the absolute path of the request in the form of a UriBuilder.
|
URI |
getBaseUri() |
Get the base URI of the application.
|
UriBuilder |
getBaseUriBuilder() |
Get the base URI of the application in the form of a UriBuilder.
|
List<Object> |
getMatchedResources() |
Get a read-only list of the currently matched resource class instances.
|
List<String> |
getMatchedURIs() |
Get a read-only list of URIs for matched resources.
|
List<String> |
getMatchedURIs(boolean decode) |
Get a read-only list of URIs for matched resources.
|
String |
getPath() |
Get the path of the current request relative to the base URI as a string.
|
String |
getPath(boolean decode) |
Get the path of the current request relative to the base URI as a string.
|
MultivaluedMap<String,String> |
getPathParameters() |
Get the values of any embedded URI template parameters.
|
MultivaluedMap<String,String> |
getPathParameters(boolean decode) |
Get the values of any embedded URI template parameters.
|
List<PathSegment> |
getPathSegments() |
Get the path of the current request relative to the base URI as a
list of
PathSegment . |
List<PathSegment> |
getPathSegments(boolean decode) |
Get the path of the current request relative to the base URI as a list of
PathSegment . |
MultivaluedMap<String,String> |
getQueryParameters() |
Get the URI query parameters of the current request.
|
MultivaluedMap<String,String> |
getQueryParameters(boolean decode) |
Get the URI query parameters of the current request.
|
URI |
getRequestUri() |
Get the absolute request URI including any query parameters.
|
UriBuilder |
getRequestUriBuilder() |
Get the absolute request URI in the form of a UriBuilder.
|
URI |
relativize(URI uri) |
Relativize a URI with respect to the current request URI.
|
URI |
resolve(URI uri) |
Resolve a relative URI with respect to the base URI of the application.
|
String getPath()
getPath(true)
.IllegalStateException
- if called outside the scope of
a request.String getPath(boolean decode)
decode
- controls whether sequences of escaped octets are decoded
(true
) or not (false
).IllegalStateException
- if called outside the scope of
a request.List<PathSegment> getPathSegments()
PathSegment
. This method is useful when the
path needs to be parsed, particularly when matrix parameters may be
present in the path. All sequences of escaped octets in path segments
and matrix parameter values are decoded,
equivalent to getPathSegments(true)
.PathSegment
. The matrix parameter
map of each path segment is also unmodifiable.IllegalStateException
- if called outside the scope of a requestPathSegment
,
Matrix URIsList<PathSegment> getPathSegments(boolean decode)
PathSegment
. This method is useful when the path needs to be parsed,
particularly when matrix parameters may be present in the path.decode
- controls whether sequences of escaped octets in path segments
and matrix parameter values are decoded (true
) or not (false
).PathSegment
. The matrix parameter
map of each path segment is also unmodifiable.IllegalStateException
- if called outside the scope of a requestPathSegment
,
Matrix URIsURI getRequestUri()
IllegalStateException
- if called outside the scope of a requestUriBuilder getRequestUriBuilder()
IllegalStateException
- if called outside the scope of a
request.URI getAbsolutePath()
uriInfo.getBaseUri().resolve(uriInfo.getPath(false))
.IllegalStateException
- if called outside the scope of a
request.UriBuilder getAbsolutePathBuilder()
IllegalStateException
- if called outside the scope of a
request.URI getBaseUri()
UriBuilder getBaseUriBuilder()
MultivaluedMap<String,String> getPathParameters()
getPathParameters(true)
.IllegalStateException
- if called outside the scope of a
request.Path
,
PathParam
MultivaluedMap<String,String> getPathParameters(boolean decode)
decode
- controls whether sequences of escaped octets are decoded
(true
) or not (false
).IllegalStateException
- if called outside the scope of a
request.Path
,
PathParam
MultivaluedMap<String,String> getQueryParameters()
getQueryParameters(true)
.IllegalStateException
- if called outside the scope of a
request.MultivaluedMap<String,String> getQueryParameters(boolean decode)
decode
- controls whether sequences of escaped octets in parameter
names and values are decoded (true
) or not (false
).IllegalStateException
- if called outside the scope of a
request.List<String> getMatchedURIs()
getMatchedURIs(true)
.
Entries do not include query parameters but do include matrix parameters
if present in the request URI. Entries are ordered in reverse request
URI matching order, with the current resource URI first. E.g. given the
following resource classes:
@Path("foo") public class FooResource { @GET public String getFoo() {...} @Path("bar") public BarResource getBarResource() {...} } public class BarResource { @GET public String getBar() {...} }
The values returned by this method based on request uri and where the method is called from are:
Request | Called from | Value(s) |
---|---|---|
GET /foo | FooResource.getFoo | foo |
GET /foo/bar | FooResource.getBarResource | foo/bar, foo |
GET /foo/bar | BarResource.getBar | foo/bar, foo |
List<String> getMatchedURIs(boolean decode)
getMatchedURIs()
for an
example.
In case the method is invoked prior to the request matching (e.g. from a
pre-matching filter), the method returns an empty list.decode
- controls whether sequences of escaped octets are decoded
(true
) or not (false
).List<Object> getMatchedResources()
@Path("foo") public class FooResource { @GET public String getFoo() {...} @Path("bar") public BarResource getBarResource() {...} } public class BarResource { @GET public String getBar() {...} }
The values returned by this method based on request uri and where the method is called from are:
Request | Called from | Value(s) |
---|---|---|
GET /foo | FooResource.getFoo | FooResource |
GET /foo/bar | FooResource.getBarResource | FooResource |
GET /foo/bar | BarResource.getBar | BarResource, FooResource |
URI resolve(URI uri)
uri
- URI to resolve against the base URI of the application.URI relativize(URI uri)
Relativize a URI with respect to the current request URI. Relativization works as follows:
resolve(java.net.URI)
.Examples (for base URI http://example.com:8080/app/root/
):
Request URI: http://example.com:8080/app/root/a/b/c/resource.html
Supplied URI: a/b/c/d/file.txt
Returned URI: d/file.txt
Request URI: http://example.com:8080/app/root/a/b/c/resource.html
Supplied URI: http://example2.com:9090/app2/root2/a/d/file.txt
Returned URI: http://example2.com:9090/app2/root2/a/d/file.txt
In the second example, the supplied URI is returned given that it is absolute and there is no common prefix between it and the request URI.
uri
- URI to relativize against the request URI.IllegalStateException
- if called outside the scope of a request.Copyright (c) 2019 Eclipse Foundation. Licensed under Eclipse Foundation Specification License.