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.HttpServlet
CGI 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 class
CGI.EnvList
private utility class that manages the Environment passed to exec.
-
Field Summary
Fields Modifier and Type Field Description private boolean
_cgiBinProvided
private java.lang.String
_cmdPrefix
private java.io.File
_docRoot
private CGI.EnvList
_env
private boolean
_ignoreExitState
private boolean
_ok
private java.lang.String
_path
private boolean
_relative
private boolean
_useFullPath
private static Logger
LOG
private static long
serialVersionUID
-
Constructor Summary
Constructors Constructor Description CGI()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
exec(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.String
getTextLineFromStream(java.io.InputStream is)
Utility method to get a line of text from the input stream.void
init()
void
service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
private static void
writeProcessInput(java.lang.Process p, java.io.InputStream input, int len)
private static void
writeProcessInput(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:
init
in 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:
service
in classjavax.servlet.http.HttpServlet
- Throws:
javax.servlet.ServletException
java.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.IOException
executes 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.IOException
Utility 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
-
-