# Class SSIServlet

java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
org.apache.catalina.ssi.SSIServlet

All Implemented Interfaces:
  `Serializable, Servlet, ServletConfig`

public class SSIServlet extends HttpServlet
Servlet to process SSI requests within a webpage. Mapped to a path from within web.xml.

See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected boolean`
  `allowExec`
  Allow exec (normally blocked for security)
  `protected boolean`
  `buffered`
  Should the output be buffered.
  `protected int`
  `debug`
  Debug level for this servlet.
  `protected Long`
  `expires`
  Expiration time in seconds for the doc.
  `protected String`
  `inputEncoding`
  Input encoding.
  `protected boolean`
  `isVirtualWebappRelative`
  virtual path can be webapp-relative
  `protected String`
  `outputEncoding`
  Output encoding.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SSIServlet()`
  Default constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `doGet(HttpServletRequest req, HttpServletResponse res)`
  Delegate the GET request to our `requestHandler()`.
  `void`
  `doPost(HttpServletRequest req, HttpServletResponse res)`
  Delegate the POST request to our `requestHandler()`.
  `void`
  `init()`
  Initialize the SSI servlet with configuration parameters.
  `protected void`
  `processSSI(HttpServletRequest req, HttpServletResponse res, URL resource)`
  Process SSI directives in the given resource.
  `protected void`
  `requestHandler(HttpServletRequest req, HttpServletResponse res)`
  Process our request and locate right SSI command.

  ### Methods inherited from class HttpServlet

  `doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service`

  ### Methods inherited from class GenericServlet

  `destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### debug

    protected int debug
    Debug level for this servlet.

  - ### buffered

    protected boolean buffered
    Should the output be buffered.

  - ### expires

    protected Long expires
    Expiration time in seconds for the doc.

  - ### isVirtualWebappRelative

    protected boolean isVirtualWebappRelative
    virtual path can be webapp-relative

  - ### inputEncoding

    protected String inputEncoding
    Input encoding. If not specified, uses platform default

  - ### outputEncoding

    protected String outputEncoding
    Output encoding. If not specified, uses platform default

  - ### allowExec

    protected boolean allowExec
    Allow exec (normally blocked for security)

- ## Constructor Details

  - ### SSIServlet

    public SSIServlet()
    Default constructor.

- ## Method Details

  - ### init

    public void init() throws ServletException
    Initialize the SSI servlet with configuration parameters.
    Overrides:
      `init` in class `GenericServlet`
    Throws:
      `ServletException` - if initialization fails

  - ### doGet

    public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
    Delegate the GET request to our `requestHandler()`.
    Overrides:
      `doGet` in class `HttpServlet`
    Parameters:
      `req` - a value of type 'HttpServletRequest'
      `res` - a value of type 'HttpServletResponse'
    Throws:
      `IOException` - if an error occurs
      `ServletException` - if an error occurs
    See Also:
      - `ServletResponse.setContentType(String)`

  - ### doPost

    public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
    Delegate the POST request to our `requestHandler()`.
    Overrides:
      `doPost` in class `HttpServlet`
    Parameters:
      `req` - a value of type 'HttpServletRequest'
      `res` - a value of type 'HttpServletResponse'
    Throws:
      `IOException` - if an error occurs
      `ServletException` - if an error occurs
    See Also:
      - `ServletOutputStream`
      - `ServletResponse.setContentType(String)`

  - ### requestHandler

    protected void requestHandler(HttpServletRequest req, HttpServletResponse res) throws IOException
    Process our request and locate right SSI command.
    Parameters:
      `req` - a value of type 'HttpServletRequest'
      `res` - a value of type 'HttpServletResponse'
    Throws:
      `IOException` - an IO error occurred

  - ### processSSI

    protected void processSSI(HttpServletRequest req, HttpServletResponse res, URL resource) throws IOException
    Process SSI directives in the given resource.
    Parameters:
      `req` - the HTTP servlet request
      `res` - the HTTP servlet response
      `resource` - the URL of the resource to process
    Throws:
      `IOException` - if an I/O error occurs