<?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>
    <author email="remm@apache.org">Remy Maucherat</author>
    <author email="yoavs@apache.org">Yoav Shapira</author>
    <title>Documentation Index</title>
  </properties>

<body>

<section name="Introduction">

<p>This is the top-level entry point of the documentation bundle for the
<strong>Apache Jakarta Tomcat</strong> Servlet/JSP container.  Tomcat version 5.5 
implements the
Servlet 2.4 and JavaServer Pages 2.0 specifications from the
<a href="http://www.jcp.org">Java Community Process</a>, and includes many
additional features that make it a useful platform for developing and deploying
web applications and web services.</p>

<p>Select one of the links from the navigation menu (to the left) to drill
down to the more detailed documenation that is available.  Each available
manual is described in more detail below.</p>

</section>


<section name="Tomcat User Guide">

<p>The following documents will assist you in downloading, installing
Tomcat 5, and using many of the Tomcat features.</p>

<ol>
<li><a href="introduction.html"><strong>Introduction</strong></a> - A
    brief, high level, overview of Tomcat.</li>
<li><a href="setup.html"><strong>Setup</strong></a> - How to install and run
    Tomcat on a variety of platforms.</li>
<li><a href="appdev/index.html"><strong>First web application</strong></a>
    - An introduction to the concepts of a <em>web application</em> as defined
    in the <a href="http://java.sun.com/products/servlet/download.html">Servlet
    2.3 Specification</a>.  Covers basic organization of your web application
    source tree, the structure of a web application archive, and an
    introduction to the web application deployment descriptor
    (<code>/WEB-INF/web.xml</code>).</li>
<li><a href="deployer-howto.html"><strong>Deployer</strong></a> -
    Operating the Tomcat Deployer to deploy, precompile, and validate web
    applications.</li>
<li><a href="manager-howto.html"><strong>Manager</strong></a> -
    Operating the <code>Manager</code> web app to deploy, undeploy, and
    redeploy applications while Tomcat is running.</li>
<li><a href="realm-howto.html"><strong>Realms and Access Control</strong></a>
    - Description of how to configure <em>Realms</em> (databases of users,
    passwords, and their associated roles) for use in web applications that
    utilize <em>Container Managed Security</em>.</li>
<li><a href="security-manager-howto.html"><strong>Security Manager</strong></a>
    - Configuring and using a Java Security Manager to
    support fine-grained control over the behavior of your web applications.
    </li>
<li><a href="jndi-resources-howto.html"><strong>JNDI Resources</strong></a>
    - Configuring standard and custom resources in the JNDI naming context
    that is provided to each web application.</li>
<li><a href="jndi-datasource-examples-howto.html">
    <strong>JDBC DataSource</strong></a>
    - Configuring a JNDI DataSoure with a DB connection pool.
    Examples for many popular databases.</li>
<li><a href="class-loader-howto.html"><strong>Classloading</strong></a>
    - Information about class loading in Tomcat 5, including where to place
    your application classes so that they are visible.</li>
<li><a href="jasper-howto.html"><strong>JSPs</strong></a>
    - Information about Jasper configuration, as well as the JSP compiler
    usage.</li>
<li><a href="ssl-howto.html"><strong>SSL</strong></a> -
    Installing and
    configuring SSL support so that your Tomcat will serve requests using
    the <code>https</code> protocol.</li>
<li><a href="ssi-howto.html"><strong>SSI</strong></a> -
    Using Server Side Includes in Tomcat.</li>
<li><a href="cgi-howto.html"><strong>CGI</strong></a> -
    Using CGIs with Tomcat.</li>
<li><a href="proxy-howto.html"><strong>Proxy Support</strong></a> -
    Configuring Tomcat 5 to run behind a proxy server (or a web server
    functioning as a proxy server).</li>
<li><a href="mbeans-descriptor-howto.html"><strong>MBean Descriptor</strong></a> -
    Configuring MBean descriptors files for custom components.</li>
<li><a href="default-servlet.html"><strong>Default Servlet</strong></a> -
    Configuring the default servlet and customizing directory listings.</li>
<li><a href="cluster-howto.html"><strong>Tomcat Clustering</strong></a> -
    Enable session replication in a Tomcat environment.</li>
<li><a href="balancer-howto.html"><strong>Balancer</strong></a> -
    Configuring, using, and extending the load balancer application.</li>

</ol>

</section>


<section name="Reference">

<p>The following documents are aimed at <em>System Administrators</em> who
are responsible for installing, configuring, and operating a Tomcat 5 server.
</p>
<ul>
<li><a href="RELEASE-NOTES.txt"><strong>Release notes</strong></a>
    - Known issues in this Tomcat release.
    </li>
<li><a href="config/index.html"><strong>Tomcat Server Configuration Reference</strong></a>
    - Reference manual that documents all available elements and attributes
      that may be placed into a Tomcat 5 <code>conf/server.xml</code> file.
    </li>
<li><a href="http://jakarta.apache.org/tomcat/connectors-doc/jk2/index.html"><strong>JK Documenation</strong></a>
    - Complete documentation and HOWTOs on the JK native webserver connector,
      used to interface Tomcat with servers like Apache HTTPd, IIS
      and others.</li>
<li><a href="servletapi/index.html"><strong>Servlet API Javadocs</strong></a> -
    The Servlet 2.4 API Javadocs.</li>
<li><a href="jspapi/index.html"><strong>JSP API Javadocs</strong></a> -
    The JSP 2.0 API Javadocs.</li>
</ul>

</section>


<section name="Tomcat Developers">

<p>The following documents are for Java developers who wish to contribute to
the development of the <em>Tomcat</em> project.</p>
<ul>
<li><a href="building.html"><strong>Building from Source</strong></a> - 
    Details the steps necessary to download Tomcat 5 source code (and the 
    other packages that it depends on), and build a binary distribution from 
    those sources.
    </li>
<li><a href="changelog.html"><strong>Changelog</strong></a> - Details the
    changes made to Tomcat.
    </li>
<li><a href="status.html"><strong>Status</strong></a> - Tomcat development 
    status.
    </li>
<li><a href="developers.html"><strong>Developers</strong></a> - List of active
    Tomcat contributors.
    </li>
<li><a href="catalina/funcspecs/index.html"><strong>Functional Specifications</strong></a>
    - Requirements specifications for features of the <em>Catalina</em> servlet
    container portion of Tomcat 5.</li>
<li><a href="catalina/docs/api/index.html"><strong>Catalina Javadocs</strong></a>
    - Javadoc API documentation for the <em>Catalina</em> servlet
    container and its dependencies.</li>
<li><a href="jasper/docs/api/index.html"><strong>Jasper Javadocs</strong></a>
    - Javadoc API documentation for the <em>Jasper</em> JSP container
    portion of Tomcat 5.</li>
<li><a href="architecture/index.html"><strong>Tomcat Architecture</strong></a>
    - Documentation of the Tomcat Server Architecture.</li>
    
</ul>

</section>


</body>
</document>
