# Class SSIServlet

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

All Implemented Interfaces:
  `Servlet, ServletConfig, Serializable`

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.

### Fields inherited from class HttpServlet

`LEGACY_DO_HEAD`

## 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, init, service, service`

### Methods inherited from class GenericServlet

`destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, 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