public abstract class HttpRequestContext
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static int |
HTTP_NOT_FOUND |
static int |
HTTP_OK |
static int |
importServletDefinitions
This is a bit of a kludge, to import servlet functions into Scheme.
|
protected static java.lang.ThreadLocal<HttpRequestContext> |
instance |
int |
statusCode |
java.lang.String |
statusReasonPhrase |
Constructor and Description |
---|
HttpRequestContext() |
Modifier and Type | Method and Description |
---|---|
abstract java.lang.Object |
getAttribute(java.lang.String name)
Get attribute from the server context.
|
ServletPrinter |
getConsumer() |
abstract java.lang.String |
getContextPath()
Returns the context path, relative to the server root.
|
static HttpRequestContext |
getInstance() |
static HttpRequestContext |
getInstance(java.lang.String command) |
java.net.InetAddress |
getLocalHost() |
java.lang.String |
getLocalIPAddress() |
java.lang.String |
getLocalPath()
Returns the remainder of the request path, relative to the script.
|
abstract int |
getLocalPort() |
java.net.InetSocketAddress |
getLocalSocketAddress() |
abstract java.lang.String |
getPathTranslated() |
abstract java.lang.String |
getQueryString() |
abstract java.net.InetAddress |
getRemoteHost() |
abstract java.lang.String |
getRemoteIPAddress() |
abstract int |
getRemotePort() |
java.net.InetSocketAddress |
getRemoteSocketAddress() |
java.lang.String |
getRequestBodyChars() |
abstract java.lang.String |
getRequestHeader(java.lang.String name) |
abstract java.util.Map<java.lang.String,java.util.List<java.lang.String>> |
getRequestHeaders() |
abstract java.util.List<java.lang.String> |
getRequestHeaders(java.lang.String name) |
abstract java.lang.String |
getRequestMethod() |
java.lang.String |
getRequestParameter(java.lang.String name) |
abstract java.util.Map<java.lang.String,java.util.List<java.lang.String>> |
getRequestParameters() |
java.lang.String |
getRequestPath() |
gnu.kawa.io.InPort |
getRequestPort() |
java.lang.String |
getRequestScheme() |
abstract java.io.InputStream |
getRequestStream() |
abstract java.net.URI |
getRequestURI() |
java.lang.StringBuffer |
getRequestURLBuffer() |
abstract java.net.URL |
getResourceURL(java.lang.String path)
Returns the URL of a resource.
|
abstract java.io.OutputStream |
getResponseStream()
Return an OutputStream for the result body.
|
java.lang.String |
getScriptPath()
Returns the path of the script, relative to the context.
|
static void |
handleStaticFile(HttpRequestContext hctx,
gnu.kawa.io.Path absPath) |
abstract void |
log(java.lang.String message) |
abstract void |
log(java.lang.String message,
java.lang.Throwable ex) |
protected java.lang.String |
normalizeToContext(java.lang.String path) |
abstract boolean |
reset(boolean headersAlso)
Try to reset (delete) any response generated so far.
|
void |
sendNotFound(java.lang.String path) |
abstract void |
sendResponseHeaders(int reasonCode,
java.lang.String reasonPhrase,
long responseLength)
Send headers.
|
abstract void |
setAttribute(java.lang.String name,
java.lang.Object value)
Set attribute in the server context.
|
void |
setContentType(java.lang.String type) |
static void |
setInstance(HttpRequestContext ctx) |
abstract void |
setResponseHeader(java.lang.String name,
java.lang.String value) |
void |
setScriptAndLocalPath(java.lang.String scriptPath,
java.lang.String localPath) |
public static final int HTTP_OK
public static final int HTTP_NOT_FOUND
public int statusCode
public java.lang.String statusReasonPhrase
public static int importServletDefinitions
protected static final java.lang.ThreadLocal<HttpRequestContext> instance
public static HttpRequestContext getInstance()
public static HttpRequestContext getInstance(java.lang.String command)
public static void setInstance(HttpRequestContext ctx)
public abstract java.io.InputStream getRequestStream()
public gnu.kawa.io.InPort getRequestPort()
public java.lang.String getRequestBodyChars() throws java.io.IOException
java.io.IOException
public abstract java.io.OutputStream getResponseStream()
public ServletPrinter getConsumer() throws java.io.IOException
java.io.IOException
public abstract boolean reset(boolean headersAlso)
headersAlso
- if response headers should also be reset.public java.lang.String getRequestParameter(java.lang.String name)
public abstract java.util.Map<java.lang.String,java.util.List<java.lang.String>> getRequestParameters()
public abstract java.net.URI getRequestURI()
public abstract java.lang.String getContextPath()
getRequestPath()
.
Like ServletContext#getContextPath
, but ends with a '/'
.
The string getRequestURI()
is the same as the concatenation of
getContextPath()
, getScriptPath()
,
and getLocalPath()
.public java.lang.String getScriptPath()
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.)public java.lang.String getLocalPath()
public void setScriptAndLocalPath(java.lang.String scriptPath, java.lang.String localPath)
public abstract java.lang.String getPathTranslated()
public java.lang.String getRequestPath()
public java.lang.String getRequestScheme()
public java.net.InetSocketAddress getLocalSocketAddress()
public java.lang.String getLocalIPAddress()
public java.net.InetAddress getLocalHost()
public abstract int getLocalPort()
public java.net.InetSocketAddress getRemoteSocketAddress()
public abstract java.net.InetAddress getRemoteHost()
public abstract java.lang.String getRemoteIPAddress()
public abstract int getRemotePort()
public java.lang.StringBuffer getRequestURLBuffer()
public abstract java.lang.String getQueryString()
public abstract java.lang.String getRequestMethod()
public abstract java.lang.String getRequestHeader(java.lang.String name)
public abstract java.util.List<java.lang.String> getRequestHeaders(java.lang.String name)
public abstract java.util.Map<java.lang.String,java.util.List<java.lang.String>> getRequestHeaders()
public abstract void setResponseHeader(java.lang.String name, java.lang.String value)
public void setContentType(java.lang.String type)
protected java.lang.String normalizeToContext(java.lang.String path)
public abstract java.net.URL getResourceURL(java.lang.String path)
'/'
it is relative to the context path.public abstract java.lang.Object getAttribute(java.lang.String name)
public abstract void setAttribute(java.lang.String name, java.lang.Object value)
public abstract void sendResponseHeaders(int reasonCode, java.lang.String reasonPhrase, long responseLength) throws java.io.IOException
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.java.io.IOException
public void sendNotFound(java.lang.String path) throws java.io.IOException
java.io.IOException
public abstract void log(java.lang.String message)
public abstract void log(java.lang.String message, java.lang.Throwable ex)
public static void handleStaticFile(HttpRequestContext hctx, gnu.kawa.io.Path absPath) throws java.io.IOException
java.io.IOException