Package jakarta.servlet.http
Interface PushBuilder
-
public interface PushBuilder
Builds a push request based on theHttpServletRequest
from which this builder was obtained. The push request will be constructed on the following basis:- The request method is set to
GET
. - The path will not be set. This must be set explicitly via a call to
path(String)
. - Conditional, range, expectation, authorization and referer headers will be removed.
- Cookies added to the associated response will be added to the push request unless maxAge <= 0 in which case any request cookie with the same name will be removed.
- The referer header will be set to
HttpServletRequest.getRequestURL()
plus, if present, the query string fromHttpServletRequest.getQueryString()
.
- Since:
- Servlet 4.0
- The request method is set to
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description PushBuilder
addHeader(java.lang.String name, java.lang.String value)
Adds an HTTP header to the request.java.lang.String
getHeader(java.lang.String name)
Obtain a value for the given HTTP header.java.util.Set<java.lang.String>
getHeaderNames()
java.lang.String
getMethod()
Obtain the name of the HTTP method that will be used for push requests generated by future calls topush()
.java.lang.String
getPath()
Obtain the path that will be used for the push request that will be generated by the next call topush()
.java.lang.String
getQueryString()
Obtain the query string that will be used for push requests generated by future calls topush()
.java.lang.String
getSessionId()
Obtain the session ID that will be used for push requests generated by future calls topush()
.PushBuilder
method(java.lang.String method)
Specify the HTTP method to use for the push request.PushBuilder
path(java.lang.String path)
Sets the URI path to be used for the push request.void
push()
Generates the push request and sends it to the client unless pushes are not available for some reason.PushBuilder
queryString(java.lang.String queryString)
Specifies the query string to use in subsequent push requests generated by a call topush()
.PushBuilder
removeHeader(java.lang.String name)
Removes an HTTP header from the request.PushBuilder
sessionId(java.lang.String sessionId)
Specifies the session ID to use in subsequent push requests generated by a call topush()
.PushBuilder
setHeader(java.lang.String name, java.lang.String value)
Sets an HTTP header on the request.
-
-
-
Method Detail
-
method
PushBuilder method(java.lang.String method)
Specify the HTTP method to use for the push request.- Parameters:
method
- The method to use for the push request- Returns:
- This builder instance
- Throws:
java.lang.IllegalArgumentException
- if an HTTP method is specified that is known not to be cacheable and safe. POST, PUT, DELETE, CONNECT, OPTIONS and TRACE will trigger the exception.
-
queryString
PushBuilder queryString(java.lang.String queryString)
Specifies the query string to use in subsequent push requests generated by a call topush()
. This will be appended to any query string specified in the call topath(String)
.- Parameters:
queryString
- The query string to use to generate push requests- Returns:
- This builder instance
-
sessionId
PushBuilder sessionId(java.lang.String sessionId)
Specifies the session ID to use in subsequent push requests generated by a call topush()
. The session ID will be presented the same way as it is on the original request (cookie or URL parameter). The default is determined in the following order:- the requested session ID for the originating request
- the session ID generated in the originated request
null
- Parameters:
sessionId
- The session ID to use to generate push requests- Returns:
- This builder instance
-
setHeader
PushBuilder setHeader(java.lang.String name, java.lang.String value)
Sets an HTTP header on the request. Any existing headers of the same name are first remove.- Parameters:
name
- The name of the header to setvalue
- The value of the header to set- Returns:
- This builder instance
-
addHeader
PushBuilder addHeader(java.lang.String name, java.lang.String value)
Adds an HTTP header to the request.- Parameters:
name
- The name of the header to addvalue
- The value of the header to add- Returns:
- This builder instance
-
removeHeader
PushBuilder removeHeader(java.lang.String name)
Removes an HTTP header from the request.- Parameters:
name
- The name of the header to remove- Returns:
- This builder instance
-
path
PushBuilder path(java.lang.String path)
Sets the URI path to be used for the push request. This must be called before every call topush()
. If the path includes a query string, the query string will be appended to the existing query string (if any) and no de-duplication will occur.- Parameters:
path
- Paths beginning with '/' are treated as absolute paths. All other paths are treated as relative to the context path of the request used to create this builder instance. The path may include a query string.- Returns:
- This builder instance
-
push
void push()
Generates the push request and sends it to the client unless pushes are not available for some reason. After calling this method the following fields are set tonull
:path
- conditional request headers (
if-none-match
andif-modified-since
)
- Throws:
java.lang.IllegalStateException
- If this method is called whenpath
isnull
java.lang.IllegalArgumentException
- If the request to push requires a body
-
getMethod
java.lang.String getMethod()
Obtain the name of the HTTP method that will be used for push requests generated by future calls topush()
.- Returns:
- The HTTP method to be used for future push requests
-
getQueryString
java.lang.String getQueryString()
Obtain the query string that will be used for push requests generated by future calls topush()
.- Returns:
- The query string that will be appended to push requests.
-
getSessionId
java.lang.String getSessionId()
Obtain the session ID that will be used for push requests generated by future calls topush()
.- Returns:
- The session that will be used for push requests.
-
getHeaderNames
java.util.Set<java.lang.String> getHeaderNames()
- Returns:
- The current set of names of HTTP headers to be used the next time
push()
is called.
-
getHeader
java.lang.String getHeader(java.lang.String name)
Obtain a value for the given HTTP header. TODO Servlet 4.0 Clarify the behaviour of this method- Parameters:
name
- The name of the header whose value is to be returned- Returns:
- The value of the given header. If multiple values are defined then any may be returned
-
getPath
java.lang.String getPath()
Obtain the path that will be used for the push request that will be generated by the next call topush()
.- Returns:
- The path value that will be associated with the next push request
-
-