User's Manual

Chapter 6.
WAF Component: Web
The Web component of WAF makes the persistent data and domain logic of your application available
to others over protocols such as HTTP. It integrates the Java Servlet API and the kernel and persistence
components of WAF.
For more information about building and deploying your own applications, see Chapter 8 WAF Appli-
cation Development Tutorial.
6.1. Applications
WAF supports deploying multiple instances of an application type. A typical WAF installation may
have three forum instances, each with its own data and configuration at distinct locations on the site.
A WAF Application is the base on which developers build such applications in the WAF framework.
In the following, we distinguish between an application, here meaning the concrete application you
wish to develop, and Application, the WAF base class used to define such new applications.
6.1.1. Application Properties
Applications have a number of specific properties.
Applications are persistent An Application has persistent properties describing its location,
name, etc. It is also a container of persistent data, often user-entered data, that a concrete application
uses to do its work. A forum, for instance, will contain database-stored message threads and posts.
Applications work with the dispatcher Applications are designed to work together with the
WAF dispatcher to convert user-friendly URL paths into an application servlet and an application
instance containing its specific data. The dispatcher uses the location and parent properties of an
Application to look it up using the request URL.
Applications have a Servlet Once the dispatcher has routed a request to an Application, the
Application responds using a Java Servlet.
Applications are associated with Stylesheets — The WAF presentation layer uses XSLT stylesheets
to implement the look-and-feel of its applications. The Application abstraction carries with it a
stylesheet property that the presentation layer uses to fetch the appropriate stylesheet.
Applications extend Resources Applications leverage a feature of the WAF kernel API, Re-
sources. Resources model containment, resource-partitioned user and configuration data, and a
data-backed type system. See Section 3.4 Kernel Resources. For example, Application uses the
containment behavior of Resource to implement its security.
6.2. BaseServlet
The WAF BaseServlet implements a Java Servlet and integrates it with the WAF kernel and persis-
tence layers. The BaseServlet performs two functions:
Transaction management The BaseServlet is responsible for starting and stopping the re-
quest’s database transaction. If any errors occur, the servlet will roll back the transaction. If appli-
cation code requests a redirect, the BaseServlet ensures that the transaction is finished before
proceeding.