Class HttpRequestContext

  • Direct Known Subclasses:
    KawaHttpHandler.Context, KawaServlet.Context

    public abstract class HttpRequestContext
    extends Object
    A representation of an http request as it is being handled. It abstracts over different http server's API - specially, there are are concrete implementations on top of JDK6's com.sun.net.httpserver, javax.servlet.http, and CGI (on top of servlets).
    • Field Detail

      • statusCode

        public int statusCode
      • statusReasonPhrase

        public String statusReasonPhrase
      • importServletDefinitions

        public static int importServletDefinitions
        This is a bit of a kludge, to import servlet functions into Scheme. (The kludge is that we really shouldn't be using a static.) If importServletDefinitions == 1, then we're running in (or compiling for) a web server context; if it is 2 we specifically support servlets.
    • Constructor Detail

      • HttpRequestContext

        public HttpRequestContext()
    • Method Detail

      • getRequestStream

        public abstract InputStream getRequestStream()
      • getRequestPort

        public gnu.kawa.io.InPort getRequestPort()
      • getResponseStream

        public abstract OutputStream getResponseStream()
        Return an OutputStream for the result body. Multiple calls will return the same OutputStream.
      • reset

        public abstract boolean reset​(boolean headersAlso)
        Try to reset (delete) any response generated so far.
        Parameters:
        headersAlso - if response headers should also be reset.
        Returns:
        true on success, false if it's too late.
      • getRequestParameter

        public String getRequestParameter​(String name)
      • getRequestURI

        public abstract URI getRequestURI()
      • getContextPath

        public abstract String getContextPath()
        Returns the context path, relative to the server root. This is an initial substring of the getRequestPath(). Like ServletContext#getContextPath, but ends with a '/'. The string getRequestURI() is the same as the concatenation of getContextPath(), getScriptPath(), and getLocalPath().
      • getScriptPath

        public String getScriptPath()
        Returns the path of the script, relative to the context. Like ServletRequestt#getServletPath, but ends with a '/', and does not start with one. (The reason for this is to produce URIs that work better with operations like resolve-uri.)
      • getLocalPath

        public String getLocalPath()
        Returns the remainder of the request path, relative to the script.
      • setScriptAndLocalPath

        public void setScriptAndLocalPath​(String scriptPath,
                                          String localPath)
      • getPathTranslated

        public abstract String getPathTranslated()
      • getRequestPath

        public String getRequestPath()
      • getRequestScheme

        public String getRequestScheme()
      • getLocalIPAddress

        public String getLocalIPAddress()
      • getLocalPort

        public abstract int getLocalPort()
      • getRemoteHost

        public abstract InetAddress getRemoteHost()
      • getRemoteIPAddress

        public abstract String getRemoteIPAddress()
      • getRemotePort

        public abstract int getRemotePort()
      • getRequestURLBuffer

        public StringBuffer getRequestURLBuffer()
      • getQueryString

        public abstract String getQueryString()
      • getRequestMethod

        public abstract String getRequestMethod()
      • getRequestHeader

        public abstract String getRequestHeader​(String name)
      • getRequestHeaders

        public abstract List<String> getRequestHeaders​(String name)
      • setResponseHeader

        public abstract void setResponseHeader​(String name,
                                               String value)
      • setContentType

        public void setContentType​(String type)
      • normalizeToContext

        protected String normalizeToContext​(String path)
      • getResourceURL

        public abstract URL getResourceURL​(String path)
        Returns the URL of a resource. The resource is relative to the script path, if the path is relative; otherwise (if it starts with a '/' it is relative to the context path.
      • getAttribute

        public abstract Object getAttribute​(String name)
        Get attribute from the server context.
      • setAttribute

        public abstract void setAttribute​(String name,
                                          Object value)
        Set attribute in the server context.
      • sendResponseHeaders

        public abstract void sendResponseHeaders​(int reasonCode,
                                                 String reasonPhrase,
                                                 long responseLength)
                                          throws IOException
        Send headers.
        Parameters:
        reasonCode - response code - e.g. 200 for OK.
        reasonPhrase - response string - e.g. "OK" or "Not Found".
        responseLength - response length in bytes, or -1 (unspecified). Note this is different from HttpExchange.sendResponseHeaders. This method must be called before getResponseStream. Implementations should set statusCode to STATUS_SENT.
        Throws:
        IOException
      • log

        public abstract void log​(String message)