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 classSSIServletExternalResolver.ServletContextAndPath
-
Field Summary
Fields Modifier and Type Field Description protected ServletContextcontextprotected intdebugprotected java.lang.StringinputEncodingprotected booleanisVirtualWebappRelativeprotected HttpServletRequestreqprotected HttpServletResponseresprotected 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 voidaddVariableNames(java.util.Collection<java.lang.String> variableNames)Adds any external variables to the variableNames collection.protected java.lang.StringgetAbsolutePath(java.lang.String path)protected java.lang.StringgetCGIVariable(java.lang.String name)java.util.DategetCurrentDate()Returns the current date.longgetFileLastModified(java.lang.String path, boolean virtual)longgetFileSize(java.lang.String path, boolean virtual)java.lang.StringgetFileText(java.lang.String originalPath, boolean virtual)protected java.lang.StringgetPathWithoutContext(java.lang.String contextPath, java.lang.String servletPath)protected java.lang.StringgetPathWithoutFileName(java.lang.String servletPath)protected java.lang.ObjectgetReqAttributeIgnoreCase(java.lang.String targetName)protected SSIServletExternalResolver.ServletContextAndPathgetServletContextAndPath(java.lang.String originalPath, boolean virtual)protected SSIServletExternalResolver.ServletContextAndPathgetServletContextAndPathFromNonVirtualPath(java.lang.String nonVirtualPath)protected SSIServletExternalResolver.ServletContextAndPathgetServletContextAndPathFromVirtualPath(java.lang.String virtualPath)protected java.net.URLConnectiongetURLConnection(java.lang.String originalPath, boolean virtual)java.lang.StringgetVariableValue(java.lang.String name)protected booleanisNameReserved(java.lang.String name)protected booleanisRootContext(ServletContext servletContext)voidlog(java.lang.String message, java.lang.Throwable throwable)protected java.lang.StringnullToEmptyString(java.lang.String string)voidsetVariableValue(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:
login interfaceSSIExternalResolver
-
addVariableNames
public void addVariableNames(java.util.Collection<java.lang.String> variableNames)
Description copied from interface:SSIExternalResolverAdds any external variables to the variableNames collection.- Specified by:
addVariableNamesin 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:SSIExternalResolverSet 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:
setVariableValuein interfaceSSIExternalResolver- Parameters:
name- of the variablevalue- of the variable
-
getVariableValue
public java.lang.String getVariableValue(java.lang.String name)
- Specified by:
getVariableValuein interfaceSSIExternalResolver
-
getCGIVariable
protected java.lang.String getCGIVariable(java.lang.String name)
-
getCurrentDate
public java.util.Date getCurrentDate()
Description copied from interface:SSIExternalResolverReturns 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:
getCurrentDatein 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:
getFileLastModifiedin interfaceSSIExternalResolver- Throws:
java.io.IOException
-
getFileSize
public long getFileSize(java.lang.String path, boolean virtual) throws java.io.IOException- Specified by:
getFileSizein interfaceSSIExternalResolver- Throws:
java.io.IOException
-
getFileText
public java.lang.String getFileText(java.lang.String originalPath, boolean virtual) throws java.io.IOException- Specified by:
getFileTextin interfaceSSIExternalResolver- Throws:
java.io.IOException
-
-