# 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 #config 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
  Holds a servlet context and an associated path.
  SSIServletRequestUtil
  Utility methods for SSI servlet request handling.
  SSISet
  Implements the Server-side #set command.
  SSIStopProcessingException
  Exception used to tell SSIProcessor that it should stop processing SSI commands.