com.ibm.websphere.servlet.response
Class HttpServletResponseProxy
java.lang.Object
|
+--com.ibm.websphere.servlet.response.HttpServletResponseProxy
- All Implemented Interfaces:
- javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse
- public abstract class HttpServletResponseProxy
- extends java.lang.Object
- implements javax.servlet.http.HttpServletResponse
Proxies function invocations to an underlying HttpServletResponse.
Subclasses of this class can be created that overload or enhance the
functionality of a server-provided HttpServletResponse.
Using the proxied response:
- Subclass this class and overload any desired functions.
- During the servlet's service method, create an instance of
the enhanced response using the original response from the server
as the proxied response.
- Forward the enhanced response to another servlet for processing instead
of the original response that was provided by the server.
Sample subclass (overloads the response's OutputStream)
//The data written to this response will be saved to the specified file.
public class FileOutputResponse extends HttpServletResponseProxy{
private HttpServletResponse _response;
private File _file;
public FileOutputResponse(File f, HttpServletResponse resp){
_file = f;
_response = resp;
}
protected HttpServletResponse getProxiedHttpServletResponse(){
return _response;
}
//overload response functionality
public ServletOutputStream getOutputStream() throws IOException{
return new ServletOutputStreamAdapter(new FileOutputStream(_file));
}
public PrintWriter getWriter() throws IOException{
return new PrintWriter(getOutputStream());
}
}
Using the enhanced response subclass transparently in a servlet
//This servlet will store the response of another servlet to a file.
public class SaveResponseToFileServlet extends HttpServlet{
public void service(HttpServletRequest req, HttpServletResponse resp){
resp = new FileOutputResponse(req, new File("/tmp/response.txt"));
//store the response of SnoopServlet to the response.txt file.
getServletContext().getRequestDispatcher("/servlet/SnoopServlet").forward(req, resp);
}
}
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_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 |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
HttpServletResponseProxy
public HttpServletResponseProxy()
getProxiedHttpServletResponse
protected abstract javax.servlet.http.HttpServletResponse getProxiedHttpServletResponse()
- Get the response that this object is supposed to proxy.
addCookie
public void addCookie(javax.servlet.http.Cookie cookie)
- Specified by:
addCookie
in interface javax.servlet.http.HttpServletResponse
containsHeader
public boolean containsHeader(java.lang.String name)
- Specified by:
containsHeader
in interface javax.servlet.http.HttpServletResponse
encodeRedirectUrl
public java.lang.String encodeRedirectUrl(java.lang.String url)
- Specified by:
encodeRedirectUrl
in interface javax.servlet.http.HttpServletResponse
encodeURL
public java.lang.String encodeURL(java.lang.String url)
- Specified by:
encodeURL
in interface javax.servlet.http.HttpServletResponse
encodeRedirectURL
public java.lang.String encodeRedirectURL(java.lang.String url)
- Specified by:
encodeRedirectURL
in interface javax.servlet.http.HttpServletResponse
encodeUrl
public java.lang.String encodeUrl(java.lang.String url)
- Specified by:
encodeUrl
in interface javax.servlet.http.HttpServletResponse
setDateHeader
public void setDateHeader(java.lang.String name,
long date)
- Specified by:
setDateHeader
in interface javax.servlet.http.HttpServletResponse
sendError
public void sendError(int sc)
throws java.io.IOException
- Specified by:
sendError
in interface javax.servlet.http.HttpServletResponse
sendError
public void sendError(int sc,
java.lang.String msg)
throws java.io.IOException
- Specified by:
sendError
in interface javax.servlet.http.HttpServletResponse
sendRedirect
public void sendRedirect(java.lang.String location)
throws java.io.IOException
- Specified by:
sendRedirect
in interface javax.servlet.http.HttpServletResponse
setStatus
public void setStatus(int sc)
- Specified by:
setStatus
in interface javax.servlet.http.HttpServletResponse
setStatus
public void setStatus(int sc,
java.lang.String sm)
- Specified by:
setStatus
in interface javax.servlet.http.HttpServletResponse
setHeader
public void setHeader(java.lang.String name,
java.lang.String value)
- Specified by:
setHeader
in interface javax.servlet.http.HttpServletResponse
setIntHeader
public void setIntHeader(java.lang.String name,
int value)
- Specified by:
setIntHeader
in interface javax.servlet.http.HttpServletResponse
addIntHeader
public void addIntHeader(java.lang.String name,
int value)
- Specified by:
addIntHeader
in interface javax.servlet.http.HttpServletResponse
addHeader
public void addHeader(java.lang.String name,
java.lang.String value)
- Specified by:
addHeader
in interface javax.servlet.http.HttpServletResponse
addDateHeader
public void addDateHeader(java.lang.String name,
long date)
- Specified by:
addDateHeader
in interface javax.servlet.http.HttpServletResponse
getCharacterEncoding
public java.lang.String getCharacterEncoding()
- Specified by:
getCharacterEncoding
in interface javax.servlet.ServletResponse
getOutputStream
public javax.servlet.ServletOutputStream getOutputStream()
throws java.io.IOException
- Specified by:
getOutputStream
in interface javax.servlet.ServletResponse
getWriter
public java.io.PrintWriter getWriter()
throws java.io.IOException
- Specified by:
getWriter
in interface javax.servlet.ServletResponse
setContentLength
public void setContentLength(int len)
- Specified by:
setContentLength
in interface javax.servlet.ServletResponse
setContentType
public void setContentType(java.lang.String type)
- Specified by:
setContentType
in interface javax.servlet.ServletResponse
setBufferSize
public void setBufferSize(int size)
- Specified by:
setBufferSize
in interface javax.servlet.ServletResponse
getBufferSize
public int getBufferSize()
- Specified by:
getBufferSize
in interface javax.servlet.ServletResponse
flushBuffer
public void flushBuffer()
throws java.io.IOException
- Specified by:
flushBuffer
in interface javax.servlet.ServletResponse
isCommitted
public boolean isCommitted()
- Specified by:
isCommitted
in interface javax.servlet.ServletResponse
reset
public void reset()
- Specified by:
reset
in interface javax.servlet.ServletResponse
setLocale
public void setLocale(java.util.Locale loc)
- Specified by:
setLocale
in interface javax.servlet.ServletResponse
getLocale
public java.util.Locale getLocale()
- Specified by:
getLocale
in interface javax.servlet.ServletResponse
resetBuffer
public void resetBuffer()
- Clears the content of the underlying buffer in the response without clearing
headers or status code.
- Specified by:
resetBuffer
in interface javax.servlet.ServletResponse
- Throws:
java.lang.IllegalStateException
- if the response has already been committed- Since:
- 2.3