org.apache.catalina.ssi

## Class SSIServletExternalResolver

- java.lang.Object
- - org.apache.catalina.ssi.SSIServletExternalResolver

- All Implemented Interfaces:
    SSIExternalResolver

      public class SSIServletExternalResolver
      extends java.lang.Object
      implements SSIExternalResolver

  An implementation of SSIExternalResolver that is used with servlets.
  Author:
    Dan Sandberg, David Becker

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `SSIServletExternalResolver.ServletContextAndPath`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ServletContext` | `context`
    `protected int` | `debug`
    `protected java.lang.String` | `inputEncoding`
    `protected boolean` | `isVirtualWebappRelative`
    `protected HttpServletRequest` | `req`
    `protected HttpServletResponse` | `res`
    `protected java.lang.String[]` | `VARIABLE_NAMES`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SSIServletExternalResolver(ServletContext context, HttpServletRequest req, HttpServletResponse res, boolean isVirtualWebappRelative, int debug, java.lang.String inputEncoding)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addVariableNames(java.util.Collection<java.lang.String> variableNames)` Adds any external variables to the variableNames collection.
    `protected java.lang.String` | `getAbsolutePath(java.lang.String path)`
    `protected java.lang.String` | `getCGIVariable(java.lang.String name)`
    `java.util.Date` | `getCurrentDate()` Returns the current date.
    `long` | `getFileLastModified(java.lang.String path, boolean virtual)`
    `long` | `getFileSize(java.lang.String path, boolean virtual)`
    `java.lang.String` | `getFileText(java.lang.String originalPath, boolean virtual)`
    `protected java.lang.String` | `getPathWithoutContext(java.lang.String contextPath, java.lang.String servletPath)`
    `protected java.lang.String` | `getPathWithoutFileName(java.lang.String servletPath)`
    `protected java.lang.Object` | `getReqAttributeIgnoreCase(java.lang.String targetName)`
    `protected SSIServletExternalResolver.ServletContextAndPath` | `getServletContextAndPath(java.lang.String originalPath, boolean virtual)`
    `protected SSIServletExternalResolver.ServletContextAndPath` | `getServletContextAndPathFromNonVirtualPath(java.lang.String nonVirtualPath)`
    `protected SSIServletExternalResolver.ServletContextAndPath` | `getServletContextAndPathFromVirtualPath(java.lang.String virtualPath)`
    `protected java.net.URLConnection` | `getURLConnection(java.lang.String originalPath, boolean virtual)`
    `java.lang.String` | `getVariableValue(java.lang.String name)`
    `protected boolean` | `isNameReserved(java.lang.String name)`
    `protected boolean` | `isRootContext(ServletContext servletContext)`
    `void` | `log(java.lang.String message, java.lang.Throwable throwable)`
    `protected java.lang.String` | `nullToEmptyString(java.lang.String string)`
    `void` | `setVariableValue(java.lang.String name, java.lang.String value)` Set the named variable to the specified value.

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### VARIABLE_NAMES

          protected final java.lang.String[] VARIABLE_NAMES

    - #### context

          protected ServletContext context

    - #### req

          protected HttpServletRequest req

    - #### res

          protected HttpServletResponse res

    - #### isVirtualWebappRelative

          protected boolean isVirtualWebappRelative

    - #### debug

          protected int debug

    - #### inputEncoding

          protected java.lang.String inputEncoding

  - ### Constructor Detail

    - #### SSIServletExternalResolver

          public SSIServletExternalResolver(ServletContext context,
                                    HttpServletRequest req,
                                    HttpServletResponse res,
                                    boolean isVirtualWebappRelative,
                                    int debug,
                                    java.lang.String inputEncoding)

  - ### Method Detail

    - #### log

          public void log(java.lang.String message,
                 java.lang.Throwable throwable)

      Specified by:
        `log` in interface `SSIExternalResolver`

    - #### addVariableNames

          public void addVariableNames(java.util.Collection<java.lang.String> variableNames)

      Description copied from interface: `SSIExternalResolver`
      Adds any external variables to the variableNames collection.
      Specified by:
        `addVariableNames` in interface `SSIExternalResolver`
      Parameters:
        `variableNames` - the collection to add to

    - #### getReqAttributeIgnoreCase

          protected java.lang.Object getReqAttributeIgnoreCase(java.lang.String targetName)

    - #### isNameReserved

          protected boolean isNameReserved(java.lang.String name)

    - #### setVariableValue

          public void setVariableValue(java.lang.String name,
                              java.lang.String value)

      Description copied from interface: `SSIExternalResolver`
      Set the named variable to the specified value. If value is null, then the variable will be removed ( ie. a call to getVariableValue will return null )
      Specified by:
        `setVariableValue` in interface `SSIExternalResolver`
      Parameters:
        `name` - of the variable
        `value` - of the variable

    - #### getVariableValue

          public java.lang.String getVariableValue(java.lang.String name)

      Specified by:
        `getVariableValue` in interface `SSIExternalResolver`

    - #### getCGIVariable

          protected java.lang.String getCGIVariable(java.lang.String name)

    - #### getCurrentDate

          public java.util.Date getCurrentDate()

      Description copied from interface: `SSIExternalResolver`
      Returns the current date. This is useful for putting the SSI stuff in a regression test. Since you can make the current date a constant, it makes testing easier since the output won't change.
      Specified by:
        `getCurrentDate` in interface `SSIExternalResolver`
      Returns:
        the data

    - #### nullToEmptyString

          protected java.lang.String nullToEmptyString(java.lang.String string)

    - #### getPathWithoutFileName

          protected java.lang.String getPathWithoutFileName(java.lang.String servletPath)

    - #### getPathWithoutContext

          protected java.lang.String getPathWithoutContext(java.lang.String contextPath,
                                               java.lang.String servletPath)

    - #### getAbsolutePath

          protected java.lang.String getAbsolutePath(java.lang.String path)
                                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getServletContextAndPathFromNonVirtualPath

          protected SSIServletExternalResolver.ServletContextAndPath getServletContextAndPathFromNonVirtualPath(java.lang.String nonVirtualPath)
                                                                                                         throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getServletContextAndPathFromVirtualPath

          protected SSIServletExternalResolver.ServletContextAndPath getServletContextAndPathFromVirtualPath(java.lang.String virtualPath)
                                                                                                      throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### isRootContext

          protected boolean isRootContext(ServletContext servletContext)

    - #### getServletContextAndPath

          protected SSIServletExternalResolver.ServletContextAndPath getServletContextAndPath(java.lang.String originalPath,
                                                                                  boolean virtual)
                                                                                       throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getURLConnection

          protected java.net.URLConnection getURLConnection(java.lang.String originalPath,
                                                boolean virtual)
                                                     throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getFileLastModified

          public long getFileLastModified(java.lang.String path,
                                 boolean virtual)
                                   throws java.io.IOException

      Specified by:
        `getFileLastModified` in interface `SSIExternalResolver`
      Throws:
        `java.io.IOException`

    - #### getFileSize

          public long getFileSize(java.lang.String path,
                         boolean virtual)
                           throws java.io.IOException

      Specified by:
        `getFileSize` in interface `SSIExternalResolver`
      Throws:
        `java.io.IOException`

    - #### getFileText

          public java.lang.String getFileText(java.lang.String originalPath,
                                     boolean virtual)
                                       throws java.io.IOException

      Specified by:
        `getFileText` in interface `SSIExternalResolver`
      Throws:
        `java.io.IOException`

Copyright © 2000-2015 Apache Software Foundation. All Rights Reserved.