<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!DOCTYPE document [
  <!ENTITY project SYSTEM "project.xml">
]>
<document url="index.html">

  &project;

  <properties>
    <author email="yoavs@apache.org">Yoav Shapira</author>
    <title>Table of Contents</title>
  </properties>

<body>


<section name="Preface">

<p>This section of the Tomcat documentation attempts to explain
the architecture and design of the Tomcat server.  It includes significant
contributions from several tomcat developers:
</p>
<ul>
<li>Yoav Shapira
    (<a href="mailto:yoavs@apache.org">yoavs@apache.org</a>)</li>
<li>Jeanfrancois Arcand
    (<a href="mailto:jfarcand@apache.org">jfarcand@apache.org</a>)</li>
<li>Filip Hanik
    (<a href="mailto:fhanik@apache.org">fhanik@apache.org</a>)</li>
</ul>

</section>


<section name="Table of Contents">

<p>The information presented is divided into the following sections:</p>
<ul>
<li><a href="overview.html"><strong>Overview</strong></a> -
    An overview of the Tomcat server architecture with key terms
    and concepts.</li>
<li><a href="startup.html"><strong>Server Startup</strong></a> -
    A detailed description, with sequence diagrams, of how the Tomcat
    server starts up.</li>
<li><a href="requestProcess.html"><strong>Request Process Flow</strong></a> -
    A detailed description of how Tomcat handles a request.</li>
</ul>

</section>


</body>
</document>
