Package org.eclipse.jetty.servlets
Class CGI
- java.lang.Object
-
- javax.servlet.GenericServlet
-
- javax.servlet.http.HttpServlet
-
- org.eclipse.jetty.servlets.CGI
-
- All Implemented Interfaces:
java.io.Serializable,javax.servlet.Servlet,javax.servlet.ServletConfig
public class CGI extends javax.servlet.http.HttpServletCGI Servlet.The following init parameters are used to configure this servlet:
- cgibinResourceBase
- Path to the cgi bin directory if set or it will default to the resource base of the context.
- resourceBase
- An alias for cgibinResourceBase.
- cgibinResourceBaseIsRelative
- If true then cgibinResourceBase is relative to the webapp (eg "WEB-INF/cgi")
- commandPrefix
- may be used to set a prefix to all commands passed to exec. This can be used on systems that need assistance to execute a particular file type. For example on windows this can be set to "perl" so that perl scripts are executed.
- Path
- passed to the exec environment as PATH.
- ENV_*
- used to set an arbitrary environment variable with the name stripped of the leading ENV_ and using the init parameter value
- useFullPath
- If true, the full URI path within the context is used for the exec command, otherwise a search is done for a partial URL that matches an exec Command
- ignoreExitState
- If true then do not act on a non-zero exec exit status")
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classCGI.EnvListprivate utility class that manages the Environment passed to exec.
-
Field Summary
Fields Modifier and Type Field Description private boolean_cgiBinProvidedprivate java.lang.String_cmdPrefixprivate java.io.File_docRootprivate CGI.EnvList_envprivate boolean_ignoreExitStateprivate boolean_okprivate java.lang.String_pathprivate boolean_relativeprivate boolean_useFullPathprivate static LoggerLOGprivate static longserialVersionUID
-
Constructor Summary
Constructors Constructor Description CGI()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidexec(java.io.File command, java.lang.String pathInfo, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)executes the CGI processprivate static java.lang.StringgetTextLineFromStream(java.io.InputStream is)Utility method to get a line of text from the input stream.voidinit()voidservice(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)private static voidwriteProcessInput(java.lang.Process p, java.io.InputStream input, int len)private static voidwriteProcessInput(java.lang.Process p, java.lang.String input)-
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
LOG
private static final Logger LOG
-
_ok
private boolean _ok
-
_docRoot
private java.io.File _docRoot
-
_cgiBinProvided
private boolean _cgiBinProvided
-
_path
private java.lang.String _path
-
_cmdPrefix
private java.lang.String _cmdPrefix
-
_useFullPath
private boolean _useFullPath
-
_env
private CGI.EnvList _env
-
_ignoreExitState
private boolean _ignoreExitState
-
_relative
private boolean _relative
-
-
Method Detail
-
init
public void init() throws javax.servlet.ServletException- Overrides:
initin classjavax.servlet.GenericServlet- Throws:
javax.servlet.ServletException
-
service
public void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) throws javax.servlet.ServletException, java.io.IOException- Overrides:
servicein classjavax.servlet.http.HttpServlet- Throws:
javax.servlet.ServletExceptionjava.io.IOException
-
exec
private void exec(java.io.File command, java.lang.String pathInfo, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) throws java.io.IOExceptionexecutes the CGI process- Parameters:
command- the command to execute, this command is prefixed by the context parameter "commandPrefix".pathInfo- The PATH_INFO to process, see http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getPathInfo%28%29. Cannot be nullreq- the HTTP requestres- the HTTP response- Throws:
java.io.IOException- if the execution of the CGI process throws
-
writeProcessInput
private static void writeProcessInput(java.lang.Process p, java.lang.String input)
-
writeProcessInput
private static void writeProcessInput(java.lang.Process p, java.io.InputStream input, int len)
-
getTextLineFromStream
private static java.lang.String getTextLineFromStream(java.io.InputStream is) throws java.io.IOExceptionUtility method to get a line of text from the input stream.- Parameters:
is- the input stream- Returns:
- the line of text
- Throws:
java.io.IOException- if reading from the input stream throws
-
-