java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.servlet.BaseHolder<T>
org.eclipse.jetty.servlet.Holder<jakarta.servlet.Servlet>
org.eclipse.jetty.servlet.ServletHolder
- All Implemented Interfaces:
Comparable<ServletHolder>
,org.eclipse.jetty.server.UserIdentity.Scope
,org.eclipse.jetty.util.component.Dumpable
,org.eclipse.jetty.util.component.LifeCycle
@ManagedObject("Servlet Holder")
public class ServletHolder
extends Holder<jakarta.servlet.Servlet>
implements org.eclipse.jetty.server.UserIdentity.Scope, Comparable<ServletHolder>
Servlet Instance and Context Holder.
Holds the name, params and some state of a jakarta.servlet.Servlet instance. It implements the ServletConfig interface. This class will organise the loading of the servlet when needed or requested.
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
static enum
class
static interface
Experimental Wrapper mechanism for Servlet objects.static class
Nested classes/interfaces inherited from class org.eclipse.jetty.servlet.Holder
Holder.HolderConfig, Holder.HolderRegistration
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopException
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
org.eclipse.jetty.util.component.Dumpable.DumpableContainer
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
org.eclipse.jetty.util.component.LifeCycle.Listener
-
Field Summary
Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
FAILED, STARTED, STARTING, STOPPED, STOPPING
Fields inherited from interface org.eclipse.jetty.util.component.Dumpable
KEY
-
Constructor Summary
ConstructorDescriptionConstructor .ServletHolder
(jakarta.servlet.Servlet servlet) Constructor for existing servlet.ServletHolder
(Class<? extends jakarta.servlet.Servlet> servlet) Constructor for servlet class.ServletHolder
(String name, jakarta.servlet.Servlet servlet) Constructor for servlet class.ServletHolder
(String name, Class<? extends jakarta.servlet.Servlet> servlet) Constructor for servlet class.ServletHolder
(Source creator) Constructor . -
Method Summary
Modifier and TypeMethodDescriptionprotected void
appendPath
(StringBuffer path, String element) Concatenate an element on to fully qualified classname.void
Check to ensure class of servlet is acceptable.int
Comparator by init order.protected jakarta.servlet.Servlet
void
void
doStart()
void
doStop()
void
dump
(Appendable out, String indent) boolean
getClassNameForJsp
(String jsp) org.eclipse.jetty.server.handler.ContextHandler
int
getNameOfJspClass
(String jsp) jakarta.servlet.ServletRegistration.Dynamic
jakarta.servlet.Servlet
Get the servlet.jakarta.servlet.Servlet
Get the servlet instance (no initialization done).jakarta.servlet.UnavailableException
getUserRoleLink
(String name) get a user role link.void
handle
(org.eclipse.jetty.server.Request baseRequest, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response) Service a request with this servlet.int
hashCode()
void
Do any setup necessary after startingprotected void
boolean
boolean
protected boolean
protected boolean
isJspServlet
(String classname) protected jakarta.servlet.Servlet
protected void
prepare
(org.eclipse.jetty.server.Request baseRequest, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response) Prepare to service a request.void
setEnabled
(boolean enabled) void
setForcedPath
(String forcedPath) void
setInitOrder
(int order) Set the initialize order.void
setRunAsRole
(String role) void
setServlet
(jakarta.servlet.Servlet servlet) void
setUserRoleLink
(String name, String link) Link a user role.toString()
Methods inherited from class org.eclipse.jetty.servlet.Holder
dump, getDisplayName, getInitParameter, getInitParameterNames, getInitParameters, getName, isAsyncSupported, setAsyncSupported, setClassName, setDisplayName, setHeldClass, setInitParameter, setInitParameters, setInstance, setName
Methods inherited from class org.eclipse.jetty.servlet.BaseHolder
getClassName, getHeldClass, getInstance, getServletContext, getServletHandler, getSource, illegalStateIfContextStarted, isInstance, setServletHandler, unwrap, wrap
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addEventListener, getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, setEventListeners, start, stop
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable
dumpSelf
Methods inherited from interface org.eclipse.jetty.server.UserIdentity.Scope
getName
-
Field Details
-
APACHE_SENTINEL_CLASS
- See Also:
-
JSP_GENERATED_PACKAGE_NAME
- See Also:
-
-
Constructor Details
-
ServletHolder
public ServletHolder()Constructor . -
ServletHolder
Constructor .- Parameters:
creator
- the holder source
-
ServletHolder
public ServletHolder(jakarta.servlet.Servlet servlet) Constructor for existing servlet.- Parameters:
servlet
- the servlet
-
ServletHolder
Constructor for servlet class.- Parameters:
name
- the name of the servletservlet
- the servlet class
-
ServletHolder
Constructor for servlet class.- Parameters:
name
- the servlet nameservlet
- the servlet
-
ServletHolder
Constructor for servlet class.- Parameters:
servlet
- the servlet class
-
-
Method Details
-
setServlet
public void setServlet(jakarta.servlet.Servlet servlet) -
getInitOrder
@ManagedAttribute(value="initialization order", readonly=true) public int getInitOrder() -
setInitOrder
public void setInitOrder(int order) Set the initialize order.Holders with order<0, are initialized on use. Those with order>=0 are initialized in increasing order when the handler is started.
- Parameters:
order
- the servlet init order
-
compareTo
Comparator by init order.- Specified by:
compareTo
in interfaceComparable<ServletHolder>
-
equals
-
hashCode
public int hashCode() -
setUserRoleLink
Link a user role. Translate the role name used by a servlet, to the link name used by the container.- Parameters:
name
- The role name as used by the servletlink
- The role name as used by the container.
-
getUserRoleLink
get a user role link.- Parameters:
name
- The name of the role- Returns:
- The name as translated by the link. If no link exists, the name is returned.
-
getForcedPath
- Returns:
- Returns the forcedPath.
-
setForcedPath
- Parameters:
forcedPath
- The forcedPath to set.
-
isEnabled
public boolean isEnabled() -
setEnabled
public void setEnabled(boolean enabled) -
doStart
- Overrides:
doStart
in classBaseHolder<jakarta.servlet.Servlet>
- Throws:
Exception
-
initialize
Description copied from class:BaseHolder
Do any setup necessary after starting- Overrides:
initialize
in classBaseHolder<jakarta.servlet.Servlet>
- Throws:
Exception
- if unable to initialize
-
doStop
- Overrides:
doStop
in classBaseHolder<jakarta.servlet.Servlet>
- Throws:
Exception
-
destroyInstance
- Overrides:
destroyInstance
in classHolder<jakarta.servlet.Servlet>
-
getServlet
public jakarta.servlet.Servlet getServlet() throws jakarta.servlet.ServletExceptionGet the servlet.- Returns:
- The servlet
- Throws:
jakarta.servlet.ServletException
- if unable to init the servlet on first use
-
getServletInstance
public jakarta.servlet.Servlet getServletInstance()Get the servlet instance (no initialization done).- Returns:
- The servlet or null
-
checkServletType
public void checkServletType() throws jakarta.servlet.UnavailableExceptionCheck to ensure class of servlet is acceptable.- Throws:
jakarta.servlet.UnavailableException
- if Servlet class is not of typeServlet
-
isAvailable
public boolean isAvailable()- Returns:
- true if the holder is started and is not unavailable
-
initJspServlet
- Throws:
Exception
- if unable to init the JSP Servlet
-
getContextHandler
public org.eclipse.jetty.server.handler.ContextHandler getContextHandler()- Specified by:
getContextHandler
in interfaceorg.eclipse.jetty.server.UserIdentity.Scope
-
getContextPath
- Specified by:
getContextPath
in interfaceorg.eclipse.jetty.server.UserIdentity.Scope
-
getRoleRefMap
- Specified by:
getRoleRefMap
in interfaceorg.eclipse.jetty.server.UserIdentity.Scope
-
getRunAsRole
-
setRunAsRole
-
prepare
protected void prepare(org.eclipse.jetty.server.Request baseRequest, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response) throws jakarta.servlet.ServletException, jakarta.servlet.UnavailableException Prepare to service a request.- Parameters:
baseRequest
- the base requestrequest
- the requestresponse
- the response- Throws:
jakarta.servlet.ServletException
- if unable to prepare the servletjakarta.servlet.UnavailableException
- if not available
-
handle
public void handle(org.eclipse.jetty.server.Request baseRequest, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response) throws jakarta.servlet.ServletException, jakarta.servlet.UnavailableException, IOException Service a request with this servlet.- Parameters:
baseRequest
- the base requestrequest
- the requestresponse
- the response- Throws:
jakarta.servlet.ServletException
- if unable to process the servletjakarta.servlet.UnavailableException
- if servlet is unavailableIOException
- if unable to process the request or response
-
isJspServlet
protected boolean isJspServlet() -
isJspServlet
-
getNameOfJspClass
- Parameters:
jsp
- the jsp-file- Returns:
- the simple classname of the jsp
-
getPackageOfJspClass
-
getJspPackagePrefix
- Returns:
- the package for all jsps
-
getClassNameForJsp
- Parameters:
jsp
- the jsp-file from web.xml- Returns:
- the fully qualified classname
-
appendPath
Concatenate an element on to fully qualified classname.- Parameters:
path
- the path under constructionelement
- the element of the name to add
-
getRegistration
public jakarta.servlet.ServletRegistration.Dynamic getRegistration() -
newInstance
- Returns:
- the newly created Servlet instance
- Throws:
jakarta.servlet.ServletException
- if unable to create a new instanceIllegalAccessException
- if not allowed to create a new instanceInstantiationException
- if creating new instance resulted in errorNoSuchMethodException
- if creating new instance resulted in errorInvocationTargetException
- If creating new instance throws an exceptionException
-
createInstance
- Overrides:
createInstance
in classBaseHolder<jakarta.servlet.Servlet>
- Throws:
Exception
-
dump
- Specified by:
dump
in interfaceorg.eclipse.jetty.util.component.Dumpable
- Overrides:
dump
in classBaseHolder<jakarta.servlet.Servlet>
- Throws:
IOException
-
toString