# Package org.apache.catalina.ssi

package org.apache.catalina.ssi

This package contains code that is used by the SsiInvoker.

This class consists of `SsiMediator.java` which works as a mediator between the different SsiCommands. To add a command you have to implement the `SsiCommand` interface and extend the `SsiMediator`. Commands currently implemented are

- SsiConfig - Implementation of the NCSA command Config i.e. <!--#config errmsg="error?"-->
- SsiEcho - Implementation of the NCSA command Echo i.e. <!--#echo var="SERVER_NAME"-->
- SsiExec - Not implemented
- SsiFlastMod - Implementation of the NCSA command flastmod i.e. <!--#flastmod virtual="file"-->
- SsiFsize - Implementation of the NCSA command fsize i.e. <!--#fsize file="file"-->
- SsiInclude - Implementation of the NCSA command Include i.e. <!--#config virtual="includefile"-->

Related Packages
Package
Description
org.apache.catalina
Class
Description
ByteArrayServletOutputStream
Class that extends ServletOutputStream, used as a wrapper from within `SsiInclude`
ExpressionParseTree
Represents a parsed expression.
ExpressionTokenizer
Parses an expression string to return the individual tokens.
ResponseIncludeWrapper
An HttpServletResponseWrapper, used from `SSIServletExternalResolver`.
SSICommand
The interface that all SSI commands ( SSIEcho, SSIInclude, ...) must implement.
SSIConditional
SSI command that handles all conditional directives.
SSIConditionalState
This class is used by SSIMediator and SSIConditional to keep track of state information necessary to process the nested conditional commands ( if, elif, else, endif ).
SSIConfig
Implements the Server-side #exec command.
SSIEcho
Return the result associated with the supplied Server Variable.
SSIExec
Implements the Server-side #exec command.
SSIExternalResolver
Interface used by SSIMediator to talk to the 'outside world' ( usually a servlet ).
SSIFilter
Filter to process SSI requests within a webpage.
SSIFlastmod
Implements the Server-side #flastmod command.
SSIFsize
Implements the Server-side #fsize command.
SSIInclude
Implements the Server-side #include command.
SSIMediator
Allows the different SSICommand implementations to share data/talk to each other.
SSIPrintenv
Implements the Server-side #printenv command.
SSIProcessor
The entry point to SSI processing.
SSIServlet
Servlet to process SSI requests within a webpage.
SSIServletExternalResolver
An implementation of SSIExternalResolver that is used with servlets.
SSIServletExternalResolver.ServletContextAndPath
SSIServletRequestUtil
SSISet
Implements the Server-side #set command.
SSIStopProcessingException
Exception used to tell SSIProcessor that it should stop processing SSI commands.