Class CGIplus
java.lang.Object
|
+----CGIplus
- public class CGIplus
- extends Object
This class allows CGI scripting to be supported relatively simply using
Java. Relies on the WASD HTTPd CGIplus environment providing the CGI
variables in a data stream rather than as process environment variables.
Hence scripts must be activated via mapping rules that execute them within
the CGIplus environment, although the scripts themselves do not have to
"persist" in the usual CGIplus script manner, just "System.exit(0)" when
finished processing (at the slight cost of destroying the subprocess).
Currently supports GET and "x-www-form-urlencoded" POST HTTP method scripts.
Will be expanded to more fully support POST processing as time permits.
- Version:
- 1.0.0, 09-DEC-97
- Author:
- MGD
-
CGIplus()
-
-
begin()
- Begin script processing, and synchronize persistant (CGIplus) scripts.
-
dumpBody()
- Output all lines in request body (for debugging POSTed requests, etc.)
-
dumpCgiVar()
- Output all CGI variable 'name=value' pairs (for debugging, etc.)
-
dumpForm()
- Output all form 'field=value' pairs (for debugging, etc).
-
end()
- Conclude the response.
-
getCgiVar(String)
- Return the value of the specified CGI variable name.
-
getCgiVarCount()
- Return the number of CGI variables available.
-
getContentLength()
- Returns the content-length of the body for a POSTed request.
-
getContentType()
- Returns the MIME content-type of the body of a POSTed request.
-
getFormField(String)
- Return the value of the specified form field name.
-
getFormFieldCount()
- Return the number of form fields.
-
getUsageCount()
- Return the number of times the script has been used.
-
isPOSTedForm()
- Tests whether the request is POSTed and "www-form-urlencoded".
-
nextCgiVar()
- Successive calls return each CGI variable 'name=value' pair.
-
nextFormField()
- Successive calls return each form field 'name=value' pair.
-
readBodyLine()
- Read a line from the body of the request (for POSTed requests).
-
urlDecode(String)
- Decode the supplied URL-encoded string.
CGIplus
public CGIplus()
begin
public void begin()
- Begin script processing, and synchronize persistant (CGIplus) scripts.
For the first call checks for the CGIPLUSEOF string (if not available
reports it as an error and exits), then opens the CGIPLUSIN stream.
Wait for a request to become available (first record read and discarded).
Then read series of records up until the first empty record (indicates end
of CGI variables), placing each of these records into a vector object for
later search and retrieval.
- Returns:
- none
end
public void end()
- Conclude the response.
Write the CGIplus end-of-output value to the server.
Release any resources not relevant to next request (if CGIplus).
- Returns:
- none
getUsageCount
public int getUsageCount()
- Return the number of times the script has been used.
Relevant only when behaving as a persistant, CGIplus script.
- Returns:
- none
getCgiVar
public String getCgiVar(String varName)
- Return the value of the specified CGI variable name.
It is less expensive but not mandatory to supply the the "WWW_" prefix.
Returns null if the specified variable name does not exist.
- Parameters:
- varName - the name of the CGI variable
- Returns:
- the CGI variable string
nextCgiVar
public String nextCgiVar()
- Successive calls return each CGI variable 'name=value' pair.
Returns null and resets when the CGI variables are exhausted.
- Returns:
- the 'name=value' string
getCgiVarCount
public int getCgiVarCount()
- Return the number of CGI variables available.
- Returns:
- count of CGI variables
dumpCgiVar
public void dumpCgiVar()
- Output all CGI variable 'name=value' pairs (for debugging, etc.)
- Returns:
- none
getContentType
public String getContentType()
- Returns the MIME content-type of the body of a POSTed request.
- Returns:
- body content-type
isPOSTedForm
public boolean isPOSTedForm()
- Tests whether the request is POSTed and "www-form-urlencoded".
- Returns:
- true or false
getContentLength
public int getContentLength()
- Returns the content-length of the body for a POSTed request.
- Returns:
- length of POSTed body
readBodyLine
public String readBodyLine()
- Read a line from the body of the request (for POSTed requests).
- Returns:
- the line (or null if body exhausted)
dumpBody
public void dumpBody()
- Output all lines in request body (for debugging POSTed requests, etc.)
- Returns:
- none
dumpForm
public void dumpForm()
- Output all form 'field=value' pairs (for debugging, etc).
For a 'x-www-form-urlencoded', POSTed request.
- Returns:
- the 'name=value' string
getFormField
public String getFormField(String fieldName)
- Return the value of the specified form field name.
Returns null if the specified field name does not exist.
For a 'x-www-form-urlencoded', POSTed request.
- Parameters:
- fieldName - the name of the field
- Returns:
- the (URL-decoded) field value
nextFormField
public String nextFormField()
- Successive calls return each form field 'name=value' pair.
Returns null and resets when the form fields are exhausted.
For a 'x-www-form-urlencoded', POSTed request.
- Returns:
- the 'name=value' string
getFormFieldCount
public int getFormFieldCount()
- Return the number of form fields.
For a 'x-www-form-urlencoded', POSTed request.
- Returns:
- count of fields in request
urlDecode
public String urlDecode(String estr)
- Decode the supplied URL-encoded string.
Converts '+' into ' ' and "%nn" hex-encoded values into their ASCII
characters.
- Parameters:
- estr - the url-encoded string
- Returns:
- the decoded string