All Packages Class Hierarchy This Package Previous Next Index
Class w3c.jigsaw.forms.CgiResource
java.lang.Object
|
+----w3c.tools.store.AttributeHolder
|
+----w3c.tools.store.Resource
|
+----w3c.jigsaw.resources.HTTPResource
|
+----w3c.jigsaw.resources.FilteredResource
|
+----w3c.jigsaw.resources.FileResource
|
+----w3c.jigsaw.forms.CgiResource
- public class CgiResource
- extends FileResource
A class to handle the good old cgi scripts.
This should really not be used. I am writing it for fun only, you should
rather implement your own resources if you are to handle forms.
- See Also:
- Resource
-
ATTR_CGI_DEBUG
- Attribute index - Turn the script in debug mode.
-
ATTR_COMMAND
- Attribute index - The array of string that makes the command to run.
-
ATTR_GENERATES_FORM
- Attribute index - Does the script generates the form on GET ?
-
ATTR_INTERPRETER
- Attribute index - The interpreter to use, if any.
-
ATTR_NOHEADER
- Attribute index - Does the script takes care of its headers ?
-
ATTR_REMOTE_HOST
- Attribute index - Do DNS, to fill in REMOTE_HOST env var.
-
CgiResource()
-
-
checkCgiDebug()
- Get the CGI debug flag.
-
checkGeneratesFormFlag()
- Get the generates form flag.
-
checkNoheaderFlag()
- Get the noheader flag.
-
checkRemoteHost()
- Get the remote host attribute value.
-
get(Request)
- GET method implementation.
-
getCommand()
- Get the command string array.
-
getEnvName(String)
- Turn the given header name into it's env var canonical name.
-
getInterpreter()
- Get the interpreter to use to execute the script.
-
handleCGIOutput(Process, Request)
- Handle the CGI script output.
-
initialize(Object[])
- At init time, if no command, use a suitable default.
-
lookup(LookupState, LookupResult)
- Lookup sub-resources.
-
makeCgiCommand(Request)
- Prepare the command to run for this CGI script, and run it.
-
post(Request)
- Handle the POST method according to CGI/1.1 specification.
ATTR_INTERPRETER
protected static int ATTR_INTERPRETER
- Attribute index - The interpreter to use, if any.
ATTR_COMMAND
protected static int ATTR_COMMAND
- Attribute index - The array of string that makes the command to run.
ATTR_NOHEADER
protected static int ATTR_NOHEADER
- Attribute index - Does the script takes care of its headers ?
ATTR_GENERATES_FORM
protected static int ATTR_GENERATES_FORM
- Attribute index - Does the script generates the form on GET ?
ATTR_REMOTE_HOST
protected static int ATTR_REMOTE_HOST
- Attribute index - Do DNS, to fill in REMOTE_HOST env var.
ATTR_CGI_DEBUG
protected static int ATTR_CGI_DEBUG
- Attribute index - Turn the script in debug mode.
CgiResource
public CgiResource()
getInterpreter
public String getInterpreter()
- Get the interpreter to use to execute the script.
This is most usefull for operating systems that don't have a
!#
convention ala UNIX.
- Returns:
- The interpreter to run the script.
getCommand
public String[] getCommand()
- Get the command string array.
checkNoheaderFlag
public boolean checkNoheaderFlag()
- Get the noheader flag.
- Returns:
- The boolean value of the noheader flag.
checkGeneratesFormFlag
public boolean checkGeneratesFormFlag()
- Get the generates form flag.
- Returns:
- The boolean value of the generates form flag.
checkRemoteHost
public boolean checkRemoteHost()
- Get the remote host attribute value.
If turned on, this flag will enable the REMOTE_HOST env var computation.
- Returns:
- A boolean.
checkCgiDebug
public boolean checkCgiDebug()
- Get the CGI debug flag.
- Returns:
- The boolean value of the CGI debug flag.
getEnvName
public String getEnvName(String name)
- Turn the given header name into it's env var canonical name.
This guy is crazy enough to run CGI scripts, he can pay for that
overhead.
- Parameters:
- name - The header name.
- Returns:
- A String giving the official env variable name for that header.
handleCGIOutput
protected Reply handleCGIOutput(Process process,
Request request) throws HTTPException
- Handle the CGI script output.
This methods handles the CGI script output. Depending on the
value of the noheader attribute it either:
- Sends back the script output directly,
- Parses the script output, looking for a status header or a
location header, or a content-length header, or any combination
of those three.
- Parameters:
- process - The underlying CGI process.
- request - The processed request.
- Throws: HTTPException
- If an HTTP error should be sent back to the
client.
makeCgiCommand
protected Process makeCgiCommand(Request request) throws HTTPException, IOException
- Prepare the command to run for this CGI script, and run it.
- Parameters:
- request - The request to handle.
- Returns:
- The running CGI process object.
- Throws: HTTPException
- If we weren't able to build the command or
the environment.
lookup
public boolean lookup(LookupState ls,
LookupResult lr) throws HTTPException
- Lookup sub-resources.
Accumulate the remaning path in some special state of the request.
This allows us to implement the PATH_INFO
CGI variable properly.
- Parameters:
- ls - Current lookup state.
- lr - Lookup result under construction.
- Returns:
- A boolean true if lookup should continue,
false otherwise.
- Overrides:
- lookup in class FilteredResource
get
public Reply get(Request request) throws HTTPException
- GET method implementation.
this method is splitted into two cases:
If the resource is able to generates its form, than run the script
to emit the form. Otherwsie, use our super class (FileResource) ability
to send the file that contains the form.
Note that there is no need to feed the underlying process with
data in the GET case.
- Parameters:
- request - The request to handle.
- Throws: HTTPException
- If processing the request failed.
- Overrides:
- get in class FileResource
post
public Reply post(Request request) throws HTTPException
- Handle the POST method according to CGI/1.1 specification.
The request body is sent back to the launched CGI script, as is, and
the script output is handled by the handleCGIOutput method.
- Parameters:
- request - The request to process.
- Throws: HTTPException
- If the processing failed.
- Overrides:
- post in class HTTPResource
initialize
public void initialize(Object values[])
- At init time, if no command, use a suitable default.
THis method will set the command to the identifier, if it is not
provided.
- Parameters:
- values - Default attribute values.
- Overrides:
- initialize in class FileResource
All Packages Class Hierarchy This Package Previous Next Index