Class WebResponse

java.lang.Object
javax.servlet.ServletResponseWrapper
javax.servlet.http.HttpServletResponseWrapper
eu.webtoolkit.jwt.servlet.WebResponse
All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class WebResponse
extends javax.servlet.http.HttpServletResponseWrapper
A WebResponse which wraps the HttpServletResponse to support testing.

WebResponse is used instead of HttpServletRequest inside JWt's request handling, and also in WResource.handleRequest(WebRequest request, WebResponse response).

It augments the functionality of HttpServletResponse by having a constructor which serializes the response to an arbitrary output stream, for testing purposes.

See Also:
WebResponse
  • 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
    WebResponse()
    Create a response with no real ServletOutputStream.
    WebResponse​(java.io.OutputStream out)
    Construct which uses a custom output stream.
    WebResponse​(javax.servlet.http.HttpServletResponse response, javax.servlet.http.HttpServletRequest request)
    Constructor which wraps a HttpServletResponse.
  • Method Summary

    Modifier and Type Method Description
    void flush()
    Flushes the response.
    int getId()
    Returns the ID.
    javax.servlet.ServletOutputStream getOutputStream()
    Returns the output stream.
    java.lang.String getParameter​(java.lang.String string)
    Returns a request parameter value.
    java.util.Map<java.lang.String,​java.lang.String[]> getParameterMap()
    Returns the request's parameter map.
    java.lang.String getPathInfo()
    Returns the request path information.
    java.lang.String getRequestMethod()
    Returns the request method.
    WebRequest.ResponseType getResponseType()
    Returns the response type.
    boolean isWebSocketMessage()
    Returns whether this request is a WebSocket message.
    boolean isWebSocketMessagePending()
    Returns whether another WebSocket message is pending.
    boolean isWebSocketRequest()
    Returns whether this request is a WebSocket request.
    java.io.Writer out()
    Returns a text writer.
    void setId​(int i)
    Sets an ID to the WebResponse (used by JWt).
    void setResponseType​(WebRequest.ResponseType responseType)
    Sets the response type.

    Methods inherited from class javax.servlet.http.HttpServletResponseWrapper

    addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setStatus

    Methods inherited from class javax.servlet.ServletResponseWrapper

    flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, getWriter, isCommitted, isWrapperFor, isWrapperFor, 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.ServletResponse

    flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getWriter, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentType, setLocale
  • Constructor Details

    • WebResponse

      public WebResponse​(javax.servlet.http.HttpServletResponse response, javax.servlet.http.HttpServletRequest request)
      Constructor which wraps a HttpServletResponse.

      It also saves the corresponding request. This is for convenience, when wanting to change the rendering based on request information.

      Parameters:
      response - The HttpSerlvetResponse
      request - The HttpServletRequest
    • WebResponse

      public WebResponse​(java.io.OutputStream out)
      Construct which uses a custom output stream.

      This constructor is useful for testing purposes, for simulating a browser request and sending the output to e.g. a file.

      Parameters:
      out - The custom output stream.
    • WebResponse

      public WebResponse()
      Create a response with no real ServletOutputStream. Used to set up a web socket response
  • Method Details

    • getOutputStream

      public javax.servlet.ServletOutputStream getOutputStream()
      Returns the output stream.

      Returns ServletResponseWrapper.getOutputStream() or the custom output stream passed to WebResponse(OutputStream).

      You should only use the output stream to transmit binary information. Use ServletResponseWrapper.getWriter() for text output.

      Specified by:
      getOutputStream in interface javax.servlet.ServletResponse
      Overrides:
      getOutputStream in class javax.servlet.ServletResponseWrapper
    • out

      public java.io.Writer out()
      Returns a text writer.

      This returns a writer set on the output stream, which encodes text in UTF-8 format.

      Returns:
      a writer for streaming text.
    • setId

      public void setId​(int i)
      Sets an ID to the WebResponse (used by JWt).
      Parameters:
      i -
    • getId

      public int getId()
      Returns the ID.

      Returns the ID previously set using setId(int)

      Returns:
      the Id.
    • flush

      public void flush()
      Flushes the response.

      This flushes the writer.

    • getPathInfo

      public java.lang.String getPathInfo()
      Returns the request path information.

      This returns the path information that was passed in the request.

      Returns:
      the request path information.
    • getParameter

      public java.lang.String getParameter​(java.lang.String string)
      Returns a request parameter value.
      Parameters:
      string - the parameter name
      Returns:
      the request parameter value, or the empty string if the parameter was not set.
    • getRequestMethod

      public java.lang.String getRequestMethod()
      Returns the request method.
      Returns:
      the request method.
    • getParameterMap

      public java.util.Map<java.lang.String,​java.lang.String[]> getParameterMap()
      Returns the request's parameter map.
      Returns:
      the request's parameter map
    • isWebSocketRequest

      public boolean isWebSocketRequest()
      Returns whether this request is a WebSocket request. This is an internal JWt method.
    • isWebSocketMessage

      public boolean isWebSocketMessage()
      Returns whether this request is a WebSocket message. This is an internal JWt method.
    • isWebSocketMessagePending

      public boolean isWebSocketMessagePending()
      Returns whether another WebSocket message is pending. This is an internal JWt method.
    • setResponseType

      public void setResponseType​(WebRequest.ResponseType responseType)
      Sets the response type. This is an internal JWt method.
    • getResponseType

      public WebRequest.ResponseType getResponseType()
      Returns the response type. This is an internal JWt method.