package javax.servlet.http;
Extends the
javax.servlet.ServletResponse
interface to provide HTTP-specific
functionality in sending a response. For example, it has methods
to access HTTP headers and cookies.
The servlet container creates an HttpServletResponse
object
and passes it as an argument to the servlet's service methods
(doGet
, doPost
, etc).
Adds the specified cookie to the response. This method can be called
multiple times to set more than one cookie.
- Parameters:
cookie
the Cookie to return to the client
Returns a boolean indicating whether the named response header
has already been set.
- Parameters:
name
the header name- Returns:
true
if the named response header
has already been set;
false
otherwise
Encodes the specified URL by including the session ID in it,
or, if encoding is not needed, returns the URL unchanged.
The implementation of this method includes the logic to
determine whether the session ID needs to be encoded in the URL.
For example, if the browser supports cookies, or session
tracking is turned off, URL encoding is unnecessary.
For robust session tracking, all URLs emitted by a servlet
should be run through this
method. Otherwise, URL rewriting cannot be used with browsers
which do not support cookies.
- Parameters:
url
the url to be encoded.- Returns:
- the encoded URL if encoding is needed;
the unchanged URL otherwise.
Encodes the specified URL for use in the
sendRedirect
method or, if encoding is not needed,
returns the URL unchanged. The implementation of this method
includes the logic to determine whether the session ID
needs to be encoded in the URL. Because the rules for making
this determination can differ from those used to decide whether to
encode a normal link, this method is separated from the
encodeURL
method.
All URLs sent to the HttpServletResponse.sendRedirect
method should be run through this method. Otherwise, URL
rewriting cannot be used with browsers which do not support
cookies.
- Deprecated:
- As of version 2.1, use encodeURL(String url) instead
- Parameters:
url
the url to be encoded.- Returns:
- the encoded URL if encoding is needed;
the unchanged URL otherwise.
- Deprecated:
- As of version 2.1, use
encodeRedirectURL(String url) instead
- Parameters:
url
the url to be encoded.- Returns:
- the encoded URL if encoding is needed;
the unchanged URL otherwise.
Sends an error response to the client using the specified
status and clears the buffer. The server defaults to creating the
response to look like an HTML-formatted server error page
containing the specified message, setting the content type
to "text/html". The server will preserve cookies and may clear or
update any headers needed to serve the error page as a valid response.
If an error-page declaration has been made for the web application
corresponding to the status code passed in, it will be served back in
preference to the suggested msg parameter and the msg parameter will
be ignored.
If the response has already been committed, this method throws
an IllegalStateException.
After using this method, the response should be considered
to be committed and should not be written to.
Sends an error response to the client using the specified status
code and clears the buffer.
The server will preserve cookies and may clear or
update any headers needed to serve the error page as a valid response.
If an error-page declaration has been made for the web application
corresponding to the status code passed in, it will be served back
the error page
If the response has already been committed, this method throws
an IllegalStateException.
After using this method, the response should be considered
to be committed and should not be written to.
Sends a temporary redirect response to the client using the
specified redirect location URL and clears the buffer. The buffer will
be replaced with the data set by this method. Calling this method sets the
status code to
SC_FOUND
302 (Found).
This method can accept relative URLs;the servlet container must convert
the relative URL to an absolute URL
before sending the response to the client. If the location is relative
without a leading '/' the container interprets it as relative to
the current request URI. If the location is relative with a leading
'/' the container interprets it as relative to the servlet container root.
If the response has already been committed, this method throws
an IllegalStateException.
After using this method, the response should be considered
to be committed and should not be written to.
Sets a response header with the given name and
date-value. The date is specified in terms of
milliseconds since the epoch. If the header had already
been set, the new value overwrites the previous one. The
containsHeader
method can be used to test for the
presence of a header before setting its value.
Adds a response header with the given name and
date-value. The date is specified in terms of
milliseconds since the epoch. This method allows response headers
to have multiple values.
Sets a response header with the given name and value.
If the header had already been set, the new value overwrites the
previous one. The
containsHeader
method can be
used to test for the presence of a header before setting its
value.
Adds a response header with the given name and value.
This method allows response headers to have multiple values.
- Parameters:
name
the name of the headervalue
the additional header value If it contains
octet string, it should be encoded
according to RFC 2047
(http://www.ietf.org/rfc/rfc2047.txt)- See also:
setHeader(java.lang.String,java.lang.String)
Sets a response header with the given name and
integer value. If the header had already been set, the new value
overwrites the previous one. The
containsHeader
method can be used to test for the presence of a header before
setting its value.
Adds a response header with the given name and
integer value. This method allows response headers to have multiple
values.
Sets the status code for this response.
This method is used to set the return status code when there is
no error (for example, for the SC_OK or SC_MOVED_TEMPORARILY status
codes).
If this method is used to set an error code, then the container's
error page mechanism will not be triggered. If there is an error and
the caller wishes to invoke an error page defined in the web
application, then sendError(int)
must be used instead.
This method preserves any cookies and other response headers.
Valid status codes are those in the 2XX, 3XX, 4XX, and 5XX ranges.
Other status codes are treated as container specific.
- Deprecated:
- As of version 2.1, due to ambiguous meaning of the
message parameter. To set a status code
use
setStatus(int)
, to send an error with a description
use sendError(int, String)
.
Sets the status code and message for this response. - Parameters:
sc
the status codesm
the status message
Gets the current status code of this response.
- Returns:
- the current status code of this response
- Since:
- Servlet 3.0
Gets the value of the response header with the given name.
If a response header with the given name exists and contains
multiple values, the value that was added first will be returned.
This method considers only response headers set or added via
setHeader(java.lang.String,java.lang.String)
, addHeader(java.lang.String,java.lang.String)
, setDateHeader(java.lang.String,long)
,
addDateHeader(java.lang.String,long)
, setIntHeader(java.lang.String,int)
, or
addIntHeader(java.lang.String,int)
, respectively.
- Parameters:
name
the name of the response header whose value to return- Returns:
- the value of the response header with the given name,
or null if no header with the given name has been set
on this response
- Since:
- Servlet 3.0
Gets the values of the response header with the given name.
This method considers only response headers set or added via
setHeader(java.lang.String,java.lang.String)
, addHeader(java.lang.String,java.lang.String)
, setDateHeader(java.lang.String,long)
,
addDateHeader(java.lang.String,long)
, setIntHeader(java.lang.String,int)
, or
addIntHeader(java.lang.String,int)
, respectively.
Any changes to the returned Collection
must not
affect this HttpServletResponse
.
- Parameters:
name
the name of the response header whose values to return- Returns:
- a (possibly empty)
Collection
of the values
of the response header with the given name - Since:
- Servlet 3.0
Gets the names of the headers of this response.
This method considers only response headers set or added via
setHeader(java.lang.String,java.lang.String)
, addHeader(java.lang.String,java.lang.String)
, setDateHeader(java.lang.String,long)
,
addDateHeader(java.lang.String,long)
, setIntHeader(java.lang.String,int)
, or
addIntHeader(java.lang.String,int)
, respectively.
Any changes to the returned Collection
must not
affect this HttpServletResponse
.
- Returns:
- a (possibly empty)
Collection
of the names
of the headers of this response - Since:
- Servlet 3.0
Status code (100) indicating the client can continue.
Status code (101) indicating the server is switching protocols
according to Upgrade header.
Status code (200) indicating the request succeeded normally.
public static final int SC_OK = 200;
Status code (201) indicating the request succeeded and created
a new resource on the server.
Status code (202) indicating that a request was accepted for
processing, but was not completed.
Status code (203) indicating that the meta information presented
by the client did not originate from the server.
Status code (204) indicating that the request succeeded but that
there was no new information to return.
Status code (205) indicating that the agent
SHOULD reset
the document view which caused the request to be sent.
Status code (206) indicating that the server has fulfilled
the partial GET request for the resource.
Status code (300) indicating that the requested resource
corresponds to any one of a set of representations, each with
its own specific location.
Status code (301) indicating that the resource has permanently
moved to a new location, and that future references should use a
new URI with their requests.
Status code (302) indicating that the resource has temporarily
moved to another location, but that future references should
still use the original URI to access the resource.
This definition is being retained for backwards compatibility.
SC_FOUND is now the preferred definition.
Status code (302) indicating that the resource reside
temporarily under a different URI. Since the redirection might
be altered on occasion, the client should continue to use the
Request-URI for future requests.(HTTP/1.1) To represent the
status code (302), it is recommended to use this variable.
Status code (303) indicating that the response to the request
can be found under a different URI.
Status code (304) indicating that a conditional GET operation
found that the resource was available and not modified.
Status code (305) indicating that the requested resource
MUST be accessed through the proxy given by the
Location
field.
Status code (307) indicating that the requested resource
resides temporarily under a different URI. The temporary URI
SHOULD be given by the
Location
field in the response.
Status code (400) indicating the request sent by the client was
syntactically incorrect.
Status code (401) indicating that the request requires HTTP
authentication.
Status code (402) reserved for future use.
Status code (403) indicating the server understood the request
but refused to fulfill it.
Status code (404) indicating that the requested resource is not
available.
Status code (405) indicating that the method specified in the
Request-Line
is not allowed for the resource
identified by the
Request-URI
.
Status code (406) indicating that the resource identified by the
request is only capable of generating response entities which have
content characteristics not acceptable according to the accept
headers sent in the request.
Status code (407) indicating that the client
MUST first
authenticate itself with the proxy.
Status code (408) indicating that the client did not produce a
request within the time that the server was prepared to wait.
Status code (409) indicating that the request could not be
completed due to a conflict with the current state of the
resource.
Status code (410) indicating that the resource is no longer
available at the server and no forwarding address is known.
This condition
SHOULD be considered permanent.
public static final int SC_GONE = 410;
Status code (411) indicating that the request cannot be handled
without a defined
Content-Length
.
Status code (412) indicating that the precondition given in one
or more of the request-header fields evaluated to false when it
was tested on the server.
Status code (413) indicating that the server is refusing to process
the request because the request entity is larger than the server is
willing or able to process.
Status code (414) indicating that the server is refusing to service
the request because the
Request-URI
is longer
than the server is willing to interpret.
Status code (415) indicating that the server is refusing to service
the request because the entity of the request is in a format not
supported by the requested resource for the requested method.
Status code (416) indicating that the server cannot serve the
requested byte range.
Status code (417) indicating that the server could not meet the
expectation given in the Expect request header.
Status code (500) indicating an error inside the HTTP server
which prevented it from fulfilling the request.
Status code (501) indicating the HTTP server does not support
the functionality needed to fulfill the request.
Status code (502) indicating that the HTTP server received an
invalid response from a server it consulted when acting as a
proxy or gateway.
Status code (503) indicating that the HTTP server is
temporarily overloaded, and unable to handle the request.
Status code (504) indicating that the server did not receive
a timely response from the upstream server while acting as
a gateway or proxy.
Status code (505) indicating that the server does not support
or refuses to support the HTTP protocol version that was used
in the request message.