Package 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 Description protected static class
SSIServletExternalResolver.ServletContextAndPath
-
Field Summary
Fields Modifier and Type Field 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 Description SSIServletExternalResolver(ServletContext context, HttpServletRequest req, HttpServletResponse res, boolean isVirtualWebappRelative, int debug, java.lang.String inputEncoding)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.
-
-
-
Field Detail
-
VARIABLE_NAMES
protected final java.lang.String[] VARIABLE_NAMES
-
context
protected final ServletContext context
-
req
protected final HttpServletRequest req
-
res
protected final HttpServletResponse res
-
isVirtualWebappRelative
protected final boolean isVirtualWebappRelative
-
debug
protected final int debug
-
inputEncoding
protected final 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 interfaceSSIExternalResolver
-
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 interfaceSSIExternalResolver
- 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 interfaceSSIExternalResolver
- Parameters:
name
- of the variablevalue
- of the variable
-
getVariableValue
public java.lang.String getVariableValue(java.lang.String name)
- Specified by:
getVariableValue
in interfaceSSIExternalResolver
-
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 interfaceSSIExternalResolver
- 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 interfaceSSIExternalResolver
- Throws:
java.io.IOException
-
getFileSize
public long getFileSize(java.lang.String path, boolean virtual) throws java.io.IOException
- Specified by:
getFileSize
in interfaceSSIExternalResolver
- Throws:
java.io.IOException
-
getFileText
public java.lang.String getFileText(java.lang.String originalPath, boolean virtual) throws java.io.IOException
- Specified by:
getFileText
in interfaceSSIExternalResolver
- Throws:
java.io.IOException
-
-