Download
FAQ
History
PrevHomeNext API
Search
Feedback
Divider

The Example JSP Pages

To illustrate JSP technology, this chapter rewrites each servlet in the Duke's Bookstore application introduced in The Example Servlets as a JSP page:

Table 16-1 Duke's Bookstore Example JSP Pages 
Function
JSP Pages
Enter the bookstore
bookstore.jsp
Create the bookstore banner
banner.jsp
Browse the books offered for sale
bookcatalog.jsp
Add a book to the shopping cart
bookcatalog.jsp and bookdetails.jsp
Get detailed information on a specific book
bookdetails.jsp
Display the shopping cart
bookshowcart.jsp
Remove one or more books from the shopping cart
bookshowcart.jsp
Buy the books in the shopping cart
bookcashier.jsp
Receive an acknowledgement for the purchase
bookreceipt.jsp

The data for the bookstore application is still maintained in a database. However, two changes are made to the database helper object database.BookDB:

The implementation of the database helper object follows. The bean has two instance variables: the current book and the data access object.

package database;
public class BookDB {
  private String bookId = "0";
  private BookDBAO database = null;

  public BookDB () throws Exception {
  }
  public void setBookId(String bookId) {
    this.bookId = bookId;
  }
  public void setDatabase(BookDAO database) {
    this.database = database;
  }
  public BookDetails getBookDetails() 
    throws Exception {
    return (BookDetails)database.getBookDetails(bookId);
  }
  ...
} 

This version of the Duke's Bookstore application is organized along the Model-View-Controller (MVC) architecture. The MVC architecture is a widely-used architectural approach for interactive applications that separates functionality among application objects so as to minimize the degree of coupling between the objects. To achieve this, it divides applications into three layers: model, view, and controller. Each layer handles specific tasks and has responsibilities to the other layers:


Note: When employed in a Web application, the MVC architecture is often referred to as a Model-2 architecture. The bookstore example discussed in the previous chapter, which intermixes presentation and business logic, follows what is known as a Model-1 architecture. The Model-2 architecture is the recommended approach to designing Web applications.


In addition, this version of the application uses several custom tags from the JavaServer Pages Standard Tag Library (JSTL) (see Chapter 17):

Custom tags are the preferred mechanism for performing a wide variety of dynamic processing tasks, including accessing databases, using enterprise services such as e-mail and directories, and flow control. In earlier versions of JSP technology, such tasks were performed with JavaBeans components in conjunction with scripting elements (discussed in Chapter 19). Though still available in JSP 2.0, scripting elements tend to make JSP pages more difficult to maintain because they mix presentation and logic, which is discouraged in page design. Custom tags are introduced in Using Custom Tags and described in detail in Chapter 22.

Finally, this version of the example contains an applet to generate a dynamic digital clock in the banner. See Including an Applet for a description of the JSP element that generates HTML for downloading the applet.

  1. The source code for the application is located in the <INSTALL>/jwstutorial13/examples/web/bookstore2/ directory (see Building and Running the Examples). A sample bookstore2.war is provided in <INSTALL>/jwstutorial13/examples/web/provided-wars/. To build, package, deploy, and run the example:
  2. Build and package the bookstore common files as described in Duke's Bookstore Examples.
  3. In a terminal window, go to <INSTALL>/jwstutorial13/examples/web/bookstore2/.
  4. Run Ant build. This target will spawn any necessary compilations and copy files to the <INSTALL>/jwstutorial13/examples/web/bookstore2/build/ directory.
  5. Start Tomcat.
  6. Perform all the operations described in Accessing Databases from Web Applications.
  7. Run ant install-config. The install target notifies Tomcat that the new context is available. See Installing Web Applications.
  8. Open the bookstore URL http://localhost:8080/bookstore2/bookstore. Click on the Start Shopping link and you will see the screen in Figure 16-2:

  9. Duke's Bookstore Book Catalog

Figure 16-2 Book Catalog

See Troubleshooting for help with diagnosing common problems related to the database server. If the messages in your pages appear as strings of the form ??? Key ???, the likely cause is that you have not provided the correct resource bundle basename as a context parameter.

Divider
Download
FAQ
History
PrevHomeNext API
Search
Feedback
Divider

All of the material in The Java(TM) Web Services Tutorial is copyright-protected and may not be published in other works without express written permission from Sun Microsystems.