@ManagedObject(value="Servlet Handler") public class ServletHandler extends ScopedHandler
This handler maps requests to servlets that implement the javax.servlet.http.HttpServlet API.
This handler does not implement the full J2EE features and is intended to
be used directly when a full web application is not required. If a Web application is required,
then this handler should be used as part of a org.eclipse.jetty.webapp.WebAppContext
.
Unless run as part of a ServletContextHandler
or derivative, the initialize()
method must be called manually after start().
Modifier and Type | Class and Description |
---|---|
static class |
ServletHandler.Default404Servlet |
AbstractHandler.ErrorDispatchHandler
AbstractLifeCycle.AbstractLifeCycleListener
LifeCycle.Listener
Container.InheritedListener, Container.Listener
Modifier and Type | Field and Description |
---|---|
static String |
__DEFAULT_SERVLET |
Constructor and Description |
---|
ServletHandler()
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addFilter(FilterHolder filter)
Convenience method to add a preconstructed FilterHolder
|
void |
addFilter(FilterHolder filter,
FilterMapping filterMapping)
Convenience method to add a filter and mapping
|
FilterHolder |
addFilter(String className,
String pathSpec,
EnumSet<DispatcherType> dispatches)
Deprecated.
use
addFilterWithMapping(Class, String, EnumSet) instead |
void |
addFilterMapping(FilterMapping mapping)
Convenience method to add a preconstructed FilterMapping
|
FilterHolder |
addFilterWithMapping(Class<? extends Filter> filter,
String pathSpec,
EnumSet<DispatcherType> dispatches)
Convenience method to add a filter.
|
FilterHolder |
addFilterWithMapping(Class<? extends Filter> filter,
String pathSpec,
int dispatches)
Convenience method to add a filter.
|
void |
addFilterWithMapping(FilterHolder holder,
String pathSpec,
EnumSet<DispatcherType> dispatches)
Convenience method to add a filter.
|
void |
addFilterWithMapping(FilterHolder holder,
String pathSpec,
int dispatches)
Convenience method to add a filter.
|
FilterHolder |
addFilterWithMapping(String className,
String pathSpec,
EnumSet<DispatcherType> dispatches)
Convenience method to add a filter.
|
FilterHolder |
addFilterWithMapping(String className,
String pathSpec,
int dispatches)
Convenience method to add a filter.
|
void |
addListener(ListenerHolder listener)
Add a holder for a listener
|
void |
addServlet(ServletHolder holder)
Convenience method to add a pre-constructed ServletHolder.
|
void |
addServletMapping(ServletMapping mapping)
Convenience method to add a pre-constructed ServletMapping.
|
ServletHolder |
addServletWithMapping(Class<? extends Servlet> servlet,
String pathSpec)
Convenience method to add a servlet.
|
void |
addServletWithMapping(ServletHolder servlet,
String pathSpec)
Convenience method to add a servlet.
|
ServletHolder |
addServletWithMapping(String className,
String pathSpec)
Convenience method to add a servlet.
|
void |
doHandle(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response)
Do the handler work within the scope.
|
void |
doScope(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response)
Scope the handler
|
void |
dump(Appendable out,
String indent)
Dump this object (and children) into an Appendable using the provided indent after any new lines.
|
FilterHolder |
getFilter(String name) |
FilterMapping[] |
getFilterMappings() |
FilterHolder[] |
getFilters() |
MappedResource<ServletHolder> |
getHolderEntry(String target)
Deprecated.
|
ListenerHolder[] |
getListeners() |
MappedResource<ServletHolder> |
getMappedServlet(String target)
ServletHolder matching path.
|
int |
getMaxFilterChainsCacheSize() |
ServletHolder |
getServlet(String name) |
ServletContext |
getServletContext() |
ServletMapping |
getServletMapping(String pathSpec)
Get the ServletMapping matching the path
|
ServletMapping[] |
getServletMappings() |
ServletHolder[] |
getServlets() |
List<ServletHolder> |
getServlets(Class<?> clazz) |
void |
initialize()
Initialize filters and load-on-startup servlets.
|
boolean |
isAllowDuplicateMappings() |
boolean |
isAvailable() |
boolean |
isEnsureDefaultServlet() |
boolean |
isFilterChainsCached() |
boolean |
isInitialized() |
boolean |
isStartWithUnavailable() |
org.eclipse.jetty.servlet.ServletHandler.CachedChain |
newCachedChain(List<FilterHolder> filters,
ServletHolder servletHolder)
Create a new CachedChain
|
FilterHolder |
newFilterHolder(Source source) |
ListenerHolder |
newListenerHolder(Source source) |
ServletHolder |
newServletHolder(Source source)
Add a new servlet holder
|
void |
prependFilterMapping(FilterMapping mapping)
Convenience method to add a preconstructed FilterMapping
|
void |
setAllowDuplicateMappings(boolean allowDuplicateMappings) |
void |
setEnsureDefaultServlet(boolean ensureDefaultServlet) |
void |
setFilterChainsCached(boolean filterChainsCached) |
void |
setFilterMappings(FilterMapping[] filterMappings) |
void |
setFilters(FilterHolder[] holders) |
void |
setListeners(ListenerHolder[] listeners) |
void |
setMaxFilterChainsCacheSize(int maxFilterChainsCacheSize)
Set the maximum filter chain cache size.
|
void |
setServletMappings(ServletMapping[] servletMappings) |
void |
setServlets(ServletHolder[] holders)
Set Servlets.
|
Set<String> |
setServletSecurity(ServletRegistration.Dynamic registration,
ServletSecurityElement servletSecurityElement) |
void |
setStartWithUnavailable(boolean start) |
handle, nextHandle, nextScope
destroy, getHandler, getHandlers, insertHandler, setHandler
findContainerOf, getChildHandlerByClass, getChildHandlers, getChildHandlersByClass, setServer
getServer
addBean, addBean, addEventListener, addManaged, contains, dump, dump, dump, dump, dumpObject, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, unmanage, updateBean, updateBean, updateBeans
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop, toString
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, start, stop, stop
dumpContainer, dumpIterable, dumpMapEntries, dumpObjects, dumpSelf, named
public static final String __DEFAULT_SERVLET
public void dump(Appendable out, String indent) throws IOException
Dumpable
dump
in interface Dumpable
dump
in class ContainerLifeCycle
out
- The appendable to dump toindent
- The indent to apply after any new lines.IOException
- if unable to write to Appendablepublic boolean isEnsureDefaultServlet()
ServletHandler.Default404Servlet
if no other
default servlet is configured.public void setEnsureDefaultServlet(boolean ensureDefaultServlet)
ensureDefaultServlet
- true if ServletHandler always has a default servlet, using ServletHandler.Default404Servlet
if no other
default servlet is configured.@ManagedAttribute(value="filters", readonly=true) public FilterMapping[] getFilterMappings()
@ManagedAttribute(value="filters", readonly=true) public FilterHolder[] getFilters()
@Deprecated public MappedResource<ServletHolder> getHolderEntry(String target)
getMappedServlet(String)
target
- Path within _context or servlet namepublic ServletContext getServletContext()
@ManagedAttribute(value="mappings of servlets", readonly=true) public ServletMapping[] getServletMappings()
public ServletMapping getServletMapping(String pathSpec)
pathSpec
- the path spec@ManagedAttribute(value="servlets", readonly=true) public ServletHolder[] getServlets()
public List<ServletHolder> getServlets(Class<?> clazz)
public ServletHolder getServlet(String name)
public void doScope(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
ScopedHandler
Derived implementations should call ScopedHandler.nextScope(String, Request, HttpServletRequest, HttpServletResponse)
doScope
in class ScopedHandler
target
- The target of the request - either a URI or a name.baseRequest
- The original unwrapped request object.request
- The request either as the Request
object or a wrapper of that request. The
HttpConnection.getCurrentConnection()
.getHttpChannel()
.getRequest()
method can be used access the Request object if required.response
- The response as the Response
object or a wrapper of that request. The
HttpConnection.getCurrentConnection()
.getHttpChannel()
.getResponse()
method can be used access the Response object if required.IOException
- if unable to handle the request or response processingServletException
- if unable to handle the request or response due to underlying servlet issuepublic void doHandle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
ScopedHandler
Derived implementations should call ScopedHandler.nextHandle(String, Request, HttpServletRequest, HttpServletResponse)
doHandle
in class ScopedHandler
target
- The target of the request - either a URI or a name.baseRequest
- The original unwrapped request object.request
- The request either as the Request
object or a wrapper of that request. The
HttpConnection.getCurrentConnection()
.getHttpChannel()
.getRequest()
method can be used access the Request object if required.response
- The response as the Response
object or a wrapper of that request. The
HttpConnection.getCurrentConnection()
.getHttpChannel()
.getResponse()
method can be used access the Response object if required.IOException
- if unable to handle the request or response processingServletException
- if unable to handle the request or response due to underlying servlet issuepublic MappedResource<ServletHolder> getMappedServlet(String target)
target
- Path within _context or servlet namepublic boolean isAvailable()
public void setStartWithUnavailable(boolean start)
start
- True if this handler will start with unavailable servletspublic boolean isAllowDuplicateMappings()
public void setAllowDuplicateMappings(boolean allowDuplicateMappings)
allowDuplicateMappings
- the allowDuplicateMappings to setpublic boolean isStartWithUnavailable()
public void initialize() throws Exception
Exception
- if unable to initializepublic boolean isInitialized()
public boolean isFilterChainsCached()
public void addListener(ListenerHolder listener)
listener
- the listener for the holderpublic ListenerHolder[] getListeners()
public void setListeners(ListenerHolder[] listeners)
public ListenerHolder newListenerHolder(Source source)
public org.eclipse.jetty.servlet.ServletHandler.CachedChain newCachedChain(List<FilterHolder> filters, ServletHolder servletHolder)
filters
- the filter chain to be cached as a collection of FilterHolder
servletHolder
- the servletHolderCachedChain
instancepublic ServletHolder newServletHolder(Source source)
source
- the holder sourcepublic ServletHolder addServletWithMapping(String className, String pathSpec)
className
- the class namepathSpec
- the path specpublic ServletHolder addServletWithMapping(Class<? extends Servlet> servlet, String pathSpec)
servlet
- the servlet classpathSpec
- the path specpublic void addServletWithMapping(ServletHolder servlet, String pathSpec)
servlet
- servlet holder to addpathSpec
- servlet mappings for the servletHolderpublic void addServlet(ServletHolder holder)
holder
- the servlet holderpublic void addServletMapping(ServletMapping mapping)
mapping
- the servlet mappingpublic Set<String> setServletSecurity(ServletRegistration.Dynamic registration, ServletSecurityElement servletSecurityElement)
public FilterHolder newFilterHolder(Source source)
public FilterHolder getFilter(String name)
public FilterHolder addFilterWithMapping(Class<? extends Filter> filter, String pathSpec, EnumSet<DispatcherType> dispatches)
filter
- class of filter to createpathSpec
- filter mappings for filterdispatches
- see FilterMapping.setDispatches(int)
public FilterHolder addFilterWithMapping(String className, String pathSpec, EnumSet<DispatcherType> dispatches)
className
- of filterpathSpec
- filter mappings for filterdispatches
- see FilterMapping.setDispatches(int)
public void addFilterWithMapping(FilterHolder holder, String pathSpec, EnumSet<DispatcherType> dispatches)
holder
- filter holder to addpathSpec
- filter mappings for filterdispatches
- see FilterMapping.setDispatches(int)
public FilterHolder addFilterWithMapping(Class<? extends Filter> filter, String pathSpec, int dispatches)
filter
- class of filter to createpathSpec
- filter mappings for filterdispatches
- see FilterMapping.setDispatches(int)
public FilterHolder addFilterWithMapping(String className, String pathSpec, int dispatches)
className
- of filterpathSpec
- filter mappings for filterdispatches
- see FilterMapping.setDispatches(int)
public void addFilterWithMapping(FilterHolder holder, String pathSpec, int dispatches)
holder
- filter holder to addpathSpec
- filter mappings for filterdispatches
- see FilterMapping.setDispatches(int)
@Deprecated public FilterHolder addFilter(String className, String pathSpec, EnumSet<DispatcherType> dispatches)
addFilterWithMapping(Class, String, EnumSet)
insteadclassName
- the filter class namepathSpec
- the path specdispatches
- the dispatcher types for this filterpublic void addFilter(FilterHolder filter, FilterMapping filterMapping)
filter
- the filter holderfilterMapping
- the filter mappingpublic void addFilter(FilterHolder filter)
filter
- the filter holderpublic void addFilterMapping(FilterMapping mapping)
mapping
- the filter mappingpublic void prependFilterMapping(FilterMapping mapping)
mapping
- the filter mappingpublic void setFilterChainsCached(boolean filterChainsCached)
filterChainsCached
- The filterChainsCached to set.public void setFilterMappings(FilterMapping[] filterMappings)
filterMappings
- The filterMappings to set.public void setFilters(FilterHolder[] holders)
public void setServletMappings(ServletMapping[] servletMappings)
servletMappings
- The servletMappings to set.public void setServlets(ServletHolder[] holders)
holders
- Array of servlets to definepublic int getMaxFilterChainsCacheSize()
public void setMaxFilterChainsCacheSize(int maxFilterChainsCacheSize)
isFilterChainsCached()
is true. If the max cache size
is greater than zero, then the cache is flushed whenever it grows to be this size.maxFilterChainsCacheSize
- the maximum number of entries in a filter chain cache.Copyright © 2010 - 2020 Adobe. All Rights Reserved