Example Web Application Overview

The examples for this book are packaged as a standard Java web application, as described in Chapter 2. All servers compliant with the Servlet 2.2 specification (or later) supports this file structure, so you can use the example application as a guideline when you create your own web applications. How a web application is installed isn’t defined by the specification, however, so it varies between servers. With Tomcat, you simply copy the file structure to the special webapps directory and restart the server. To modify the configuration information for an application, you need to edit the application’s WEB-INF/web.xml file using a text editor. Other servers may offer special deployment tools that copy the files where they belong and let you configure the application using a special tool or through web-based forms.

If you look in the ora web application directory, you see that it contains an index.htm l file and a number of directories corresponding to chapters in this book. These directories contain all the example JSP and HTML pages.

There’s also a WEB-INF directory with a web.xml file, a lib directory, and a classes directory. We will look at this in much more detail later, starting in Chapter 5, but here’s a quick review:

  • The web.xml file contains configuration information for the example application in the format defined by the servlet specification. It’s too early to look at the contents of this file now; we will return to parts of it when needed.

  • The lib and classes directories are standard directories, also defined by the servlet specification. A very common question asked by people new to servlets and JSP (prior to the standard web application format) was, “Where do I store my class files so that the server can find them?” The answer, unfortunately, differed depending on which implementation was used. With the standard web application format, it’s easy to answer this question: if the classes are packaged in a JAR file, store the JAR file in the lib directory; otherwise use the classes directory (with subdirectories mirroring the classes’ package structure). The server will always look for Java class files in these two directories.

    The lib directory for the example application contains a number of JAR files. The orataglib_2_0.jar file contains all the Java class files for the custom actions used in this book, oraclasses_2_0.jar contains the class files for beans and servlets used in the examples, struts.jar contains the Struts framework classes described in Chapter 18, and jdom.jar contains JDOM classes used for a validator example in Chapter 21. The other JAR files contain the JSTL Reference Implementation plus all the packages that the JSTL implementation depends on.

    The classes directory contains the class for the JSPSourceServlet that displays the raw source code for the example JSP pages, so you can see what they look like before they are processed by the server. It also contains all .properties files with localized text for the example in Chapter 13 and a few test servlets described in Chapter 18.

If you want to try some of your own JSP pages, beans, and custom actions while reading this book, you can simply add the files to the example application structure: JSP pages in any directory except under WEB-INF, and Java class files in either the classes or the lib directory depending on if the classes are packaged in a JAR file or not. If you want to use the book’s custom actions in another application, copy the orataglib_2_0.jar file to the WEB-INF/lib directory for the other application.

Get JavaServer Pages, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.