Class WebResponse

  • All Implemented Interfaces:
    jakarta.servlet.http.HttpServletResponse, jakarta.servlet.ServletResponse

    public class WebResponse
    extends jakarta.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 jakarta.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_MISDIRECTED_REQUEST, 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_PERMANENT_REDIRECT, 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_UNPROCESSABLE_CONTENT, SC_UNSUPPORTED_MEDIA_TYPE, SC_UPGRADE_REQUIRED, SC_USE_PROXY
    • Constructor Summary

      Constructors 
      Constructor Description
      WebResponse()
      Create a response with no real ServletOutputStream.
      WebResponse​(jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.http.HttpServletRequest request)
      Constructor which wraps a HttpServletResponse.
      WebResponse​(java.io.OutputStream out)
      Construct which uses a custom output stream.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void flush()
      Flushes the response.
      int getId()
      Returns the ID.
      java.lang.String getNonce()
      Returns the nonce in the header.
      jakarta.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 jakarta.servlet.http.HttpServletResponseWrapper

        addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectURL, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, sendError, sendError, sendRedirect, sendRedirect, sendRedirect, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setTrailerFields
      • Methods inherited from class jakarta.servlet.ServletResponseWrapper

        flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, getWriter, isCommitted, isWrapperFor, isWrapperFor, reset, resetBuffer, setBufferSize, setCharacterEncoding, setCharacterEncoding, setContentLength, setContentLengthLong, 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 jakarta.servlet.ServletResponse

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

      • WebResponse

        public WebResponse​(jakarta.servlet.http.HttpServletResponse response,
                           jakarta.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 Detail

      • getOutputStream

        public jakarta.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 jakarta.servlet.ServletResponse
        Overrides:
        getOutputStream in class jakarta.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.
      • getNonce

        public java.lang.String getNonce()
        Returns the nonce in the header.
        Returns:
        the nonce that will be used in the header of the response if useScriptNonce is true, otherwise returns an empty String