All Packages Class Hierarchy This Package Previous Next Index
Class org.w3c.jigsaw.frames.CgiFrame
java.lang.Object
|
+----org.w3c.tools.resources.AttributeHolder
|
+----org.w3c.tools.resources.Resource
|
+----org.w3c.tools.resources.FramedResource
|
+----org.w3c.tools.resources.ResourceFrame
|
+----org.w3c.tools.resources.ProtocolFrame
|
+----org.w3c.jigsaw.frames.HTTPFrame
|
+----org.w3c.jigsaw.frames.CgiFrame
- public class CgiFrame
- extends HTTPFrame
Handle CGI scripts.
-
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.
-
CgiFrame()
-
-
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.
-
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.
-
registerResource(FramedResource)
- At register time, if no command, use a suitable default.
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.
CgiFrame
public CgiFrame()
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 ProtocolException
- 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: ProtocolException
- If an HTTP error
should be sent back to the client.
makeCgiCommand
protected Process makeCgiCommand(Request request) throws ProtocolException, 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: ProtocolException
- If we weren't able
to build the command or the environment.
- Throws: IOException
- if an IO erro occurs.
lookup
public boolean lookup(LookupState ls,
LookupResult lr) throws ProtocolException
- 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.
- Throws: ProtocolException
- (fixme doc)
- Overrides:
- lookup in class HTTPFrame
get
public Reply get(Request request) throws ProtocolException, ResourceException
- 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: ProtocolException
- If processing the request failed.
- Throws: ResourceException
- If the resource got a fatal error.
- Overrides:
- get in class HTTPFrame
post
public Reply post(Request request) throws ProtocolException, ResourceException
- 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: ProtocolException
- If the processing failed.
- Throws: ResourceException
- If the resource got a fatal error.
- Overrides:
- post in class HTTPFrame
registerResource
public void registerResource(FramedResource resource)
- At register 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:
- registerResource in class HTTPFrame
All Packages Class Hierarchy This Package Previous Next Index