Today, Budi walks us through a refresher and brief overview of server JSP programming. Today's portion covers Servlet technologies, including servlets and Tomcat. This excerpt comes from chapter one of JavaServer Faces Programming, by Budi Kurniawan (McGraw-Hill/Osborne, ISBN 0-07-222983-7, 2004).
To run your servlet applications, you need a servlet container. One such container is Tomcat, the most popular container, which is an open-source project. The code in this book was tested using Tomcat, but you can use any Servlet 2.3-compliant servlet container to run it.
NOTE: JSF is currently based on the Servlet 2.3 specification, but this may change. The release version may be based on the Servlet 2.4 specification (to be released soon also).
When you first install Tomcat (Appendix A provides step-by-step instruction on installing and configuring Tomcat), several directories are created under the directory in which you install Tomcat. Tomcat’s directory structure is shown in Figure 1.
Figure 1Tomcat’s directory structure.
In Figure 1, Tomcat is installed in the tomcat5 directory. This directory is also known as %CATALINA_HOME%. One of the subdirectories is webapps. This is the parent directory of every Web application that will be run under this Tomcat installation.
When you first install Tomcat, a number of sample applications are also created: jspexamples, ROOT, servlets-examples, and tomcat-docs. Therefore, a directory under webapps is called an application directory, and it contains the resources for a particular application. For an example of an application directory structure, look at the jsp-examples application directory.
Directly beneath an application directory is a directory called WEB-INF, which has special significance in a Web application. Under WEB-INF, you can have a classes directory and a lib directory. The classes directory contains all servlet classes and other Java classes used by the Web application. The directory structure under classes must represent the fully qualified name of the Java class. For example, if you have a servlet class called ch01.MyServlet, you must create a ch01 directory under classes and put the MyServlet.class file in classes/ch01. The lib directory, if one exists, contains all libraries (.jar files) referenced by any resource in the Web application.
All static resources and JSP files are stored directly under the application directory. For better organization, you can create subdirectories under the application directory. For example, you may want to create a jsp directory for all JSP pages and an images directory for all your image files. A Web client can access anything you put under the application directory, except those under WEB-INF, because WEB-INF is a special directory.
A Web application normally has a deployment descriptor, which is an XML file called web.xml containing the description of the application. You store the web.xml file under WEB-INF. We’ll take a look at the deployment descriptor in the next section.
Remember: This is part one of the first chapter of JavaServer Faces Programming, by Budi Kurniawan (McGraw-Hill/Osborne, ISBN 0-07-222983). Stay tuned for part 2 of "Overviews of Java Web Technologies," where we learn about JSP, JavaBeans, and Model 2. Buy this book!