Package org.apache.catalina.servlets
Class CGIServlet.CGIEnvironment
- java.lang.Object
-
- org.apache.catalina.servlets.CGIServlet.CGIEnvironment
-
- Enclosing class:
- CGIServlet
protected class CGIServlet.CGIEnvironment extends Object
Encapsulates the CGI environment and rules to derive that environment from the servlet container and request information.- Since:
- Tomcat 4.0
- Version:
- $Revision: 1.4 $, $Date: 2006/09/06 16:02:28 $
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
CGIEnvironment(jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.ServletContext context)
Creates a CGIEnvironment and derives the necessary environment, query parameters, working directory, cgi command, etc.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
blanksToString(String couldBeBlank, String subForBlanks)
Converts blank strings to another stringprotected 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 stringprotected Hashtable<String,String>
getEnvironment()
Gets derived CGI environmentprotected ArrayList<String>
getParameters()
Gets derived CGI query parametersprotected File
getWorkingDirectory()
Gets derived CGI working directoryprotected boolean
isValid()
Gets validity statusprotected String
nullsToBlanks(String s)
Converts null strings to blank strings ("")protected String
nullsToString(String couldBeNull, String subForNulls)
Converts null strings to another stringprotected boolean
setCGIEnvironment(jakarta.servlet.http.HttpServletRequest req)
Constructs the CGI environment to be supplied to the invoked CGI script; relies heavily on Servlet API methods and findCGIprotected void
setupFromContext(jakarta.servlet.ServletContext context)
Uses the ServletContext to set some CGI variablesprotected void
setupFromRequest(jakarta.servlet.http.HttpServletRequest req)
Uses the HttpServletRequest to set most CGI variablesprotected String
stripRequestURI(String reqURI)
If the stripRequestURI is specified and the requestURI starts with it, the stripRequestURI is lopped off in in the returned value.String
toString()
Print important CGI environment information in a easy-to-read HTML table
-
-
-
Constructor Detail
-
CGIEnvironment
protected CGIEnvironment(jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.ServletContext context) throws IOException
Creates a CGIEnvironment and derives the necessary environment, query parameters, working directory, cgi command, etc.- Parameters:
req
- HttpServletRequest for information provided by the Servlet APIcontext
- ServletContext for information provided by the Servlet API- Throws:
IOException
-
-
Method Detail
-
setupFromContext
protected void setupFromContext(jakarta.servlet.ServletContext context)
Uses the ServletContext to set some CGI variables- Parameters:
context
- ServletContext for information provided by the Servlet API
-
setupFromRequest
protected void setupFromRequest(jakarta.servlet.http.HttpServletRequest req) throws UnsupportedEncodingException
Uses the HttpServletRequest to set most CGI variables- Parameters:
req
- HttpServletRequest for information provided by the Servlet API- Throws:
UnsupportedEncodingException
-
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
- Parameters:
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.- Returns:
-
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
-
- Since:
- Tomcat 4.0
-
setCGIEnvironment
protected boolean setCGIEnvironment(jakarta.servlet.http.HttpServletRequest req) throws IOException
Constructs the CGI environment to be supplied to the invoked CGI script; relies heavily on Servlet API methods and findCGI- Parameters:
req
- request associated with the CGI invokation- Returns:
- true if environment was set OK, false if there was a problem and no environment was set
- Throws:
IOException
-
stripRequestURI
protected String stripRequestURI(String reqURI)
If the stripRequestURI is specified and the requestURI starts with it, the stripRequestURI is lopped off in in the returned value. Else, the requestURI is returned as is
-
expandCGIScript
protected void expandCGIScript()
Extracts requested resource from web app archive to context work directory to enable CGI script to be executed.
-
toString
public String toString()
Print important CGI environment information in a easy-to-read HTML table
-
getCommand
protected String getCommand()
Gets derived command string- Returns:
- command string
-
getWorkingDirectory
protected File getWorkingDirectory()
Gets derived CGI working directory- Returns:
- working directory
-
getEnvironment
protected Hashtable<String,String> getEnvironment()
Gets derived CGI environment- Returns:
- CGI environment
-
getParameters
protected ArrayList<String> getParameters()
Gets derived CGI query parameters- Returns:
- CGI query parameters
-
isValid
protected boolean isValid()
Gets validity status- Returns:
- true if this environment is valid, false otherwise
-
nullsToBlanks
protected String nullsToBlanks(String s)
Converts null strings to blank strings ("")- Parameters:
s
- string to be converted if necessary- Returns:
- 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- Parameters:
couldBeNull
- string to be converted if necessarysubForNulls
- string to return instead of a null string- Returns:
- a non-null string, either the original or the substitute
string if the original was
null
-
blanksToString
protected String blanksToString(String couldBeBlank, String subForBlanks)
Converts blank strings to another string- Parameters:
couldBeBlank
- string to be converted if necessarysubForBlanks
- string to return instead of a blank string- Returns:
- a non-null string, either the original or the substitute
string if the original was
null
or empty ("")
-
-