Class ResponseImpl
- java.lang.Object
-
- javax.servlet.ServletResponseWrapper
-
- javax.servlet.http.HttpServletResponseWrapper
-
- org.kohsuke.stapler.ResponseImpl
-
- All Implemented Interfaces:
javax.servlet.http.HttpServletResponse
,javax.servlet.ServletResponse
,StaplerResponse
public class ResponseImpl extends javax.servlet.http.HttpServletResponseWrapper implements StaplerResponse
StaplerResponse
implementation.- Author:
- Kohsuke Kawaguchi
-
-
Field Summary
-
Fields inherited from interface javax.servlet.http.HttpServletResponse
SC_ACCEPTED, SC_BAD_GATEWAY, SC_BAD_REQUEST, SC_CONFLICT, SC_CONTINUE, SC_CREATED, SC_EXPECTATION_FAILED, SC_FORBIDDEN, SC_FOUND, SC_GATEWAY_TIMEOUT, SC_GONE, SC_HTTP_VERSION_NOT_SUPPORTED, SC_INTERNAL_SERVER_ERROR, SC_LENGTH_REQUIRED, SC_METHOD_NOT_ALLOWED, SC_MOVED_PERMANENTLY, SC_MOVED_TEMPORARILY, SC_MULTIPLE_CHOICES, SC_NO_CONTENT, SC_NON_AUTHORITATIVE_INFORMATION, SC_NOT_ACCEPTABLE, SC_NOT_FOUND, SC_NOT_IMPLEMENTED, SC_NOT_MODIFIED, SC_OK, SC_PARTIAL_CONTENT, SC_PAYMENT_REQUIRED, SC_PRECONDITION_FAILED, SC_PROXY_AUTHENTICATION_REQUIRED, SC_REQUEST_ENTITY_TOO_LARGE, SC_REQUEST_TIMEOUT, SC_REQUEST_URI_TOO_LONG, SC_REQUESTED_RANGE_NOT_SATISFIABLE, SC_RESET_CONTENT, SC_SEE_OTHER, SC_SERVICE_UNAVAILABLE, SC_SWITCHING_PROTOCOLS, SC_TEMPORARY_REDIRECT, SC_UNAUTHORIZED, SC_UNSUPPORTED_MEDIA_TYPE, SC_USE_PROXY
-
-
Constructor Summary
Constructors Constructor Description ResponseImpl(Stapler stapler, javax.servlet.http.HttpServletResponse response)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static String
encode(String s)
Escapes non-ASCII characters.void
forward(Object it, String url, StaplerRequest request)
Evaluates the url against the given object and forwards the request to the result.void
forwardToPreviousPage(StaplerRequest request)
Redirects the browser to where it came from (the referer.)OutputStream
getCompressedOutputStream(javax.servlet.http.HttpServletRequest req)
Works likeServletResponse.getOutputStream()
but tries to send the response with gzip compression if the client supports it.Writer
getCompressedWriter(javax.servlet.http.HttpServletRequest req)
Works likeStaplerResponse.getCompressedOutputStream(HttpServletRequest)
but this method is forServletResponse.getWriter()
.net.sf.json.JsonConfig
getJsonConfig()
The JsonConfig to be used when serializing java beans to JSON previously set byStaplerResponse.setJsonConfig(JsonConfig)
.javax.servlet.ServletOutputStream
getOutputStream()
PrintWriter
getWriter()
int
reverseProxyTo(URL url, StaplerRequest req)
Performs the reverse proxy to the given URL.void
sendRedirect(int statusCode, String url)
Works likeStaplerResponse.sendRedirect2(String)
but allows the caller to specify the HTTP status code.void
sendRedirect(String url)
void
sendRedirect2(String url)
Works likeHttpServletResponse.sendRedirect(String)
except that this method escapes the URL.void
serveExposedBean(StaplerRequest req, Object exposedBean, ExportConfig config)
Serves the exposed bean in the specified flavor.void
serveExposedBean(StaplerRequest req, Object exposedBean, Flavor flavor)
Serves the exposed bean in the specified flavor.void
serveFile(StaplerRequest req, InputStream data, long lastModified, int contentLength, String fileName)
void
serveFile(StaplerRequest req, InputStream data, long lastModified, long expiration, int contentLength, String fileName)
void
serveFile(StaplerRequest req, InputStream data, long lastModified, long expiration, long contentLength, String fileName)
Serves a static resource.void
serveFile(StaplerRequest req, InputStream data, long lastModified, long contentLength, String fileName)
Serves a static resource.void
serveFile(StaplerRequest req, URL resource)
Serves a static resource.void
serveFile(StaplerRequest req, URL resource, long expiration)
void
serveLocalizedFile(StaplerRequest request, URL res)
Works likeStaplerResponse.serveFile(StaplerRequest, URL)
but chooses the locale specific version of the resource if it's available.void
serveLocalizedFile(StaplerRequest request, URL res, long expiration)
Works likeStaplerResponse.serveFile(StaplerRequest, URL, long)
but chooses the locale specific version of the resource if it's available.void
setJsonConfig(net.sf.json.JsonConfig config)
The JsonConfig to be used when serializing java beans from js bound methods to JSON.-
Methods inherited from class javax.servlet.http.HttpServletResponseWrapper
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, sendError, sendError, setDateHeader, setHeader, setIntHeader, setStatus, setStatus, setTrailerFields
-
Methods inherited from class javax.servlet.ServletResponseWrapper
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale, setResponse
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface javax.servlet.http.HttpServletResponse
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, sendError, sendError, setDateHeader, setHeader, setIntHeader, setStatus, setStatus, setTrailerFields
-
-
-
-
Constructor Detail
-
ResponseImpl
public ResponseImpl(Stapler stapler, javax.servlet.http.HttpServletResponse response)
-
-
Method Detail
-
getOutputStream
public javax.servlet.ServletOutputStream getOutputStream() throws IOException
- Specified by:
getOutputStream
in interfacejavax.servlet.ServletResponse
- Overrides:
getOutputStream
in classjavax.servlet.ServletResponseWrapper
- Throws:
IOException
-
getWriter
public PrintWriter getWriter() throws IOException
- Specified by:
getWriter
in interfacejavax.servlet.ServletResponse
- Overrides:
getWriter
in classjavax.servlet.ServletResponseWrapper
- Throws:
IOException
-
forward
public void forward(Object it, String url, StaplerRequest request) throws javax.servlet.ServletException, IOException
Description copied from interface:StaplerResponse
Evaluates the url against the given object and forwards the request to the result.This can be used for example inside an action method to forward a request to a JSP.
- Specified by:
forward
in interfaceStaplerResponse
- Parameters:
it
- the URL is evaluated against this object. Must not be null.url
- the relative URL (e.g., "foo" or "foo/bar") to resolve against the "it" object.request
- Request to be forwarded.- Throws:
javax.servlet.ServletException
IOException
-
forwardToPreviousPage
public void forwardToPreviousPage(StaplerRequest request) throws javax.servlet.ServletException, IOException
Description copied from interface:StaplerResponse
Redirects the browser to where it came from (the referer.)- Specified by:
forwardToPreviousPage
in interfaceStaplerResponse
- Throws:
javax.servlet.ServletException
IOException
-
sendRedirect
public void sendRedirect(@NonNull String url) throws IOException
- Specified by:
sendRedirect
in interfacejavax.servlet.http.HttpServletResponse
- Overrides:
sendRedirect
in classjavax.servlet.http.HttpServletResponseWrapper
- Throws:
IOException
-
sendRedirect2
public void sendRedirect2(@NonNull String url) throws IOException
Description copied from interface:StaplerResponse
Works likeHttpServletResponse.sendRedirect(String)
except that this method escapes the URL.- Specified by:
sendRedirect2
in interfaceStaplerResponse
- Throws:
IOException
-
sendRedirect
public void sendRedirect(int statusCode, @NonNull String url) throws IOException
Description copied from interface:StaplerResponse
Works likeStaplerResponse.sendRedirect2(String)
but allows the caller to specify the HTTP status code.- Specified by:
sendRedirect
in interfaceStaplerResponse
- Throws:
IOException
-
serveFile
public void serveFile(StaplerRequest req, URL resource, long expiration) throws javax.servlet.ServletException, IOException
- Specified by:
serveFile
in interfaceStaplerResponse
- Throws:
javax.servlet.ServletException
IOException
-
serveFile
public void serveFile(StaplerRequest req, URL resource) throws javax.servlet.ServletException, IOException
Description copied from interface:StaplerResponse
Serves a static resource.This method sets content type, HTTP status code, sends the complete data and closes the response. This method also handles cache-control HTTP headers like "If-Modified-Since" and others.
- Specified by:
serveFile
in interfaceStaplerResponse
- Throws:
javax.servlet.ServletException
IOException
-
serveLocalizedFile
public void serveLocalizedFile(StaplerRequest request, URL res) throws javax.servlet.ServletException, IOException
Description copied from interface:StaplerResponse
Works likeStaplerResponse.serveFile(StaplerRequest, URL)
but chooses the locale specific version of the resource if it's available. The convention of "locale specific version" is the same as that of property files. So Japanese resource forfoo.html
would be namedfoo_ja.html
.- Specified by:
serveLocalizedFile
in interfaceStaplerResponse
- Throws:
javax.servlet.ServletException
IOException
-
serveLocalizedFile
public void serveLocalizedFile(StaplerRequest request, URL res, long expiration) throws javax.servlet.ServletException, IOException
Description copied from interface:StaplerResponse
Works likeStaplerResponse.serveFile(StaplerRequest, URL, long)
but chooses the locale specific version of the resource if it's available. SeeStaplerResponse.serveLocalizedFile(StaplerRequest, URL)
for more details.- Specified by:
serveLocalizedFile
in interfaceStaplerResponse
- Throws:
javax.servlet.ServletException
IOException
-
serveFile
public void serveFile(StaplerRequest req, InputStream data, long lastModified, long expiration, long contentLength, String fileName) throws javax.servlet.ServletException, IOException
Description copied from interface:StaplerResponse
Serves a static resource.This method works like
StaplerResponse.serveFile(StaplerRequest, URL)
but this version allows the caller to fetch data from anywhere.- Specified by:
serveFile
in interfaceStaplerResponse
data
-InputStream
that contains the data of the static resource.lastModified
- The timestamp when the resource was last modified. SeeURLConnection.getLastModified()
for the meaning of the value. 0 if unknown, in which case "If-Modified-Since" handling will not be performed.expiration
- The number of milliseconds until the resource will "expire". Until it expires the browser will be allowed to cache it and serve it without checking back with the server. After it expires, the client will send conditional GET to check if the resource is actually modified or not. If 0, it will immediately expire.contentLength
- if the length of the input stream is known in advance, specify that value so that HTTP keep-alive works. Otherwise specify -1 to indicate that the length is unknown.fileName
- file name of this resource. Used to determine the MIME type. Since the only important portion is the file extension, this could be just a file name, or a full path name, or even a pseudo file name that doesn't actually exist. It supports both '/' and '\\' as the path separator. If this string starts with "mime-type:", like "mime-type:foo/bar", then "foo/bar" will be used as a MIME type without consulting the servlet container.- Throws:
javax.servlet.ServletException
IOException
-
serveFile
public void serveFile(StaplerRequest req, InputStream data, long lastModified, long expiration, int contentLength, String fileName) throws javax.servlet.ServletException, IOException
- Specified by:
serveFile
in interfaceStaplerResponse
- Throws:
javax.servlet.ServletException
IOException
-
serveFile
public void serveFile(StaplerRequest req, InputStream data, long lastModified, long contentLength, String fileName) throws javax.servlet.ServletException, IOException
Description copied from interface:StaplerResponse
Serves a static resource. Expiration date is set to the value that forces browser to do conditional GET for all resources.- Specified by:
serveFile
in interfaceStaplerResponse
- Throws:
javax.servlet.ServletException
IOException
- See Also:
StaplerResponse.serveFile(StaplerRequest, InputStream, long, long, int, String)
-
serveFile
public void serveFile(StaplerRequest req, InputStream data, long lastModified, int contentLength, String fileName) throws javax.servlet.ServletException, IOException
- Specified by:
serveFile
in interfaceStaplerResponse
- Throws:
javax.servlet.ServletException
IOException
-
serveExposedBean
public void serveExposedBean(StaplerRequest req, Object exposedBean, Flavor flavor) throws javax.servlet.ServletException, IOException
Description copied from interface:StaplerResponse
Serves the exposed bean in the specified flavor.This method performs the complete output from the header to the response body. If the flavor is JSON, this method also supports JSONP via the
jsonp
query parameter.The
depth
parameter may be used to specify a recursion depth as inModel.writeTo(Object,int,DataWriter)
.As of 1.146, the
tree
parameter may be used to control the output in detail; seeNamedPathPruner(String)
for details.- Specified by:
serveExposedBean
in interfaceStaplerResponse
- Throws:
javax.servlet.ServletException
IOException
-
serveExposedBean
public void serveExposedBean(StaplerRequest req, Object exposedBean, ExportConfig config) throws javax.servlet.ServletException, IOException
Description copied from interface:StaplerResponse
Serves the exposed bean in the specified flavor.This method performs the complete output from the header to the response body. If the flavor is JSON, this method also supports JSONP via the
jsonp
query parameter.The
depth
parameter may be used to specify a recursion depth as inModel.writeTo(Object,int,DataWriter)
As of 1.146, the
tree
parameter may be used to control the output in detail; seeNamedPathPruner(String)
for details.ExportConfig
is passed by the caller to control serialization behavior- Specified by:
serveExposedBean
in interfaceStaplerResponse
- Throws:
javax.servlet.ServletException
IOException
-
getCompressedOutputStream
public OutputStream getCompressedOutputStream(javax.servlet.http.HttpServletRequest req) throws IOException
Description copied from interface:StaplerResponse
Works likeServletResponse.getOutputStream()
but tries to send the response with gzip compression if the client supports it.This method is useful for sending out a large text content.
- Specified by:
getCompressedOutputStream
in interfaceStaplerResponse
- Parameters:
req
- Used to determine whether the client supports compression- Throws:
IOException
-
getCompressedWriter
public Writer getCompressedWriter(javax.servlet.http.HttpServletRequest req) throws IOException
Description copied from interface:StaplerResponse
Works likeStaplerResponse.getCompressedOutputStream(HttpServletRequest)
but this method is forServletResponse.getWriter()
.- Specified by:
getCompressedWriter
in interfaceStaplerResponse
- Throws:
IOException
-
reverseProxyTo
public int reverseProxyTo(URL url, StaplerRequest req) throws IOException
Description copied from interface:StaplerResponse
Performs the reverse proxy to the given URL.- Specified by:
reverseProxyTo
in interfaceStaplerResponse
- Returns:
- The status code of the response.
- Throws:
IOException
-
setJsonConfig
public void setJsonConfig(net.sf.json.JsonConfig config)
Description copied from interface:StaplerResponse
The JsonConfig to be used when serializing java beans from js bound methods to JSON. Setting this to null will make the default config to be used.- Specified by:
setJsonConfig
in interfaceStaplerResponse
- Parameters:
config
- the config
-
getJsonConfig
public net.sf.json.JsonConfig getJsonConfig()
Description copied from interface:StaplerResponse
The JsonConfig to be used when serializing java beans to JSON previously set byStaplerResponse.setJsonConfig(JsonConfig)
. Will return the default config if nothing has previously been set.- Specified by:
getJsonConfig
in interfaceStaplerResponse
- Returns:
- the config
-
-