org.apache.catalina.servlets
Class CGIServlet.CGIEnvironment
java.lang.Object
org.apache.catalina.servlets.CGIServlet.CGIEnvironment
- CGIServlet
protected class CGIServlet.CGIEnvironment
extends java.lang.Object
Encapsulates the CGI environment and rules to derive
that environment from the servlet container and request information.
Version:
- Martin Dengler [root@martindengler.com]
- Tomcat 4.0
CGIEnvironment(HttpServletRequest req, ServletContext context) - Creates a CGIEnvironment and derives the necessary environment,
query parameters, working directory, cgi command, etc.
|
protected String | blanksToString(String couldBeBlank, String subForBlanks) - Converts blank strings to another string
|
protected void | expandCGIScript() - Extracts requested resource from web app archive to context work
directory to enable CGI script to be executed.
|
protected String[] | findCGI(String pathInfo, String webAppRootDir, String contextPath, String servletPath, String cgiPathPrefix) - Resolves core information about the cgi script.
|
protected String | getCommand() - Gets derived command string
|
protected Hashtable | getEnvironment() - Gets derived CGI environment
|
protected ArrayList | getParameters() - Gets derived CGI query parameters
|
protected File | getWorkingDirectory() - Gets derived CGI working directory
|
protected boolean | isValid() - Gets validity status
|
protected String | nullsToBlanks(String s) - Converts null strings to blank strings ("")
|
protected String | nullsToString(String couldBeNull, String subForNulls) - Converts null strings to another string
|
protected boolean | setCGIEnvironment(HttpServletRequest req) - Constructs the CGI environment to be supplied to the invoked CGI
script; relies heavliy on Servlet API methods and findCGI
|
protected void | setupFromContext(ServletContext context) - Uses the ServletContext to set some CGI variables
|
protected void | setupFromRequest(HttpServletRequest req) - Uses the HttpServletRequest to set most CGI variables
|
String | toString() - Print important CGI environment information in a easy-to-read HTML
table
|
CGIEnvironment
protected CGIEnvironment(HttpServletRequest req,
ServletContext context)
throws IOException
Creates a CGIEnvironment and derives the necessary environment,
query parameters, working directory, cgi command, etc.
req
- HttpServletRequest for information provided by
the Servlet APIcontext
- ServletContext for information provided by the
Servlet API
blanksToString
protected String blanksToString(String couldBeBlank,
String subForBlanks)
Converts blank strings to another string
couldBeBlank
- string to be converted if necessarysubForBlanks
- string to return instead of a blank string
- a non-null string, either the original or the substitute
string if the original was
null
or empty ("")
expandCGIScript
protected void expandCGIScript()
Extracts requested resource from web app archive to context work
directory to enable CGI script to be executed.
findCGI
protected String[] findCGI(String pathInfo,
String webAppRootDir,
String contextPath,
String servletPath,
String cgiPathPrefix)
Resolves core information about the cgi script.
Example URI:
/servlet/cgigateway/dir1/realCGIscript/pathinfo1
- path = $CATALINA_HOME/mywebapp/dir1/realCGIscript
- scriptName = /servlet/cgigateway/dir1/realCGIscript
- cgiName = /dir1/realCGIscript
- name = realCGIscript
CGI search algorithm: search the real path below
<my-webapp-root> and find the first non-directory in
the getPathTranslated("/"), reading/searching from left-to-right.
The CGI search path will start at
webAppRootDir + File.separator + cgiPathPrefix
(or webAppRootDir alone if cgiPathPrefix is
null).
cgiPathPrefix is defined by setting
this servlet's cgiPathPrefix init parameter
pathInfo
- String from HttpServletRequest.getPathInfo()webAppRootDir
- String from context.getRealPath("/")contextPath
- String as from
HttpServletRequest.getContextPath()servletPath
- String as from
HttpServletRequest.getServletPath()cgiPathPrefix
- subdirectory of webAppRootDir below which
the web app's CGIs may be stored; can be null.
The CGI search path will start at
webAppRootDir + File.separator + cgiPathPrefix
(or webAppRootDir alone if cgiPathPrefix is
null). cgiPathPrefix is defined by setting
the servlet's cgiPathPrefix init parameter.
-
path
- full file-system path to valid cgi script,
or null if no cgi was found
-
scriptName
-
CGI variable SCRIPT_NAME; the full URL path
to valid cgi script or null if no cgi was
found
-
cgiName
- servlet pathInfo fragment corresponding to
the cgi script itself, or null if not found
-
name
- simple name (no directories) of the
cgi script, or null if no cgi was found
- Martin Dengler [root@martindengler.com]
- Tomcat 4.0
getCommand
protected String getCommand()
Gets derived command string
- command string
getEnvironment
protected Hashtable getEnvironment()
Gets derived CGI environment
- CGI environment
getParameters
protected ArrayList getParameters()
Gets derived CGI query parameters
- CGI query parameters
getWorkingDirectory
protected File getWorkingDirectory()
Gets derived CGI working directory
- working directory
isValid
protected boolean isValid()
Gets validity status
- true if this environment is valid, false
otherwise
nullsToBlanks
protected String nullsToBlanks(String s)
Converts null strings to blank strings ("")
s
- string to be converted if necessary
- a non-null string, either the original or the empty string
("") if the original was
null
nullsToString
protected String nullsToString(String couldBeNull,
String subForNulls)
Converts null strings to another string
couldBeNull
- string to be converted if necessarysubForNulls
- string to return instead of a null string
- a non-null string, either the original or the substitute
string if the original was
null
setCGIEnvironment
protected boolean setCGIEnvironment(HttpServletRequest req)
throws IOException
Constructs the CGI environment to be supplied to the invoked CGI
script; relies heavliy on Servlet API methods and findCGI
req
- request associated with the CGI
invokation
- true if environment was set OK, false if there
was a problem and no environment was set
setupFromContext
protected void setupFromContext(ServletContext context)
Uses the ServletContext to set some CGI variables
context
- ServletContext for information provided by the
Servlet API
setupFromRequest
protected void setupFromRequest(HttpServletRequest req)
Uses the HttpServletRequest to set most CGI variables
req
- HttpServletRequest for information provided by
the Servlet API
toString
public String toString()
Print important CGI environment information in a easy-to-read HTML
table
- HTML string containing CGI environment info
Copyright B) 2000-2003 Apache Software Foundation. All Rights Reserved.