eu.webtoolkit.jwt.servlet
Class WebResponse

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
          extended by 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
WebResponse(javax.servlet.http.HttpServletResponse response, javax.servlet.http.HttpServletRequest request)
          Constructor which wraps a HttpServletResponse.
WebResponse(java.io.OutputStream out)
          Construct which uses a custom output stream.
 
Method Summary
 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 Detail

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.
Method Detail

getOutputStream

public javax.servlet.ServletOutputStream getOutputStream()
                                                  throws java.io.IOException
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
Throws:
java.io.IOException

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.