<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- $Id$ -->
<html>
<head>
<title>Tapestry: Web Application Framework</title>
</head>
<body>

<b>Tapestry</b> is a comprehensive web application framework, written in Java.

<p>Tapestry is not an application server.
It is designed to be used inside an application server.

<p>Tapestry is not an application.
Tapestry is a framework for creating web applications.

<p>Tapestry is not a way of using JavaServer Pages.
Tapestry is an <i>alternative to</i> using JavaServer Pages.

<p>Tapestry is not a scripting environment.
Tapestry uses a component object model, not simple scripting,
to create highly dynamic, interactive web pages.

<p>Tapestry is based on the Java Servlet API version 2.2.

<p>Tapestry uses a sophisticated component model to divide a web application into
a hierarchy of {@link org.apache.tapestry.IComponent components}.
Each component has specific responsibilities for rendering web pages
(that is, generating a portion of an HTML page) and responding to HTML queries
(such as clicking on a link, or submitting a form).

<p>The Tapestry framework takes on virtually all of the responsibilities
for managing application flow and server-side client state.  
This allows developers to concentrate on the business and presentation aspects of the application.

<hr>

<p>Visit Tapestry's home page at
<a href="http://jakarta.apache.org/tapestry">http://jakarta.apache.org/tapestry</a>
for more details on licensing.

@author Howard Ship <a href="mailto:hlship@apache.org">hlship@apache.org</a>

</body>
</html>
