A PushBuilder is obtained by calling HttpServletRequest#newPushBuilder(). Each call to this method will
a new instance of a PushBuilder based off the current HttpServletRequest, or null. Any mutations to the returned PushBuilder are
not reflected on future returns.
The instance is initialized as follows:
HttpServletRequest
are added to the builder, except for:
HttpServletRequest#getRequestedSessionId(), unless HttpServletRequest#getSession(boolean) has previously been called to
create a new HttpSession prior to the call to create the
PushBuilder, in which case the new session ID will be used as
the PushBuilder's requested session ID. Note that the session ID
returned from the request can effectively come from one of two
"sources": a cookie or the URL (as specified in HttpServletRequest#isRequestedSessionIdFromCookie and HttpServletRequest#isRequestedSessionIdFromURL, respectively). The
session ID for the PushBuilder will also come from the same
source as the request.HttpServletRequest#getRequestURL() plus any HttpServletRequest#getQueryString() HttpServletResponse#addCookie(Cookie) has been called
on the associated response, then a corresponding Cookie header will be added
to the PushBuilder, unless the Cookie#getMaxAge() is <=0, in which
case the Cookie will be removed from the builder.The path method must be called on the PushBuilder
instance before the call to push. Failure to do so must
cause an exception to be thrown from push, as specified in that method.
A PushBuilder can be customized by chained calls to mutator
methods before the push() method is called to initiate an
asynchronous push request with the current state of the builder.
After the call to push(), the builder may be reused for
another push, however the implementation must make it so the path(String) and conditional headers (defined in RFC 7232)
values are cleared before returning from push.
All other values are retained over calls to push().
| Modifier and Type | Method and Description |
|---|---|
| public PushBuilder | |
| public String | |
| public Set | Returns: the set of header to be used for the push.Return the set of header to be used for the push. |
| public String | |
| public String | |
| public String | Returns: the query string to be used for the push.Return the query string to be used for the push. |
| public String | Returns: the SessionID to be used for the push.Return the SessionID to be used for the push. |
| public PushBuilder | |
| public PushBuilder | |
| public void | |
| public PushBuilder | Returns: this builder.the query string to be used for the push. queryString)Set the query string to be used for the push. |
| public PushBuilder | Returns: this builder.The name of the header to remove name)Remove the named request header. |
| public PushBuilder | |
| public PushBuilder |
| addHeader | back to summary |
|---|---|
| public PushBuilder addHeader(String name, String value) Add a request header to be used for the push.
| |
| getHeader | back to summary |
|---|---|
| public String getHeader(String name) Return the header of the given name to be used for the push. | |
| getHeaderNames | back to summary |
|---|---|
| public Set Return the set of header to be used for the push. The returned set is not backed by the | |
| getMethod | back to summary |
|---|---|
| public String getMethod() Return the method to be used for the push.
| |
| getPath | back to summary |
|---|---|
| public String getPath() Return the URI path to be used for the push.
| |
| getQueryString | back to summary |
|---|---|
| public String getQueryString() Return the query string to be used for the push.
| |
| getSessionId | back to summary |
|---|---|
| public String getSessionId() Return the SessionID to be used for the push.
| |
| method | back to summary |
|---|---|
| public PushBuilder method(String method) Set the method to be used for the push.
| |
| path | back to summary |
|---|---|
| public PushBuilder path(String path) Set the URI path to be used for the push. The path may start
with "/" in which case it is treated as an absolute path,
otherwise it is relative to the context path of the associated
request. There is no path default and
| |
| push | back to summary |
|---|---|
| public void push() Push a resource given the current state of the builder, the method must be non-blocking. Push a resource based on the current state of the PushBuilder. Calling this method does not guarantee the resource will actually be pushed, since it is possible the client can decline acceptance of the pushed resource using the underlying HTTP/2 protocol. If the builder has a session ID, then the pushed request will include the session ID either as a Cookie or as a URI parameter as appropriate. The builders query string is merged with any passed query string. Before returning from this method, the builder has its path, conditional headers (defined in RFC 7232) nulled. All other fields are left as is for possible reuse in another push.
| |
| queryString | back to summary |
|---|---|
| public PushBuilder queryString(String queryString) Set the query string to be used for the push.
The query string will be appended to any query String included in a call
to
| |
| removeHeader | back to summary |
|---|---|
| public PushBuilder removeHeader(String name) Remove the named request header. If the header does not exist, take no action.
| |
| sessionId | back to summary |
|---|---|
| public PushBuilder sessionId(String sessionId) Set the SessionID to be used for the push. The session ID will be set in the same way it was on the associated request (ie as a cookie if the associated request used a cookie, or as a url parameter if the associated request used a url parameter). Defaults to the requested session ID or any newly assigned session id from a newly created session.
| |
| setHeader | back to summary |
|---|---|
| public PushBuilder setHeader(String name, String value) Set a request header to be used for the push. If the builder has an existing header with the same name, its value is overwritten.
| |