<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.14.1) on Mon Apr 04 09:09:38 CDT 2022 -->
<title>ContextHandlerCollection (Eclipse Jetty API Doc - v10.0.9)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-04-04">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="ContextHandlerCollection (Eclipse Jetty API Doc - v10.0.9)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ContextHandlerCollection.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.jetty.server.handler</a></div>
<h2 title="Class ContextHandlerCollection" class="title">Class ContextHandlerCollection</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">org.eclipse.jetty.util.component.AbstractLifeCycle</a></li>
<li>
<ul class="inheritance">
<li><a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">org.eclipse.jetty.util.component.ContainerLifeCycle</a></li>
<li>
<ul class="inheritance">
<li><a href="AbstractHandler.html" title="class in org.eclipse.jetty.server.handler">org.eclipse.jetty.server.handler.AbstractHandler</a></li>
<li>
<ul class="inheritance">
<li><a href="AbstractHandlerContainer.html" title="class in org.eclipse.jetty.server.handler">org.eclipse.jetty.server.handler.AbstractHandlerContainer</a></li>
<li>
<ul class="inheritance">
<li><a href="HandlerCollection.html" title="class in org.eclipse.jetty.server.handler">org.eclipse.jetty.server.handler.HandlerCollection</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.server.handler.ContextHandlerCollection</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../Handler.html" title="interface in org.eclipse.jetty.server">Handler</a></code>, <code><a href="../HandlerContainer.html" title="interface in org.eclipse.jetty.server">HandlerContainer</a></code>, <code><a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></code>, <code><a href="../../util/component/Destroyable.html" title="interface in org.eclipse.jetty.util.component">Destroyable</a></code>, <code><a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></code>, <code><a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></code>, <code><a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></code></dd>
</dl>
<hr>
<pre><a href="../../util/annotation/ManagedObject.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedObject</a>("Context Handler Collection")
public class <span class="typeNameLabel">ContextHandlerCollection</span>
extends <a href="HandlerCollection.html" title="class in org.eclipse.jetty.server.handler">HandlerCollection</a></pre>
<div class="block">This <a href="HandlerCollection.html" title="class in org.eclipse.jetty.server.handler"><code>HandlerCollection</code></a> is creates a
 Map of contexts to it's contained handlers based
 on the context path and virtual hosts of any contained <a href="ContextHandler.html" title="class in org.eclipse.jetty.server.handler"><code>ContextHandler</code></a>s.
 The contexts do not need to be directly contained, only children of the contained handlers.
 Multiple contexts may have the same context path and they are called in order until one
 handles the request.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.server.handler.HandlerCollection">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.eclipse.jetty.server.handler.<a href="HandlerCollection.html" title="class in org.eclipse.jetty.server.handler">HandlerCollection</a></h3>
<code><a href="HandlerCollection.Handlers.html" title="class in org.eclipse.jetty.server.handler">HandlerCollection.Handlers</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.server.handler.AbstractHandler">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.eclipse.jetty.server.handler.<a href="AbstractHandler.html" title="class in org.eclipse.jetty.server.handler">AbstractHandler</a></h3>
<code><a href="AbstractHandler.ErrorDispatchHandler.html" title="class in org.eclipse.jetty.server.handler">AbstractHandler.ErrorDispatchHandler</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.AbstractLifeCycleListener.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.AbstractLifeCycleListener</a>, <a href="../../util/component/AbstractLifeCycle.StopException.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.StopException</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.Container">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></h3>
<code><a href="../../util/component/Container.InheritedListener.html" title="interface in org.eclipse.jetty.util.component">Container.InheritedListener</a>, <a href="../../util/component/Container.Listener.html" title="interface in org.eclipse.jetty.util.component">Container.Listener</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.Dumpable">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.LifeCycle">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></h3>
<code><a href="../../util/component/LifeCycle.Listener.html" title="interface in org.eclipse.jetty.util.component">LifeCycle.Listener</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.server.handler.HandlerCollection">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.jetty.server.handler.<a href="HandlerCollection.html" title="class in org.eclipse.jetty.server.handler">HandlerCollection</a></h3>
<code><a href="HandlerCollection.html#_handlers">_handlers</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.html#FAILED">FAILED</a>, <a href="../../util/component/AbstractLifeCycle.html#STARTED">STARTED</a>, <a href="../../util/component/AbstractLifeCycle.html#STARTING">STARTING</a>, <a href="../../util/component/AbstractLifeCycle.html#STOPPED">STOPPED</a>, <a href="../../util/component/AbstractLifeCycle.html#STOPPING">STOPPING</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.util.component.Dumpable">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.html#KEY">KEY</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ContextHandlerCollection</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.eclipse.jetty.server.handler.ContextHandler...)">ContextHandlerCollection</a></span>&#8203;(<a href="ContextHandler.html" title="class in org.eclipse.jetty.server.handler">ContextHandler</a>...&nbsp;contexts)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deployHandler(org.eclipse.jetty.server.Handler,org.eclipse.jetty.util.Callback)">deployHandler</a></span>&#8203;(<a href="../Handler.html" title="interface in org.eclipse.jetty.server">Handler</a>&nbsp;handler,
             <a href="../../util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback)</code></th>
<td class="colLast">
<div class="block">Thread safe deploy of a Handler.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handle(java.lang.String,org.eclipse.jetty.server.Request,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)">handle</a></span>&#8203;(java.lang.String&nbsp;target,
      <a href="../Request.html" title="class in org.eclipse.jetty.server">Request</a>&nbsp;baseRequest,
      javax.servlet.http.HttpServletRequest&nbsp;request,
      javax.servlet.http.HttpServletResponse&nbsp;response)</code></th>
<td class="colLast">
<div class="block">Handle a request.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mapContexts()">mapContexts</a></span>()</code></th>
<td class="colLast">
<div class="block">Remap the contexts.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected <a href="HandlerCollection.Handlers.html" title="class in org.eclipse.jetty.server.handler">HandlerCollection.Handlers</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newHandlers(org.eclipse.jetty.server.Handler%5B%5D)">newHandlers</a></span>&#8203;(<a href="../Handler.html" title="interface in org.eclipse.jetty.server">Handler</a>[]&nbsp;handlers)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#undeployHandler(org.eclipse.jetty.server.Handler,org.eclipse.jetty.util.Callback)">undeployHandler</a></span>&#8203;(<a href="../Handler.html" title="interface in org.eclipse.jetty.server">Handler</a>&nbsp;handler,
               <a href="../../util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback)</code></th>
<td class="colLast">
<div class="block">Thread safe undeploy of a Handler.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.server.handler.HandlerCollection">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.server.handler.<a href="HandlerCollection.html" title="class in org.eclipse.jetty.server.handler">HandlerCollection</a></h3>
<code><a href="HandlerCollection.html#addHandler(org.eclipse.jetty.server.Handler)">addHandler</a>, <a href="HandlerCollection.html#destroy()">destroy</a>, <a href="HandlerCollection.html#expandChildren(java.util.List,java.lang.Class)">expandChildren</a>, <a href="HandlerCollection.html#getHandlers()">getHandlers</a>, <a href="HandlerCollection.html#prependHandler(org.eclipse.jetty.server.Handler)">prependHandler</a>, <a href="HandlerCollection.html#removeHandler(org.eclipse.jetty.server.Handler)">removeHandler</a>, <a href="HandlerCollection.html#setHandlers(org.eclipse.jetty.server.Handler%5B%5D)">setHandlers</a>, <a href="HandlerCollection.html#updateHandlers(org.eclipse.jetty.server.handler.HandlerCollection.Handlers,org.eclipse.jetty.server.handler.HandlerCollection.Handlers)">updateHandlers</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.server.handler.AbstractHandlerContainer">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.server.handler.<a href="AbstractHandlerContainer.html" title="class in org.eclipse.jetty.server.handler">AbstractHandlerContainer</a></h3>
<code><a href="AbstractHandlerContainer.html#expandHandler(org.eclipse.jetty.server.Handler,java.util.List,java.lang.Class)">expandHandler</a>, <a href="AbstractHandlerContainer.html#findContainerOf(org.eclipse.jetty.server.HandlerContainer,java.lang.Class,org.eclipse.jetty.server.Handler)">findContainerOf</a>, <a href="AbstractHandlerContainer.html#getChildHandlerByClass(java.lang.Class)">getChildHandlerByClass</a>, <a href="AbstractHandlerContainer.html#getChildHandlers()">getChildHandlers</a>, <a href="AbstractHandlerContainer.html#getChildHandlersByClass(java.lang.Class)">getChildHandlersByClass</a>, <a href="AbstractHandlerContainer.html#setServer(org.eclipse.jetty.server.Server)">setServer</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.server.handler.AbstractHandler">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.server.handler.<a href="AbstractHandler.html" title="class in org.eclipse.jetty.server.handler">AbstractHandler</a></h3>
<code><a href="AbstractHandler.html#doError(java.lang.String,org.eclipse.jetty.server.Request,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)">doError</a>, <a href="AbstractHandler.html#doStart()">doStart</a>, <a href="AbstractHandler.html#doStop()">doStop</a>, <a href="AbstractHandler.html#getServer()">getServer</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.ContainerLifeCycle">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a></h3>
<code><a href="../../util/component/ContainerLifeCycle.html#addBean(java.lang.Object)">addBean</a>, <a href="../../util/component/ContainerLifeCycle.html#addBean(java.lang.Object,boolean)">addBean</a>, <a href="../../util/component/ContainerLifeCycle.html#addEventListener(java.util.EventListener)">addEventListener</a>, <a href="../../util/component/ContainerLifeCycle.html#addManaged(org.eclipse.jetty.util.component.LifeCycle)">addManaged</a>, <a href="../../util/component/ContainerLifeCycle.html#contains(java.lang.Object)">contains</a>, <a href="../../util/component/ContainerLifeCycle.html#dump()">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dump(java.lang.Appendable)">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dump(java.lang.Appendable,java.lang.String)">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dumpObjects(java.lang.Appendable,java.lang.String,java.lang.Object...)">dumpObjects</a>, <a href="../../util/component/ContainerLifeCycle.html#dumpStdErr()">dumpStdErr</a>, <a href="../../util/component/ContainerLifeCycle.html#getBean(java.lang.Class)">getBean</a>, <a href="../../util/component/ContainerLifeCycle.html#getBeans()">getBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getBeans(java.lang.Class)">getBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getContainedBeans(java.lang.Class)">getContainedBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getContainedBeans(java.lang.Class,java.util.Collection)">getContainedBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#isAuto(java.lang.Object)">isAuto</a>, <a href="../../util/component/ContainerLifeCycle.html#isManaged(java.lang.Object)">isManaged</a>, <a href="../../util/component/ContainerLifeCycle.html#isUnmanaged(java.lang.Object)">isUnmanaged</a>, <a href="../../util/component/ContainerLifeCycle.html#manage(java.lang.Object)">manage</a>, <a href="../../util/component/ContainerLifeCycle.html#removeBean(java.lang.Object)">removeBean</a>, <a href="../../util/component/ContainerLifeCycle.html#removeBeans()">removeBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#removeEventListener(java.util.EventListener)">removeEventListener</a>, <a href="../../util/component/ContainerLifeCycle.html#setBeans(java.util.Collection)">setBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#start(org.eclipse.jetty.util.component.LifeCycle)">start</a>, <a href="../../util/component/ContainerLifeCycle.html#stop(org.eclipse.jetty.util.component.LifeCycle)">stop</a>, <a href="../../util/component/ContainerLifeCycle.html#unmanage(java.lang.Object)">unmanage</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBean(java.lang.Object,java.lang.Object)">updateBean</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBean(java.lang.Object,java.lang.Object,boolean)">updateBean</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBeans(java.lang.Object%5B%5D,java.lang.Object%5B%5D)">updateBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBeans(java.util.Collection,java.util.Collection)">updateBeans</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.html#getEventListeners()">getEventListeners</a>, <a href="../../util/component/AbstractLifeCycle.html#getState()">getState</a>, <a href="../../util/component/AbstractLifeCycle.html#getState(org.eclipse.jetty.util.component.LifeCycle)">getState</a>, <a href="../../util/component/AbstractLifeCycle.html#isFailed()">isFailed</a>, <a href="../../util/component/AbstractLifeCycle.html#isRunning()">isRunning</a>, <a href="../../util/component/AbstractLifeCycle.html#isStarted()">isStarted</a>, <a href="../../util/component/AbstractLifeCycle.html#isStarting()">isStarting</a>, <a href="../../util/component/AbstractLifeCycle.html#isStopped()">isStopped</a>, <a href="../../util/component/AbstractLifeCycle.html#isStopping()">isStopping</a>, <a href="../../util/component/AbstractLifeCycle.html#setEventListeners(java.util.Collection)">setEventListeners</a>, <a href="../../util/component/AbstractLifeCycle.html#start()">start</a>, <a href="../../util/component/AbstractLifeCycle.html#stop()">stop</a>, <a href="../../util/component/AbstractLifeCycle.html#toString()">toString</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.Container">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></h3>
<code><a href="../../util/component/Container.html#getCachedBeans(java.lang.Class)">getCachedBeans</a>, <a href="../../util/component/Container.html#getEventListeners()">getEventListeners</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.Dumpable">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.html#dumpSelf()">dumpSelf</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.Dumpable.DumpableContainer">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></h3>
<code><a href="../../util/component/Dumpable.DumpableContainer.html#isDumpable(java.lang.Object)">isDumpable</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.LifeCycle">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></h3>
<code><a href="../../util/component/LifeCycle.html#addEventListener(java.util.EventListener)">addEventListener</a>, <a href="../../util/component/LifeCycle.html#isFailed()">isFailed</a>, <a href="../../util/component/LifeCycle.html#isRunning()">isRunning</a>, <a href="../../util/component/LifeCycle.html#isStarted()">isStarted</a>, <a href="../../util/component/LifeCycle.html#isStarting()">isStarting</a>, <a href="../../util/component/LifeCycle.html#isStopped()">isStopped</a>, <a href="../../util/component/LifeCycle.html#isStopping()">isStopping</a>, <a href="../../util/component/LifeCycle.html#removeEventListener(java.util.EventListener)">removeEventListener</a>, <a href="../../util/component/LifeCycle.html#start()">start</a>, <a href="../../util/component/LifeCycle.html#stop()">stop</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ContextHandlerCollection</h4>
<pre>public&nbsp;ContextHandlerCollection()</pre>
</li>
</ul>
<a id="&lt;init&gt;(org.eclipse.jetty.server.handler.ContextHandler...)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ContextHandlerCollection</h4>
<pre>public&nbsp;ContextHandlerCollection&#8203;(<a href="ContextHandler.html" title="class in org.eclipse.jetty.server.handler">ContextHandler</a>...&nbsp;contexts)</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="mapContexts()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapContexts</h4>
<pre class="methodSignature"><a href="../../util/annotation/ManagedOperation.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedOperation</a>("Update the mapping of context path to context")
public&nbsp;void&nbsp;mapContexts()</pre>
<div class="block">Remap the contexts.  Normally this is not required as context
 mapping is maintained as a side effect of <a href="HandlerCollection.html#setHandlers(org.eclipse.jetty.server.Handler%5B%5D)"><code>HandlerCollection.setHandlers(Handler[])</code></a>
 However, if configuration changes in the deep handler structure (eg contextpath is changed), then
 this call will trigger a remapping.
 This method is mutually excluded from <a href="#deployHandler(org.eclipse.jetty.server.Handler,org.eclipse.jetty.util.Callback)"><code>deployHandler(Handler, Callback)</code></a> and
 <a href="#undeployHandler(org.eclipse.jetty.server.Handler,org.eclipse.jetty.util.Callback)"><code>undeployHandler(Handler, Callback)</code></a></div>
</li>
</ul>
<a id="newHandlers(org.eclipse.jetty.server.Handler[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newHandlers</h4>
<pre class="methodSignature">protected&nbsp;<a href="HandlerCollection.Handlers.html" title="class in org.eclipse.jetty.server.handler">HandlerCollection.Handlers</a>&nbsp;newHandlers&#8203;(<a href="../Handler.html" title="interface in org.eclipse.jetty.server">Handler</a>[]&nbsp;handlers)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="HandlerCollection.html#newHandlers(org.eclipse.jetty.server.Handler%5B%5D)">newHandlers</a></code>&nbsp;in class&nbsp;<code><a href="HandlerCollection.html" title="class in org.eclipse.jetty.server.handler">HandlerCollection</a></code></dd>
</dl>
</li>
</ul>
<a id="handle(java.lang.String,org.eclipse.jetty.server.Request,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handle</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;handle&#8203;(java.lang.String&nbsp;target,
                   <a href="../Request.html" title="class in org.eclipse.jetty.server">Request</a>&nbsp;baseRequest,
                   javax.servlet.http.HttpServletRequest&nbsp;request,
                   javax.servlet.http.HttpServletResponse&nbsp;response)
            throws java.io.IOException,
                   javax.servlet.ServletException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Handler.html#handle(java.lang.String,org.eclipse.jetty.server.Request,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)">Handler</a></code></span></div>
<div class="block">Handle a request.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Handler.html#handle(java.lang.String,org.eclipse.jetty.server.Request,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)">handle</a></code>&nbsp;in interface&nbsp;<code><a href="../Handler.html" title="interface in org.eclipse.jetty.server">Handler</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="HandlerCollection.html#handle(java.lang.String,org.eclipse.jetty.server.Request,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)">handle</a></code>&nbsp;in class&nbsp;<code><a href="HandlerCollection.html" title="class in org.eclipse.jetty.server.handler">HandlerCollection</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - The target of the request - either a URI or a name.</dd>
<dd><code>baseRequest</code> - The original unwrapped request object.</dd>
<dd><code>request</code> - The request either as the <a href="../Request.html" title="class in org.eclipse.jetty.server"><code>Request</code></a> object or a wrapper of that request. The
 <code><a href="../HttpConnection.html#getCurrentConnection()"><code>HttpConnection.getCurrentConnection()</code></a>.<a href="../HttpConnection.html#getHttpChannel()"><code>getHttpChannel()</code></a>.<a href="../HttpChannel.html#getRequest()"><code>getRequest()</code></a></code>
 method can be used access the Request object if required.</dd>
<dd><code>response</code> - The response as the <a href="../Response.html" title="class in org.eclipse.jetty.server"><code>Response</code></a> object or a wrapper of that request. The
 <code><a href="../HttpConnection.html#getCurrentConnection()"><code>HttpConnection.getCurrentConnection()</code></a>.<a href="../HttpConnection.html#getHttpChannel()"><code>getHttpChannel()</code></a>.<a href="../HttpChannel.html#getResponse()"><code>getResponse()</code></a></code>
 method can be used access the Response object if required.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if unable to handle the request or response processing</dd>
<dd><code>javax.servlet.ServletException</code> - if unable to handle the request or response due to underlying servlet issue</dd>
</dl>
</li>
</ul>
<a id="deployHandler(org.eclipse.jetty.server.Handler,org.eclipse.jetty.util.Callback)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deployHandler</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;deployHandler&#8203;(<a href="../Handler.html" title="interface in org.eclipse.jetty.server">Handler</a>&nbsp;handler,
                          <a href="../../util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback)</pre>
<div class="block">Thread safe deploy of a Handler.
 <p>
 This method is the equivalent of <a href="HandlerCollection.html#addHandler(org.eclipse.jetty.server.Handler)"><code>HandlerCollection.addHandler(Handler)</code></a>,
 but its execution is non-block and mutually excluded from all
 other calls to <a href="#deployHandler(org.eclipse.jetty.server.Handler,org.eclipse.jetty.util.Callback)"><code>deployHandler(Handler, Callback)</code></a> and
 <a href="#undeployHandler(org.eclipse.jetty.server.Handler,org.eclipse.jetty.util.Callback)"><code>undeployHandler(Handler, Callback)</code></a>.
 The handler may be added after this call returns.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handler</code> - the handler to deploy</dd>
<dd><code>callback</code> - Called after handler has been added</dd>
</dl>
</li>
</ul>
<a id="undeployHandler(org.eclipse.jetty.server.Handler,org.eclipse.jetty.util.Callback)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>undeployHandler</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;undeployHandler&#8203;(<a href="../Handler.html" title="interface in org.eclipse.jetty.server">Handler</a>&nbsp;handler,
                            <a href="../../util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback)</pre>
<div class="block">Thread safe undeploy of a Handler.
 <p>
 This method is the equivalent of <a href="HandlerCollection.html#removeHandler(org.eclipse.jetty.server.Handler)"><code>HandlerCollection.removeHandler(Handler)</code></a>,
 but its execution is non-block and mutually excluded from all
 other calls to <a href="#deployHandler(org.eclipse.jetty.server.Handler,org.eclipse.jetty.util.Callback)"><code>deployHandler(Handler, Callback)</code></a> and
 <a href="#undeployHandler(org.eclipse.jetty.server.Handler,org.eclipse.jetty.util.Callback)"><code>undeployHandler(Handler, Callback)</code></a>.
 The handler may be removed after this call returns.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handler</code> - The handler to undeploy</dd>
<dd><code>callback</code> - Called after handler has been removed</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ContextHandlerCollection.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2022 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
