|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.catalina.servlets.CGIServlet.CGIRunner
Encapsulates the knowledge of how to run a CGI script, given the script's desired environment and (optionally) input/output streams
Exposes a run
method used to actually invoke the
CGI.
The CGI environment and settings are derived from the information passed to the constuctor.
The input and output streams can be set by the setInput
and setResponse
methods, respectively.
Constructor Summary | |
protected |
CGIServlet.CGIRunner(java.lang.String command,
java.util.Hashtable env,
java.io.File wd,
java.util.ArrayList params)
Creates a CGIRunner and initializes its environment, working directory, and query parameters. |
Method Summary | |
protected java.lang.String |
getPostInput(java.util.ArrayList params)
Gets a string for input to a POST cgi script |
protected java.lang.String[] |
hashToStringArray(java.util.Hashtable h)
Converts a Hashtable to a String array by converting each key/value pair in the Hashtable to a String in the form "key=value" (hashkey + "=" + hash.get(hashkey).toString()) |
protected boolean |
isReady()
Gets ready status |
protected void |
run()
Executes a CGI script with the desired environment, current working directory, and input/output streams |
protected void |
setInput(java.io.InputStream stdin)
Sets standard input to be passed on to the invoked cgi script |
protected void |
setResponse(javax.servlet.http.HttpServletResponse response)
Sets HttpServletResponse object used to set headers and send output to |
protected void |
updateReadyStatus()
Checks & sets ready status |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
protected CGIServlet.CGIRunner(java.lang.String command, java.util.Hashtable env, java.io.File wd, java.util.ArrayList params)
setInput
and setResponse
methods,
respectively.
command
- string full path to command to be executedenv
- Hashtable with the desired script environmentwd
- File with the script's desired working directoryparams
- ArrayList with the script's query parameters as
NameValuePairsMethod Detail |
protected void updateReadyStatus()
protected boolean isReady()
run
will throw
an exception), true if readyprotected void setResponse(javax.servlet.http.HttpServletResponse response)
response
- HttpServletResponse to be usedprotected void setInput(java.io.InputStream stdin)
stdin
- InputStream to be usedprotected java.lang.String[] hashToStringArray(java.util.Hashtable h) throws java.lang.NullPointerException
h
- Hashtable to convert
java.lang.NullPointerException
- if a hash key has a null valueprotected void run() throws java.io.IOException
This implements the following CGI specification recommedations:
query
" component of
the script-URI as command-line arguments to scripts if it
does not contain any unencoded "=" characters and the
command-line arguments can be generated in an unambiguous
manner.
auth-scheme
" token of the
"Authorization
" if it was supplied as part of the
request header. See getCGIEnvironment
method.
.
" and "..
" path
segments:
This implementation does not allow ".
" and
"..
" in the the path, and such characters
will result in an IOException being thrown;
java.io.IOException
- if problems during reading/writing occurRuntime.exec(String command, String[] envp,
File dir)
protected java.lang.String getPostInput(java.util.ArrayList params)
params
- ArrayList of query parameters to be passed to
the CGI script
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |