Top Description Methods
javax.ws.rs.core

public Interface UriInfo

Imports
java.net.URI, java.util.List

An injectable interface that provides access to application and request URI information. Relative URIs are relative to the base URI of the application, see getBaseUri.

All methods throw java.lang.IllegalStateException if called outside the scope of a request (e.g. from a provider constructor).

Authors
Paul Sandoz, Marc Hadley
Since
1.0
See Also
Context

Method Summary

Modifier and TypeMethod and Description
public URI

Returns:

the absolute path of the request.
getAbsolutePath
()

Get the absolute path of the request.

public UriBuilder

Returns:

a UriBuilder initialized with the absolute path of the request.
getAbsolutePathBuilder
()

Get the absolute path of the request in the form of a UriBuilder.

public URI

Returns:

the base URI of the application.
getBaseUri
()

Get the base URI of the application.

public UriBuilder

Returns:

a UriBuilder initialized with the base URI of the application.
getBaseUriBuilder
()

Get the base URI of the application in the form of a UriBuilder.

public List<Object>

Returns:

a read-only list of matched resource class instances.
getMatchedResources
()

Get a read-only list of the currently matched resource class instances.

public List<String>

Returns:

a read-only list of URI paths for matched resources.
getMatchedURIs
()

Get a read-only list of URIs for matched resources.

public List<String>

Returns:

a read-only list of URI paths for matched resources.
getMatchedURIs
(boolean
controls whether sequences of escaped octets are decoded (true) or not (false).
decode
)

Get a read-only list of URIs for matched resources.

public String

Returns:

the relative URI path.
getPath
()

Get the path of the current request relative to the base URI as a string.

public String

Returns:

the relative URI path
getPath
(boolean
controls whether sequences of escaped octets are decoded (true) or not (false).
decode
)

Get the path of the current request relative to the base URI as a string.

public MultivaluedMap<String, String>

Returns:

an unmodifiable map of parameter names and values.
getPathParameters
()

Get the values of any embedded URI template parameters.

public MultivaluedMap<String, String>

Returns:

an unmodifiable map of parameter names and values
getPathParameters
(boolean
controls whether sequences of escaped octets are decoded (true) or not (false).
decode
)

Get the values of any embedded URI template parameters.

public List<PathSegment>

Returns:

an unmodifiable list of PathSegment. The matrix parameter map of each path segment is also unmodifiable.
getPathSegments
()

Get the path of the current request relative to the base URI as a list of PathSegment.

public List<PathSegment>

Returns:

an unmodifiable list of PathSegment. The matrix parameter map of each path segment is also unmodifiable.
getPathSegments
(boolean
controls whether sequences of escaped octets in path segments and matrix parameter values are decoded (true) or not (false).
decode
)

Get the path of the current request relative to the base URI as a list of PathSegment.

public MultivaluedMap<String, String>

Returns:

an unmodifiable map of query parameter names and values.
getQueryParameters
()

Get the URI query parameters of the current request.

public MultivaluedMap<String, String>

Returns:

an unmodifiable map of query parameter names and values.
getQueryParameters
(boolean
controls whether sequences of escaped octets in parameter names and values are decoded (true) or not (false).
decode
)

Get the URI query parameters of the current request.

public URI

Returns:

the absolute request URI
getRequestUri
()

Get the absolute request URI including any query parameters.

public UriBuilder

Returns:

a UriBuilder initialized with the absolute request URI.
getRequestUriBuilder
()

Get the absolute request URI in the form of a UriBuilder.

public URI

Returns:

newly relativized URI.
relativize
(URI
URI to relativize against the request URI.
uri
)

Relativize a URI with respect to the current request URI.

public URI

Returns:

newly resolved URI or supplied URI if already resolved.
resolve
(URI
URI to resolve against the base URI of the application.
uri
)

Resolve a relative URI with respect to the base URI of the application.

Method Detail

getAbsolutePathback to summary
public URI getAbsolutePath()

Get the absolute path of the request. This includes everything preceding the path (host, port etc) but excludes query parameters. This is a shortcut for uriInfo.getBaseUri().resolve(uriInfo.getPath(false)).

Returns:URI

the absolute path of the request.

Exceptions
IllegalStateException:
if called outside the scope of a request.
getAbsolutePathBuilderback to summary
public UriBuilder getAbsolutePathBuilder()

Get the absolute path of the request in the form of a UriBuilder. This includes everything preceding the path (host, port etc) but excludes query parameters.

Returns:UriBuilder

a UriBuilder initialized with the absolute path of the request.

Exceptions
IllegalStateException:
if called outside the scope of a request.
getBaseUriback to summary
public URI getBaseUri()

Get the base URI of the application. URIs of root resource classes are all relative to this base URI.

Returns:URI

the base URI of the application.

getBaseUriBuilderback to summary
public UriBuilder getBaseUriBuilder()

Get the base URI of the application in the form of a UriBuilder.

Returns:UriBuilder

a UriBuilder initialized with the base URI of the application.

getMatchedResourcesback to summary
public List<Object> getMatchedResources()

Get a read-only list of the currently matched resource class instances. Each entry is a resource class instance that matched the request URI either directly or via a sub-resource method or a sub-resource locator. Entries are ordered according to reverse request URI matching order, with the current resource 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 FooResource
GET /foo/bar FooResource.getBarResource FooResource
GET /foo/bar BarResource.getBar BarResource, FooResource
In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an empty list.
Returns:List<Object>

a read-only list of matched resource class instances.

getMatchedURIsback to summary
public List<String> getMatchedURIs()

Get a read-only list of URIs for matched resources. Each entry is a relative URI that matched a resource class, a sub-resource method or a sub-resource locator. All sequences of escaped octets are decoded, equivalent to 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
In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an empty list.
Returns:List<String>

a read-only list of URI paths for matched resources.

getMatchedURIsback to summary
public List<String> getMatchedURIs(boolean decode)

Get a read-only list of URIs for matched resources. Each entry is a relative URI that matched a resource class, a sub-resource method or a sub-resource locator. 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. See 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.

Parameters
decode:boolean

controls whether sequences of escaped octets are decoded (true) or not (false).

Returns:List<String>

a read-only list of URI paths for matched resources.

getPathback to summary
public String getPath()

Get the path of the current request relative to the base URI as a string. All sequences of escaped octets are decoded, equivalent to getPath(true).

Returns:String

the relative URI path.

Exceptions
IllegalStateException:
if called outside the scope of a request.
getPathback to summary
public String getPath(boolean decode)

Get the path of the current request relative to the base URI as a string.

Parameters
decode:boolean

controls whether sequences of escaped octets are decoded (true) or not (false).

Returns:String

the relative URI path

Exceptions
IllegalStateException:
if called outside the scope of a request.
getPathParametersback to summary
public MultivaluedMap<String, String> getPathParameters()

Get the values of any embedded URI template parameters. All sequences of escaped octets are decoded, equivalent to getPathParameters(true).

Returns:MultivaluedMap<String, String>

an unmodifiable map of parameter names and values.

Exceptions
IllegalStateException:
if called outside the scope of a request.
See Also
javax.ws.rs.Path, javax.ws.rs.PathParam
getPathParametersback to summary
public MultivaluedMap<String, String> getPathParameters(boolean decode)

Get the values of any embedded URI template parameters.

Parameters
decode:boolean

controls whether sequences of escaped octets are decoded (true) or not (false).

Returns:MultivaluedMap<String, String>

an unmodifiable map of parameter names and values

Exceptions
IllegalStateException:
if called outside the scope of a request.
See Also
javax.ws.rs.Path, javax.ws.rs.PathParam
getPathSegmentsback to summary
public List<PathSegment> getPathSegments()

Get the path of the current request relative to the base URI as a list of 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).

Returns:List<PathSegment>

an unmodifiable list of PathSegment. The matrix parameter map of each path segment is also unmodifiable.

Exceptions
IllegalStateException:
if called outside the scope of a request
See Also
PathSegment, Matrix URIs
getPathSegmentsback to summary
public List<PathSegment> getPathSegments(boolean decode)

Get the path of the current request relative to the base URI as a list of PathSegment. This method is useful when the path needs to be parsed, particularly when matrix parameters may be present in the path.

Parameters
decode:boolean

controls whether sequences of escaped octets in path segments and matrix parameter values are decoded (true) or not (false).

Returns:List<PathSegment>

an unmodifiable list of PathSegment. The matrix parameter map of each path segment is also unmodifiable.

Exceptions
IllegalStateException:
if called outside the scope of a request
See Also
PathSegment, Matrix URIs
getQueryParametersback to summary
public MultivaluedMap<String, String> getQueryParameters()

Get the URI query parameters of the current request. The map keys are the names of the query parameters with any escaped characters decoded. All sequences of escaped octets in parameter names and values are decoded, equivalent to getQueryParameters(true).

Returns:MultivaluedMap<String, String>

an unmodifiable map of query parameter names and values.

Exceptions
IllegalStateException:
if called outside the scope of a request.
getQueryParametersback to summary
public MultivaluedMap<String, String> getQueryParameters(boolean decode)

Get the URI query parameters of the current request. The map keys are the names of the query parameters with any escaped characters decoded.

Parameters
decode:boolean

controls whether sequences of escaped octets in parameter names and values are decoded (true) or not (false).

Returns:MultivaluedMap<String, String>

an unmodifiable map of query parameter names and values.

Exceptions
IllegalStateException:
if called outside the scope of a request.
getRequestUriback to summary
public URI getRequestUri()

Get the absolute request URI including any query parameters.

Returns:URI

the absolute request URI

Exceptions
IllegalStateException:
if called outside the scope of a request
getRequestUriBuilderback to summary
public UriBuilder getRequestUriBuilder()

Get the absolute request URI in the form of a UriBuilder.

Returns:UriBuilder

a UriBuilder initialized with the absolute request URI.

Exceptions
IllegalStateException:
if called outside the scope of a request.
relativizeback to summary
public URI relativize(URI uri)

Relativize a URI with respect to the current request URI. Relativization works as follows:

  1. If the URI to relativize is already relative, it is first resolved using resolve(java.net.URI).
  2. The resulting URI is relativized with respect to the current request URI. If the two URIs do not share a prefix, the URI computed in step 1 is returned.

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.

Parameters
uri:URI

URI to relativize against the request URI.

Returns:URI

newly relativized URI.

Exceptions
IllegalStateException:
if called outside the scope of a request.
Since
2.0
resolveback to summary
public URI resolve(URI uri)

Resolve a relative URI with respect to the base URI of the application. The resolved URI returned by this method is normalized. If the supplied URI is already resolved, it is just returned.

Parameters
uri:URI

URI to resolve against the base URI of the application.

Returns:URI

newly resolved URI or supplied URI if already resolved.

Since
2.0