# 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.
  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.