Tapestry is a rich, component-based object model for developing dynamic, robust, highly interactive Web applications. Applications are constructed in terms of Java objects, methods and properties, instead of URLs and query parameters. It builds and interprets all URLs, dispatching directly to application-specific "listener" methods. It includes complete source code, documentation, tutorials and a complete example J2EE application.