- 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:
java.lang.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, java.lang.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
Nested Classes Modifier and Type Class Description protected classServletHolder.Configstatic classServletHolder.JspContainerclassServletHolder.Registrationstatic interfaceServletHolder.WrapFunctionExperimental Wrapper mechanism for Servlet objects.static classServletHolder.Wrapper-
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
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringAPACHE_SENTINEL_CLASSstatic java.lang.StringJSP_GENERATED_PACKAGE_NAME
-
Constructor Summary
Constructors Constructor Description ServletHolder()Constructor .ServletHolder(jakarta.servlet.Servlet servlet)Constructor for existing servlet.ServletHolder(java.lang.Class<? extends jakarta.servlet.Servlet> servlet)Constructor for servlet class.ServletHolder(java.lang.String name, jakarta.servlet.Servlet servlet)Constructor for servlet class.ServletHolder(java.lang.String name, java.lang.Class<? extends jakarta.servlet.Servlet> servlet)Constructor for servlet class.ServletHolder(Source creator)Constructor .
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappendPath(java.lang.StringBuffer path, java.lang.String element)Concatenate an element on to fully qualified classname.voidcheckServletType()Check to ensure class of servlet is acceptable.intcompareTo(ServletHolder sh)Comparator by init order.protected jakarta.servlet.ServletcreateInstance()voiddestroyInstance(java.lang.Object o)voiddoStart()voiddoStop()voiddump(java.lang.Appendable out, java.lang.String indent)booleanequals(java.lang.Object o)java.lang.StringgetClassNameForJsp(java.lang.String jsp)org.eclipse.jetty.server.handler.ContextHandlergetContextHandler()java.lang.StringgetContextPath()java.lang.StringgetForcedPath()intgetInitOrder()java.lang.StringgetJspPackagePrefix()java.lang.StringgetNameOfJspClass(java.lang.String jsp)java.lang.StringgetPackageOfJspClass(java.lang.String jsp)jakarta.servlet.ServletRegistration.DynamicgetRegistration()java.util.Map<java.lang.String,java.lang.String>getRoleRefMap()java.lang.StringgetRunAsRole()jakarta.servlet.ServletgetServlet()Get the servlet.jakarta.servlet.ServletgetServletInstance()Get the servlet instance (no initialization done).jakarta.servlet.UnavailableExceptiongetUnavailableException()java.lang.StringgetUserRoleLink(java.lang.String name)get a user role link.voidhandle(org.eclipse.jetty.server.Request baseRequest, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response)Service a request with this servlet.inthashCode()voidinitialize()Do any setup necessary after startingprotected voidinitJspServlet()booleanisAvailable()booleanisEnabled()protected booleanisJspServlet()protected booleanisJspServlet(java.lang.String classname)protected jakarta.servlet.ServletnewInstance()protected voidprepare(org.eclipse.jetty.server.Request baseRequest, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response)Prepare to service a request.voidsetEnabled(boolean enabled)voidsetForcedPath(java.lang.String forcedPath)voidsetInitOrder(int order)Set the initialize order.voidsetRunAsRole(java.lang.String role)voidsetServlet(jakarta.servlet.Servlet servlet)voidsetUserRoleLink(java.lang.String name, java.lang.String link)Link a user role.java.lang.StringtoString()-
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
-
-
-
-
Field Detail
-
APACHE_SENTINEL_CLASS
public static final java.lang.String APACHE_SENTINEL_CLASS
- See Also:
- Constant Field Values
-
JSP_GENERATED_PACKAGE_NAME
public static final java.lang.String JSP_GENERATED_PACKAGE_NAME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ServletHolder
public ServletHolder()
Constructor .
-
ServletHolder
public ServletHolder(Source creator)
Constructor .- Parameters:
creator- the holder source
-
ServletHolder
public ServletHolder(jakarta.servlet.Servlet servlet)
Constructor for existing servlet.- Parameters:
servlet- the servlet
-
ServletHolder
public ServletHolder(java.lang.String name, java.lang.Class<? extends jakarta.servlet.Servlet> servlet)Constructor for servlet class.- Parameters:
name- the name of the servletservlet- the servlet class
-
ServletHolder
public ServletHolder(java.lang.String name, jakarta.servlet.Servlet servlet)Constructor for servlet class.- Parameters:
name- the servlet nameservlet- the servlet
-
ServletHolder
public ServletHolder(java.lang.Class<? extends jakarta.servlet.Servlet> servlet)
Constructor for servlet class.- Parameters:
servlet- the servlet class
-
-
Method Detail
-
getUnavailableException
public jakarta.servlet.UnavailableException getUnavailableException()
- Returns:
- The unavailable exception or null if not unavailable
-
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
public int compareTo(ServletHolder sh)
Comparator by init order.- Specified by:
compareToin interfacejava.lang.Comparable<ServletHolder>
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
setUserRoleLink
public void setUserRoleLink(java.lang.String name, java.lang.String link)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
public java.lang.String getUserRoleLink(java.lang.String name)
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
@ManagedAttribute(value="forced servlet path", readonly=true) public java.lang.String getForcedPath()- Returns:
- Returns the forcedPath.
-
setForcedPath
public void setForcedPath(java.lang.String forcedPath)
- Parameters:
forcedPath- The forcedPath to set.
-
isEnabled
public boolean isEnabled()
-
setEnabled
public void setEnabled(boolean enabled)
-
doStart
public void doStart() throws java.lang.Exception- Overrides:
doStartin classBaseHolder<jakarta.servlet.Servlet>- Throws:
java.lang.Exception
-
initialize
public void initialize() throws java.lang.ExceptionDescription copied from class:BaseHolderDo any setup necessary after starting- Overrides:
initializein classBaseHolder<jakarta.servlet.Servlet>- Throws:
java.lang.Exception- if unable to initialize
-
doStop
public void doStop() throws java.lang.Exception- Overrides:
doStopin classBaseHolder<jakarta.servlet.Servlet>- Throws:
java.lang.Exception
-
destroyInstance
public void destroyInstance(java.lang.Object o)
- Overrides:
destroyInstancein 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
protected void initJspServlet() throws java.lang.Exception- Throws:
java.lang.Exception- if unable to init the JSP Servlet
-
getContextHandler
public org.eclipse.jetty.server.handler.ContextHandler getContextHandler()
- Specified by:
getContextHandlerin interfaceorg.eclipse.jetty.server.UserIdentity.Scope
-
getContextPath
public java.lang.String getContextPath()
- Specified by:
getContextPathin interfaceorg.eclipse.jetty.server.UserIdentity.Scope
-
getRoleRefMap
public java.util.Map<java.lang.String,java.lang.String> getRoleRefMap()
- Specified by:
getRoleRefMapin interfaceorg.eclipse.jetty.server.UserIdentity.Scope
-
getRunAsRole
@ManagedAttribute(value="role to run servlet as", readonly=true) public java.lang.String getRunAsRole()
-
setRunAsRole
public void setRunAsRole(java.lang.String role)
-
prepare
protected void prepare(org.eclipse.jetty.server.Request baseRequest, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response) throws jakarta.servlet.ServletException, jakarta.servlet.UnavailableExceptionPrepare 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, java.io.IOExceptionService 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 unavailablejava.io.IOException- if unable to process the request or response
-
isJspServlet
protected boolean isJspServlet()
-
isJspServlet
protected boolean isJspServlet(java.lang.String classname)
-
getNameOfJspClass
public java.lang.String getNameOfJspClass(java.lang.String jsp)
- Parameters:
jsp- the jsp-file- Returns:
- the simple classname of the jsp
-
getPackageOfJspClass
public java.lang.String getPackageOfJspClass(java.lang.String jsp)
-
getJspPackagePrefix
public java.lang.String getJspPackagePrefix()
- Returns:
- the package for all jsps
-
getClassNameForJsp
public java.lang.String getClassNameForJsp(java.lang.String jsp)
- Parameters:
jsp- the jsp-file from web.xml- Returns:
- the fully qualified classname
-
appendPath
protected void appendPath(java.lang.StringBuffer path, java.lang.String element)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
protected jakarta.servlet.Servlet newInstance() throws java.lang.Exception- Returns:
- the newly created Servlet instance
- Throws:
jakarta.servlet.ServletException- if unable to create a new instancejava.lang.IllegalAccessException- if not allowed to create a new instancejava.lang.InstantiationException- if creating new instance resulted in errorjava.lang.NoSuchMethodException- if creating new instance resulted in errorjava.lang.reflect.InvocationTargetException- If creating new instance throws an exceptionjava.lang.Exception
-
createInstance
protected jakarta.servlet.Servlet createInstance() throws java.lang.Exception- Overrides:
createInstancein classBaseHolder<jakarta.servlet.Servlet>- Throws:
java.lang.Exception
-
dump
public void dump(java.lang.Appendable out, java.lang.String indent) throws java.io.IOException- Specified by:
dumpin interfaceorg.eclipse.jetty.util.component.Dumpable- Overrides:
dumpin classBaseHolder<jakarta.servlet.Servlet>- Throws:
java.io.IOException
-
-