In the Java 2 platform, web components provide the dynamic extension capabilities for a web
server. Web components are either Java servlets, JSP pages, or web service endpoints.
The interaction between a web client and a web application is illustrated in
Figure 3-1. The client sends an HTTP request to the web server. A web
server that implements Java Servlet and JavaServer Pages technology converts the request into
an HTTPServletRequest object. This object is delivered to a web component, which can
interact with JavaBeans components or a database to generate dynamic content. The web
component can then generate an HTTPServletResponse or it can pass the request to
another web component. Eventually a web component generates a HTTPServletResponse object. The web
server converts this object to an HTTP response and returns it to the
Figure 3-1 Java Web Application Request Handling
Servlets are Java programming language classes that dynamically process requests and construct responses.
JSP pages are text-based documents that execute as servlets but allow a more natural
approach to creating static content. Although servlets and JSP pages can be used
interchangeably, each has its own strengths. Servlets are best suited for service-oriented applications (web
service endpoints are implemented as servlets) and the control functions of a presentation-oriented
application, such as dispatching requests and handling nontextual data. JSP pages are more
appropriate for generating text-based markup such as HTML, Scalable Vector Graphics (SVG), Wireless
Markup Language (WML), and XML.
Since the introduction of Java Servlet and JSP technology, additional Java technologies and
frameworks for building interactive web applications have been developed. Figure 3-2 illustrates these technologies and
Figure 3-2 Java Web Application Technologies
Notice that Java Servlet technology is the foundation of all the web application
technologies, so you should familiarize yourself with the material in Chapter 4, Java Servlet Technology even if you
do not intend to write servlets. Each technology adds a level of
abstraction that makes web application prototyping and development faster and the web applications themselves
more maintainable, scalable, and robust.
Web components are supported by the services of a runtime platform called a
web container. A web container provides services such as request dispatching, security, concurrency, and
life-cycle management. It also gives web components access to APIs such as naming,
transactions, and email.
Certain aspects of web application behavior can be configured when the application is
installed, or deployed, to the web container. The configuration information is maintained in
a text file in XML format called a web application deployment descriptor (DD). A DD must conform
to the schema described in the Java Servlet Specification.
This chapter gives a brief overview of the activities involved in developing web
applications. First it summarizes the web application life cycle. Then it describes how
to package and deploy very simple web applications on the Application Server. It
moves on to configuring web applications and discusses how to specify the most
commonly used configuration parameters. It then introduces an example, Duke’s Bookstore, which illustrates
all the Java EE web-tier technologies, and describes how to set up the
shared components of this example. Finally it discusses how to access databases from
web applications and set up the database resources needed to run Duke’s Bookstore.