Figure 256. Web application design overview
The major parts of such a design are discussed in the sequence of the flow of
the application.
Chapter 10 Web application design with servlets and JSPs
In this chapter we present a short overview of a guideline for designing Web
applications consisting of servlets, JSPs, and JavaBeans.
Application structure
The general structure of a well-architected user interaction in a Web
application is shown in Figure 256.
HTML page
The input page for each step is either a static HTML page or a dynamic
HTML page created from a previous step. The HTML page contains one or
multiple forms that invoke a servlet for processing of the next interaction.
Input data can be validated through JavaScript in the HTML page or passed
to the servlet for detailed validation.
Servlet
The servlet gets control from the Application Server to perform basic control
of flow. The servlet validates all the data, and returns to the browser if data
is incomplete or invalid.
For valid data, processing continues. The servlet sets up and calls command
beans that perform the business logic.
The servlet initializes the view beans and registers them with the request
block so that the JSPs can find the view beans.
Depending on the results of the command beans, the servlet calls a JSP for
output processing and formatting.
Command beans
Command beans control the processing of the business logic. Business logic
may be imbedded in the command bean, or the command bean delegates
processing to back-end or enterprise systems, such as relational databases,
transaction systems (CICS, MQSeries, IMS, and so forth).
A command bean may perform one specific function, or it may contain many
methods, each for a specific task. Command beans may be called Task
Wrappers in such a case.
Results of back-end processing are stored in data beans.
Data beans
Data beans hold the results of processing that was performed by the
command bean or by back-end systems. For example, a data bean could
contain an SQL result or the communication area of a CICS transaction.
Data beans may not provide the necessary methods for a JSP to access the
data; that is where the view beans provide the function.
View beans
View beans provide the contract between the output producing JSPs and the
data beans that contain the dynamic data to be displayed in the output.
Each view bean contains one or multiple data beans and provides tailored
methods so that the JSP has access to the data stored in the data beans.
JSPs
The JSPs generate the output for the browser. In many cases that output
again contains forms to enable the user to continue an interaction with the
application.
JSPs use tags to declare the view beans. Through the view beans, the JSP
gets access to all the dynamic data that must be displayed in the output.
Model-View-Controller
This design follows the Model-View-Controller design pattern:
. The JSPs (and HTML pages) provide the view.
. The servlet is the controller.
. The command beans represent the model.
The data beans contain the data of the model, and the view beans are helper
classes to provide a data channel between the view and the model.
The servlet (controller) interacts with the model (the command beans) and
the view (the JSPs). The servlet controls the application flow.