Package org.apache.catalina
Interface Wrapper
- All Known Implementing Classes:
StandardWrapper
,Tomcat.ExistingStandardWrapper
A Wrapper is a Container that represents an individual servlet
definition from the deployment descriptor of the web application. It
provides a convenient mechanism to use Interceptors that see every single
request to the servlet represented by this definition.
Implementations of Wrapper are responsible for managing the servlet life cycle for their underlying servlet class, including calling init() and destroy() at appropriate times, as well as respecting the existence of the SingleThreadModel declaration on the servlet class itself.
The parent Container attached to a Wrapper will generally be an implementation of Context, representing the servlet context (and therefore the web application) within which this servlet executes.
Child Containers are not allowed on Wrapper implementations, so the
addChild()
method should throw an
IllegalArgumentException
.
- Author:
- Craig R. McClanahan
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Container event for adding a wrapper.static final String
Container event for removing a wrapper.Fields inherited from interface org.apache.catalina.Container
ADD_CHILD_EVENT, ADD_VALVE_EVENT, REMOVE_CHILD_EVENT, REMOVE_VALVE_EVENT
Fields inherited from interface org.apache.catalina.Lifecycle
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addInitParameter
(String name, String value) Add a new servlet initialization parameter for this servlet.void
addMapping
(String mapping) Add a mapping associated with the Wrapper.void
addSecurityReference
(String name, String link) Add a new security role reference record to the set of records for this servlet.allocate()
Allocate an initialized instance of this Servlet that is ready to have itsservice()
method called.void
deallocate
(Servlet servlet) Return this previously allocated servlet to the pool of available instances.findInitParameter
(String name) String[]
String[]
findSecurityReference
(String name) String[]
long
int
getRunAs()
String[]
Gets the names of the methods supported by the underlying servlet.void
Increment the error count value used when monitoring.boolean
Does the associated Servlet support async processing?boolean
Is the associated Servlet enabled?boolean
Is the Servlet overridable by a ServletContainerInitializer?boolean
void
load()
Load and initialize an instance of this Servlet, if there is not already at least one initialized instance.void
removeInitParameter
(String name) Remove the specified initialization parameter from this Servlet.void
removeMapping
(String mapping) Remove a mapping associated with the wrapper.void
Remove any security role reference for the specified role name.void
Deprecated.This will be removed in Tomcat 9.void
setAsyncSupported
(boolean asyncSupport) Set the async support for the associated Servlet.void
setAvailable
(long available) Set the available date/time for this servlet, in milliseconds since the epoch.void
setEnabled
(boolean enabled) Sets the enabled attribute for the associated servlet.void
setLoadOnStartup
(int value) Set the load-on-startup order value (negative value means load on first call).void
setMultipartConfigElement
(MultipartConfigElement multipartConfig) Set the multi-part configuration for the associated Servlet.void
setOverridable
(boolean overridable) Sets the overridable attribute for this Servlet.void
Set the run-as identity for this servlet.void
setServlet
(Servlet servlet) Set the associated Servlet instancevoid
setServletClass
(String servletClass) Set the fully qualified servlet class name for this servlet.void
setServletSecurityAnnotationScanRequired
(boolean b) Deprecated.This will be removed in Tomcat 9.void
unavailable
(UnavailableException unavailable) Process an UnavailableException, marking this Servlet as unavailable for the specified amount of time.void
unload()
Unload all initialized instances of this servlet, after calling thedestroy()
method for each instance.Methods inherited from interface org.apache.catalina.Container
addChild, addContainerListener, addPropertyChangeListener, backgroundProcess, findChild, findChildren, findContainerListeners, fireContainerEvent, getAccessLog, getBackgroundProcessorDelay, getCatalinaBase, getCatalinaHome, getCluster, getDomain, getLogger, getLogName, getMBeanKeyProperties, getName, getObjectName, getParent, getParentClassLoader, getPipeline, getRealm, getStartStopThreads, logAccess, removeChild, removeContainerListener, removePropertyChangeListener, setBackgroundProcessorDelay, setCluster, setName, setParent, setParentClassLoader, setRealm, setStartStopThreads
Methods inherited from interface org.apache.catalina.Lifecycle
addLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stop
-
Field Details
-
ADD_MAPPING_EVENT
Container event for adding a wrapper.- See Also:
-
REMOVE_MAPPING_EVENT
Container event for removing a wrapper.- See Also:
-
-
Method Details
-
getAvailable
long getAvailable()- Returns:
- the available date/time for this servlet, in milliseconds since the epoch. If this date/time is in the future, any request for this servlet will return an SC_SERVICE_UNAVAILABLE error. If it is zero, the servlet is currently available. A value equal to Long.MAX_VALUE is considered to mean that unavailability is permanent.
-
setAvailable
void setAvailable(long available) Set the available date/time for this servlet, in milliseconds since the epoch. If this date/time is in the future, any request for this servlet will return an SC_SERVICE_UNAVAILABLE error. A value equal to Long.MAX_VALUE is considered to mean that unavailability is permanent.- Parameters:
available
- The new available date/time
-
getLoadOnStartup
int getLoadOnStartup()- Returns:
- the load-on-startup order value (negative value means load on first call).
-
setLoadOnStartup
void setLoadOnStartup(int value) Set the load-on-startup order value (negative value means load on first call).- Parameters:
value
- New load-on-startup value
-
getRunAs
String getRunAs()- Returns:
- the run-as identity for this servlet.
-
setRunAs
Set the run-as identity for this servlet.- Parameters:
runAs
- New run-as identity value
-
getServletClass
String getServletClass()- Returns:
- the fully qualified servlet class name for this servlet.
-
setServletClass
Set the fully qualified servlet class name for this servlet.- Parameters:
servletClass
- Servlet class name
-
getServletMethods
Gets the names of the methods supported by the underlying servlet. This is the same set of methods included in the Allow response header in response to an OPTIONS request method processed by the underlying servlet.- Returns:
- Array of names of the methods supported by the underlying servlet
- Throws:
ServletException
- If the target servlet cannot be loaded
-
getServlet
Servlet getServlet()- Returns:
- the associated Servlet instance.
-
setServlet
Set the associated Servlet instance- Parameters:
servlet
- The associated Servlet
-
addInitParameter
Add a new servlet initialization parameter for this servlet.- Parameters:
name
- Name of this initialization parameter to addvalue
- Value of this initialization parameter to add
-
addMapping
Add a mapping associated with the Wrapper.- Parameters:
mapping
- The new wrapper mapping
-
addSecurityReference
Add a new security role reference record to the set of records for this servlet.- Parameters:
name
- Role name used within this servletlink
- Role name used within the web application
-
allocate
Allocate an initialized instance of this Servlet that is ready to have itsservice()
method called. If the Servlet class does not implementSingleThreadModel
, the (only) initialized instance may be returned immediately. If the Servlet class implementsSingleThreadModel
, the Wrapper implementation must ensure that this instance is not allocated again until it is deallocated by a call todeallocate()
.- Returns:
- a new Servlet instance
- Throws:
ServletException
- if the Servlet init() method threw an exceptionServletException
- if a loading error occurs
-
deallocate
Return this previously allocated servlet to the pool of available instances. If this servlet class does not implement SingleThreadModel, no action is actually required.- Parameters:
servlet
- The servlet to be returned- Throws:
ServletException
- if a deallocation error occurs
-
findInitParameter
- Parameters:
name
- Name of the requested initialization parameter- Returns:
- the value for the specified initialization parameter name,
if any; otherwise return
null
.
-
findInitParameters
String[] findInitParameters()- Returns:
- the names of all defined initialization parameters for this servlet.
-
findMappings
String[] findMappings()- Returns:
- the mappings associated with this wrapper.
-
findSecurityReference
- Parameters:
name
- Security role reference used within this servlet- Returns:
- the security role link for the specified security role
reference name, if any; otherwise return
null
.
-
findSecurityReferences
String[] findSecurityReferences()- Returns:
- the set of security role reference names associated with this servlet, if any; otherwise return a zero-length array.
-
incrementErrorCount
void incrementErrorCount()Increment the error count value used when monitoring. -
load
Load and initialize an instance of this Servlet, if there is not already at least one initialized instance. This can be used, for example, to load Servlets that are marked in the deployment descriptor to be loaded at server startup time.- Throws:
ServletException
- if the Servlet init() method threw an exception or if some other loading problem occurs
-
removeInitParameter
Remove the specified initialization parameter from this Servlet.- Parameters:
name
- Name of the initialization parameter to remove
-
removeMapping
Remove a mapping associated with the wrapper.- Parameters:
mapping
- The pattern to remove
-
removeSecurityReference
Remove any security role reference for the specified role name.- Parameters:
name
- Security role used within this servlet to be removed
-
unload
Unload all initialized instances of this servlet, after calling thedestroy()
method for each instance. This can be used, for example, prior to shutting down the entire servlet engine, or prior to reloading all of the classes from the Loader associated with our Loader's repository.- Throws:
ServletException
- if an unload error occurs
-
getMultipartConfigElement
MultipartConfigElement getMultipartConfigElement()- Returns:
- the multi-part configuration for the associated Servlet. If no
multi-part configuration has been defined, then
null
will be returned.
-
setMultipartConfigElement
Set the multi-part configuration for the associated Servlet. To clear the multi-part configuration specifynull
as the new value.- Parameters:
multipartConfig
- The configuration associated with the Servlet
-
isAsyncSupported
boolean isAsyncSupported()Does the associated Servlet support async processing? Defaults tofalse
.- Returns:
true
if the Servlet supports async
-
setAsyncSupported
void setAsyncSupported(boolean asyncSupport) Set the async support for the associated Servlet.- Parameters:
asyncSupport
- the new value
-
isEnabled
boolean isEnabled()Is the associated Servlet enabled? Defaults totrue
.- Returns:
true
if the Servlet is enabled
-
setEnabled
void setEnabled(boolean enabled) Sets the enabled attribute for the associated servlet.- Parameters:
enabled
- the new value
-
setServletSecurityAnnotationScanRequired
Deprecated.This will be removed in Tomcat 9.This method is no longer used. All implementations should be NO-OPs.- Parameters:
b
- Unused.
-
servletSecurityAnnotationScan
Deprecated.This will be removed in Tomcat 9.This method is no longer used. All implementations should be NO-OPs.- Throws:
ServletException
- Never thrown
-
isOverridable
boolean isOverridable()Is the Servlet overridable by a ServletContainerInitializer?- Returns:
true
if the Servlet can be overridden in a ServletContainerInitializer
-
setOverridable
void setOverridable(boolean overridable) Sets the overridable attribute for this Servlet.- Parameters:
overridable
- the new value
-