<?xml version="1.0"?>
<!DOCTYPE document [
  <!ENTITY project SYSTEM "project.xml">
]>
<document url="index.html">

  &project;

  <properties>
    <author email="craigmcc@apache.org">Craig R. McClanahan</author>
    <title>Table of Contents</title>
  </properties>

<body>


<section name="Preface">

<p>This manual includes contributions from many members of the Tomcat Project
developer community.  The following authors have provided significant content:
</p>
<ul>
<li>Craig R. McClanahan
    (<a href="mailto:craigmcc@apache.org">craigmcc@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="introduction.html"><strong>Introduction</strong></a> -
    Briefly describes the information covered here, with
    links and references to other sources of information.</li>
<li><a href="installation.html"><strong>Installation</strong></a> -
    Covers acquiring and installing the required software
    components to use Tomcat for web application development.</li>
<li><a href="deployment.html"><strong>Deployment Organization</strong></a> -
    Discusses the standard directory layout for a web application
    (defined in the Servlet API Specification), the Web Application
    Deployment Descriptor, and options for integration with Tomcat
    in your development environment.</li>
<li><a href="source.html"><strong>Source Organization</strong></a> -
    Describes a useful approach to organizing the source code
    directories for your project, and introduces the
    <code>build.xml</code> used by Ant to manage compilation.</li>
<li><a href="processes.html"><strong>Development Processes</strong></a> -
    Provides brief descriptions of typical development processes
    utilizing the recommended deployment and source organizations.</li>
<li><a href="sample/" target="_new"><strong>Example Application</strong></a> -
    This directory contains a very simple, but functionally complete,
    "Hello, World" application built according to the principles
    described in this manual.  You can use this application to
    practice using the described techniques.</li>
</ul>

</section>


</body>
</document>
