org.kohsuke.stapler
Class ResponseImpl

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
          extended by 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
ResponseImpl(Stapler stapler, javax.servlet.http.HttpServletResponse response)
           
 
Method Summary
static java.lang.String encode(java.lang.String s)
          Escapes non-ASCII characters.
 void forward(java.lang.Object it, java.lang.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.)
 java.io.OutputStream getCompressedOutputStream(javax.servlet.http.HttpServletRequest req)
          Works like ServletResponse.getOutputStream() but tries to send the response with gzip compression if the client supports it.
 java.io.Writer getCompressedWriter(javax.servlet.http.HttpServletRequest req)
          Works like StaplerResponse.getCompressedOutputStream(HttpServletRequest) but this method is for ServletResponse.getWriter().
 javax.servlet.ServletOutputStream getOutputStream()
           
 java.io.PrintWriter getWriter()
           
 int reverseProxyTo(java.net.URL url, StaplerRequest req)
          Performs the reverse proxy to the given URL.
 void sendRedirect(java.lang.String url)
           
 void sendRedirect2(java.lang.String url)
          Works like HttpServletResponse.sendRedirect(String) except that this method escapes the URL.
 void serveExposedBean(StaplerRequest req, java.lang.Object exposedBean, Flavor flavor)
          Serves the exposed bean in the specified flavor.
 void serveFile(StaplerRequest req, java.io.InputStream data, long lastModified, int contentLength, java.lang.String fileName)
           
 void serveFile(StaplerRequest req, java.io.InputStream data, long lastModified, long expiration, int contentLength, java.lang.String fileName)
           
 void serveFile(StaplerRequest req, java.io.InputStream data, long lastModified, long expiration, long contentLength, java.lang.String fileName)
          Serves a static resource.
 void serveFile(StaplerRequest req, java.io.InputStream data, long lastModified, long contentLength, java.lang.String fileName)
          Serves a static resource.
 void serveFile(StaplerRequest req, java.net.URL resource)
          Serves a static resource.
 void serveFile(StaplerRequest req, java.net.URL resource, long expiration)
           
 void serveLocalizedFile(StaplerRequest request, java.net.URL res)
          Works like StaplerResponse.serveFile(StaplerRequest, URL) but chooses the locale specific version of the resource if it's available.
 void serveLocalizedFile(StaplerRequest request, java.net.URL res, long expiration)
          Works like StaplerResponse.serveFile(StaplerRequest, URL, long) but chooses the locale specific version of the resource if it's available.
 
Methods inherited from class javax.servlet.http.HttpServletResponseWrapper
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, sendError, sendError, setDateHeader, setHeader, setIntHeader, setStatus, setStatus
 
Methods inherited from class javax.servlet.ServletResponseWrapper
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, 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, sendError, sendError, setDateHeader, setHeader, setIntHeader, setStatus, setStatus
 
Methods inherited from interface javax.servlet.ServletResponse
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentType, setLocale
 

Constructor Detail

ResponseImpl

public ResponseImpl(Stapler stapler,
                    javax.servlet.http.HttpServletResponse response)
Method Detail

getOutputStream

public javax.servlet.ServletOutputStream getOutputStream()
                                                  throws java.io.IOException
Specified by:
getOutputStream in interface javax.servlet.ServletResponse
Overrides:
getOutputStream in class javax.servlet.ServletResponseWrapper
Throws:
java.io.IOException

getWriter

public java.io.PrintWriter getWriter()
                              throws java.io.IOException
Specified by:
getWriter in interface javax.servlet.ServletResponse
Overrides:
getWriter in class javax.servlet.ServletResponseWrapper
Throws:
java.io.IOException

forward

public void forward(java.lang.Object it,
                    java.lang.String url,
                    StaplerRequest request)
             throws javax.servlet.ServletException,
                    java.io.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 interface StaplerResponse
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
java.io.IOException

forwardToPreviousPage

public void forwardToPreviousPage(StaplerRequest request)
                           throws javax.servlet.ServletException,
                                  java.io.IOException
Description copied from interface: StaplerResponse
Redirects the browser to where it came from (the referer.)

Specified by:
forwardToPreviousPage in interface StaplerResponse
Throws:
javax.servlet.ServletException
java.io.IOException

sendRedirect

public void sendRedirect(java.lang.String url)
                  throws java.io.IOException
Specified by:
sendRedirect in interface javax.servlet.http.HttpServletResponse
Overrides:
sendRedirect in class javax.servlet.http.HttpServletResponseWrapper
Throws:
java.io.IOException

sendRedirect2

public void sendRedirect2(java.lang.String url)
                   throws java.io.IOException
Description copied from interface: StaplerResponse
Works like HttpServletResponse.sendRedirect(String) except that this method escapes the URL.

Specified by:
sendRedirect2 in interface StaplerResponse
Throws:
java.io.IOException

serveFile

public void serveFile(StaplerRequest req,
                      java.net.URL resource,
                      long expiration)
               throws javax.servlet.ServletException,
                      java.io.IOException
Specified by:
serveFile in interface StaplerResponse
Throws:
javax.servlet.ServletException
java.io.IOException

serveFile

public void serveFile(StaplerRequest req,
                      java.net.URL resource)
               throws javax.servlet.ServletException,
                      java.io.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 interface StaplerResponse
Throws:
javax.servlet.ServletException
java.io.IOException

serveLocalizedFile

public void serveLocalizedFile(StaplerRequest request,
                               java.net.URL res)
                        throws javax.servlet.ServletException,
                               java.io.IOException
Description copied from interface: StaplerResponse
Works like StaplerResponse.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 for foo.html would be named foo_ja.html.

Specified by:
serveLocalizedFile in interface StaplerResponse
Throws:
javax.servlet.ServletException
java.io.IOException

serveLocalizedFile

public void serveLocalizedFile(StaplerRequest request,
                               java.net.URL res,
                               long expiration)
                        throws javax.servlet.ServletException,
                               java.io.IOException
Description copied from interface: StaplerResponse
Works like StaplerResponse.serveFile(StaplerRequest, URL, long) but chooses the locale specific version of the resource if it's available. See StaplerResponse.serveLocalizedFile(StaplerRequest, URL) for more details.

Specified by:
serveLocalizedFile in interface StaplerResponse
Throws:
javax.servlet.ServletException
java.io.IOException

serveFile

public void serveFile(StaplerRequest req,
                      java.io.InputStream data,
                      long lastModified,
                      long expiration,
                      long contentLength,
                      java.lang.String fileName)
               throws javax.servlet.ServletException,
                      java.io.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 interface StaplerResponse
data - InputStream that contains the data of the static resource.
lastModified - The timestamp when the resource was last modified. See URLConnection.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
java.io.IOException

serveFile

public void serveFile(StaplerRequest req,
                      java.io.InputStream data,
                      long lastModified,
                      long expiration,
                      int contentLength,
                      java.lang.String fileName)
               throws javax.servlet.ServletException,
                      java.io.IOException
Specified by:
serveFile in interface StaplerResponse
Throws:
javax.servlet.ServletException
java.io.IOException

serveFile

public void serveFile(StaplerRequest req,
                      java.io.InputStream data,
                      long lastModified,
                      long contentLength,
                      java.lang.String fileName)
               throws javax.servlet.ServletException,
                      java.io.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 interface StaplerResponse
Throws:
javax.servlet.ServletException
java.io.IOException
See Also:
StaplerResponse.serveFile(StaplerRequest, InputStream, long, long, int, String)

serveFile

public void serveFile(StaplerRequest req,
                      java.io.InputStream data,
                      long lastModified,
                      int contentLength,
                      java.lang.String fileName)
               throws javax.servlet.ServletException,
                      java.io.IOException
Specified by:
serveFile in interface StaplerResponse
Throws:
javax.servlet.ServletException
java.io.IOException

serveExposedBean

public void serveExposedBean(StaplerRequest req,
                             java.lang.Object exposedBean,
                             Flavor flavor)
                      throws javax.servlet.ServletException,
                             java.io.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 in Model.writeTo(Object,int,DataWriter).

As of 1.146, the tree parameter may be used to control the output in detail; see NamedPathPruner.NamedPathPruner(String) for details.

Specified by:
serveExposedBean in interface StaplerResponse
Throws:
javax.servlet.ServletException
java.io.IOException

getCompressedOutputStream

public java.io.OutputStream getCompressedOutputStream(javax.servlet.http.HttpServletRequest req)
                                               throws java.io.IOException
Description copied from interface: StaplerResponse
Works like ServletResponse.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 interface StaplerResponse
Parameters:
req - Used to determine whether the client supports compression
Throws:
java.io.IOException

getCompressedWriter

public java.io.Writer getCompressedWriter(javax.servlet.http.HttpServletRequest req)
                                   throws java.io.IOException
Description copied from interface: StaplerResponse
Works like StaplerResponse.getCompressedOutputStream(HttpServletRequest) but this method is for ServletResponse.getWriter().

Specified by:
getCompressedWriter in interface StaplerResponse
Throws:
java.io.IOException

reverseProxyTo

public int reverseProxyTo(java.net.URL url,
                          StaplerRequest req)
                   throws java.io.IOException
Description copied from interface: StaplerResponse
Performs the reverse proxy to the given URL.

Specified by:
reverseProxyTo in interface StaplerResponse
Returns:
The status code of the response.
Throws:
java.io.IOException

encode

public static java.lang.String encode(java.lang.String s)
Escapes non-ASCII characters.



Copyright © 2012. All Rights Reserved.