org.mortbay.jetty.handler
Class ContextHandler
java.lang.Object
org.mortbay.component.AbstractLifeCycle
org.mortbay.jetty.handler.AbstractHandler
org.mortbay.jetty.handler.AbstractHandlerContainer
org.mortbay.jetty.handler.HandlerWrapper
org.mortbay.jetty.handler.ContextHandler
- All Implemented Interfaces:
- LifeCycle, Handler, HandlerContainer, Server.Graceful, Attributes
- Direct Known Subclasses:
- Context, MovedContextHandler
public class ContextHandler
- extends HandlerWrapper
- implements Attributes, Server.Graceful
ContextHandler.
This handler wraps a call to handle by setting the context and
servlet path, plus setting the context classloader.
Note. Because of http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4425695
directly replacing war or jar files in a context is not supported.
You should use classes instead of jars if they will change, or deploy
a packed war file that gets extracted on deployment.
- Author:
- gregw
_scontext
protected ContextHandler.SContext _scontext
ContextHandler
public ContextHandler()
ContextHandler
protected ContextHandler(ContextHandler.SContext context)
ContextHandler
public ContextHandler(String contextPath)
ContextHandler
public ContextHandler(HandlerContainer parent,
String contextPath)
getCurrentContext
public static ContextHandler.SContext getCurrentContext()
- Get the current ServletContext implementation.
This call is only valid during a call to doStart and is available to
nested handlers to access the context.
- Returns:
- ServletContext implementation
getServletContext
public ContextHandler.SContext getServletContext()
getAllowNullPathInfo
public boolean getAllowNullPathInfo()
- Returns:
- the allowNullPathInfo true if /context is not redirected to /context/
setAllowNullPathInfo
public void setAllowNullPathInfo(boolean allowNullPathInfo)
- Parameters:
allowNullPathInfo
- true if /context is not redirected to /context/
setServer
public void setServer(Server server)
- Specified by:
setServer
in interface Handler
- Overrides:
setServer
in class HandlerWrapper
setVirtualHosts
public void setVirtualHosts(String[] vhosts)
- Set the virtual hosts for the context.
Only requests that have a matching host header or fully qualified
URL will be passed to that context with a virtual host name.
A context with no virtual host names or a null virtual host name is
available to all requests that are not served by a context with a
matching virtual host name.
- Parameters:
vhosts
- Array of virtual hosts that this context responds to. A
null host name or null/empty array means any hostname is acceptable.
Host names may String representation of IP addresses.
getVirtualHosts
public String[] getVirtualHosts()
- Get the virtual hosts for the context.
Only requests that have a matching host header or fully qualified
URL will be passed to that context with a virtual host name.
A context with no virtual host names or a null virtual host name is
available to all requests that are not served by a context with a
matching virtual host name.
- Returns:
- Array of virtual hosts that this context responds to. A
null host name or empty array means any hostname is acceptable.
Host names may be String representation of IP addresses.
setHosts
public void setHosts(String[] hosts)
- Deprecated. use
setConnectorNames(String[])
getHosts
public String[] getHosts()
- Deprecated.
- Get the hosts for the context.
getConnectorNames
public String[] getConnectorNames()
- Returns:
- an array of connector names that this context
will accept a request from.
setConnectorNames
public void setConnectorNames(String[] connectors)
- Set the names of accepted connectors.
Names are either "host:port" or a specific configured name for a connector.
- Parameters:
connectors
- If non null, an array of connector names that this context
will accept a request from.
getAttribute
public Object getAttribute(String name)
- Specified by:
getAttribute
in interface Attributes
getAttributeNames
public Enumeration getAttributeNames()
- Specified by:
getAttributeNames
in interface Attributes
getAttributes
public Attributes getAttributes()
- Returns:
- Returns the attributes.
getClassLoader
public ClassLoader getClassLoader()
- Returns:
- Returns the classLoader.
getClassPath
public String getClassPath()
- Make best effort to extract a file classpath from the context classloader
- Returns:
- Returns the classLoader.
getContextPath
public String getContextPath()
- Returns:
- Returns the _contextPath.
getInitParameter
public String getInitParameter(String name)
getInitParameterNames
public Enumeration getInitParameterNames()
getInitParams
public Map getInitParams()
- Returns:
- Returns the initParams.
getDisplayName
public String getDisplayName()
getEventListeners
public EventListener[] getEventListeners()
setEventListeners
public void setEventListeners(EventListener[] eventListeners)
addEventListener
public void addEventListener(EventListener listener)
isShutdown
public boolean isShutdown()
- Returns:
- true if this context is accepting new requests
setShutdown
public void setShutdown(boolean shutdown)
- Set shutdown status.
This field allows for graceful shutdown of a context. A started context may be put into non accepting state so
that existing requests can complete, but no new requests are accepted.
- Specified by:
setShutdown
in interface Server.Graceful
- Parameters:
accepting
- true if this context is accepting new requests
doStart
protected void doStart()
throws Exception
- Overrides:
doStart
in class HandlerWrapper
- Throws:
Exception
startContext
protected void startContext()
throws Exception
- Throws:
Exception
doStop
protected void doStop()
throws Exception
- Overrides:
doStop
in class HandlerWrapper
- Throws:
Exception
handle
public void handle(String target,
HttpServletRequest request,
HttpServletResponse response,
int dispatch)
throws IOException,
ServletException
- Description copied from interface:
Handler
- Handle a request.
- Specified by:
handle
in interface Handler
- Overrides:
handle
in class HandlerWrapper
- Parameters:
target
- The target of the request - either a URI or a name.request
- The request either as the Request
object or a wrapper of that request. The HttpConnection.getCurrentConnection()
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()
method can be used access the Response object if required.dispatch
- The dispatch mode: Handler.REQUEST
, Handler.FORWARD
, Handler.INCLUDE
, Handler.ERROR
- Throws:
IOException
ServletException
isProtectedTarget
protected boolean isProtectedTarget(String target)
- Check the target.
Called by
handle(String, HttpServletRequest, HttpServletResponse, int)
when a
target within a context is determined. If the target is protected, 404 is returned.
The default implementation always returns false.
- See Also:
WebAppContext.isProtectedTarget(String)
removeAttribute
public void removeAttribute(String name)
- Specified by:
removeAttribute
in interface Attributes
setAttribute
public void setAttribute(String name,
Object value)
- Specified by:
setAttribute
in interface Attributes
setAttributes
public void setAttributes(Attributes attributes)
- Parameters:
attributes
- The attributes to set.
clearAttributes
public void clearAttributes()
- Specified by:
clearAttributes
in interface Attributes
setClassLoader
public void setClassLoader(ClassLoader classLoader)
- Parameters:
classLoader
- The classLoader to set.
setContextPath
public void setContextPath(String contextPath)
- Parameters:
contextPath
- The _contextPath to set.
setInitParams
public void setInitParams(Map initParams)
- Parameters:
initParams
- The initParams to set.
setDisplayName
public void setDisplayName(String servletContextName)
- Parameters:
servletContextName
- The servletContextName to set.
getBaseResource
public Resource getBaseResource()
- Returns:
- Returns the resourceBase.
getResourceBase
public String getResourceBase()
- Returns:
- Returns the base resource as a string.
setBaseResource
public void setBaseResource(Resource base)
- Parameters:
base
- The resourceBase to set.
setResourceBase
public void setResourceBase(String resourceBase)
- Parameters:
resourceBase
- The base resource as a string.
getMimeTypes
public MimeTypes getMimeTypes()
- Returns:
- Returns the mimeTypes.
setMimeTypes
public void setMimeTypes(MimeTypes mimeTypes)
- Parameters:
mimeTypes
- The mimeTypes to set.
setWelcomeFiles
public void setWelcomeFiles(String[] files)
getWelcomeFiles
public String[] getWelcomeFiles()
- Returns:
- The names of the files which the server should consider to be welcome files in this context.
- See Also:
- The Servlet Specification,
setWelcomeFiles(java.lang.String[])
getErrorHandler
public ErrorHandler getErrorHandler()
- Returns:
- Returns the errorHandler.
setErrorHandler
public void setErrorHandler(ErrorHandler errorHandler)
- Parameters:
errorHandler
- The errorHandler to set.
getMaxFormContentSize
public int getMaxFormContentSize()
setMaxFormContentSize
public void setMaxFormContentSize(int maxSize)
toString
public String toString()
- Overrides:
toString
in class AbstractHandler
loadClass
public Class loadClass(String className)
throws ClassNotFoundException
- Throws:
ClassNotFoundException
addLocaleEncoding
public void addLocaleEncoding(String locale,
String encoding)
getLocaleEncoding
public String getLocaleEncoding(Locale locale)
- Get the character encoding for a locale. The full locale name is first
looked up in the map of encodings. If no encoding is found, then the
locale language is looked up.
- Parameters:
locale
- a Locale
value
- Returns:
- a
String
representing the character encoding for
the locale or null if none found.
getResource
public Resource getResource(String path)
throws MalformedURLException
- Throws:
MalformedURLException
getResourcePaths
public Set getResourcePaths(String path)