All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.servlet.ServletResponseWrapper Maven / Gradle / Ivy

There is a newer version: 4.0.66
Show newest version
/*
 * Copyright (c) 1998-2012 Caucho Technology -- all rights reserved
 *
 * This file is part of Resin(R) Open Source
 *
 * Each copy or derived work must preserve the copyright notice and this
 * notice unmodified.
 *
 * Resin Open Source is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * Resin Open Source is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
 * of NON-INFRINGEMENT.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Resin Open Source; if not, write to the
 *
 *   Free Software Foundation, Inc.
 *   59 Temple Place, Suite 330
 *   Boston, MA 02111-1307  USA
 *
 * @author Scott Ferguson
 */

package javax.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Locale;


/**
 * Wraps a servlet response in another response.  Filters may
 * use ServletResponseWrapper to grab results from the servlet.
 *
 * 

The default methods just call the wrapped response methods. * * @since servlet 2.3 */ public class ServletResponseWrapper implements ServletResponse { // the wrapped response private ServletResponse _response; /** * Create a new ServletResponseWrapper, wrapping a specified response. * * @param response the response to wrap. */ public ServletResponseWrapper(ServletResponse response) { if (response == null) throw new IllegalArgumentException(); _response = response; } /** * Sets the response to be wrapped. * * @param response the response to wrap. */ public void setResponse(ServletResponse response) { if (response == null) throw new IllegalArgumentException(); _response = response; } /** * Gets the wrapped response * * @return the wrapped response */ public ServletResponse getResponse() { return _response; } /** * Sets the response content type. The content type includes * the character encoding. The content type must be set before * calling getWriter() so the writer can use the * proper character encoding. * *

To set the output character encoding to ISO-8859-2, use the * following: * *

   * response.setContentType("text/html; charset=ISO-8859-2");
   * 
* * @param type the mime type of the output */ public void setContentType(String type) { _response.setContentType(type); } /** * Returns the content type * * @since 2.4 */ public String getContentType() { return _response.getContentType(); } /** * Returns the character encoding the response is using for output. */ public String getCharacterEncoding() { return _response.getCharacterEncoding(); } /** * Sets the character encoding the response is using for output. * * @since 2.4 */ public void setCharacterEncoding(String encoding) { _response.setCharacterEncoding(encoding); } /** * Sets the output locale. The response will set the character encoding * based on the locale. For example, setting the "kr" locale will set * the character encoding to "EUC_KR". */ public void setLocale(Locale locale) { _response.setLocale(locale); } /** * Returns the output locale. */ public Locale getLocale() { return _response.getLocale(); } /** * Returns an output stream for writing to the client. You can use * the output stream to write binary data. */ public ServletOutputStream getOutputStream() throws IOException { return _response.getOutputStream(); } /** * Returns a PrintWriter with the proper character encoding for writing * text data to the client. */ public PrintWriter getWriter() throws IOException { return _response.getWriter(); } /** * Sets the output buffer size to size. The servlet engine * may round the size up. * * @param size the new output buffer size. */ public void setBufferSize(int size) { _response.setBufferSize(size); } /** * Returns the size of the output buffer. */ public int getBufferSize() { return _response.getBufferSize(); } /** * Flushes the buffer to the client. */ public void flushBuffer() throws IOException { _response.flushBuffer(); } /** * Returns true if some data has actually been send to the client. The * data will be sent if the buffer overflows or if it's explicitly flushed. */ public boolean isCommitted() { return _response.isCommitted(); } /** * Resets the output stream, clearing headers and the output buffer. * Calling reset() after data has been committed is illegal. * * @throws IllegalStateException if isCommitted() is true. */ public void reset() { _response.reset(); } /** * Resets the output stream without clearing headers and the output buffer. * Calling resetBuffer() after data has been committed is * illegal. * * @throws IllegalStateException if isCommitted() is true. */ public void resetBuffer() { _response.resetBuffer(); } /** * Resin automatically handles output content length and chunking. This * method is ignored. * * @deprecated */ public void setContentLength(int len) { _response.setContentLength(len); } /** * @since Servlet 3.0 */ public boolean isWrapperFor(ServletResponse wrapped) { if (_response == wrapped) return true; else if (_response instanceof ServletResponseWrapper) return ((ServletResponseWrapper) _response).isWrapperFor(wrapped); else return false; } /** * @since Servlet 3.0 */ public boolean isWrapperFor(Class wrappedType) { if (!ServletResponse.class.isAssignableFrom(wrappedType)) throw new IllegalArgumentException( "expected instance of javax.servlet.ServletResponse at `" + wrappedType + "'"); else if (wrappedType.isAssignableFrom(_response.getClass())) return true; else if (_response instanceof ServletResponseWrapper) return ((ServletResponseWrapper) _response).isWrapperFor(wrappedType); else return false; } @Override public String toString() { return getClass().getSimpleName() + "[]"; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy