murach’s java servlets/jsp (2 nd ed.), c2© 2008, mike murach & associates, inc.slide 1

40
Murach’s Java Servlets/JSP (2 nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 1 C hapter2 How to installand use Tom cat

Upload: seth-ambrose

Post on 14-Dec-2015

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 1

Chapter 2

How to install anduse Tomcat

Page 2: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 2

Objectives

Applied Install and configure Tomcat so it runs on your own PC. Start Tomcat from a DOS prompt window, and shut it down

from this window. Turn on servlet reloading so you don’t have to stop and restart

Tomcat every time you want to change and test a servlet. Use your browser to enter a URL that accesses an HTML

document, JSP, or servlet. If a port conflict occurs, change the port that’s used by Tomcat.

Page 3: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 3

Objectives (continued)

Knowledge Describe two common errors that occur after you enter a URL into

a browser. In general terms, describe the directory structure of a Web

application that’s defined by the J2EE specfication. In general terms, describe the deployment descriptor of a web

application.

Page 4: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 4

How to install Tomcat 1. Go to the Tomcat web site: http://tomcat.apache.org/.

2. Navigate to the Download page for Tomcat 6.X.

3. Navigate to the Binary Distributions heading for the latest stable release. To do that, avoid any headings labeled as alpha or beta releases. Beneath the Core subheading, click on the link for the zip file.

4. Save the zip file to your hard disk. By default, this file should be named something like apache-tomcat-6.0.10.zip.

5. Use a zip program to extract the files from the zip file.

6. If necessary, move the apache-tomcat directory to your C drive.

7. Rename the apache-tomcat directory to tomcat.

8. Copy the JAR files shown below from Tomcat’s lib directory to the JDK’s jre\lib\ext directory.

Page 5: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 5

The JAR files that need to be available to the JRE servlet-api.jar jsp-api.jar el-api.jar tomcat-dbcp.jar

Description The directory that holds the files for Tomcat is known as the

Tomcat home directory. By default, this directory is named apache-tomcat-6.0.X, but you can rename it to tomcat.

The Java Archive (JAR) files shown above contain the Java classes that need to be available to the JDK and JRE when you develop servlets and JSPs. By copying these JAR files from Tomcat’s lib subdirectory to the JDK’s jre\lib\ext subdirectory, you make the classes available to the JDK and JRE.

Page 6: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 6

The file structure of Tomcat

Page 7: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 7

The subdirectories

Directory Description

bin Files for working with Tomcat such as the startup and shutdown batch files.

conf Files for configuring Tomcat such as server.xml, context.xml, and web.xml.

lib JAR files that contain classes that are available to all web applications. As a result, you can put any JAR files you want to make available to all web applications in this directory.

logs Log files.

temp Temporary files used by the JVM.

webapps The directories and files for the web applications.

work The source code and class files for the servlets that Tomcat generates for the JSPs.

Page 8: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 8

The files

File Description

RELEASE-NOTES General information about the current release of Tomcat.

running.txt Instructions for installing, starting, and stopping Tomcat.

Page 9: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 9

The catalina batch file opened for editing

Page 10: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 10

How to set the JAVA_HOME environment variable 1. Use a text editor like NotePad to open the catalina.bat file located in

the c:\tomcat\bin directory. One way to do that is to right-click on the name of the file in the Windows Explorer and choose Edit.

2. Scroll down past the remarks at the beginning of the file. These lines begin with “rem”.

3. After the remarks at the beginning of the file, enter a set statement that sets the JAVA_HOME variable to the directory that contains the JDK that’s installed on your system. When you enter this statement, put an equals sign (=) between the variable and the directory path.

4. Save your changes to the catalina.bat file.

5. If necessary, stop and restart Tomcat.

Page 11: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 11

DOS commands for starting Tomcat

Page 12: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 12

The console that Tomcat displays when it’s running

Page 13: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 13

How to use the DOS Prompt window to start and stop Tomcat 1. Open a DOS Prompt window and use the cd command to change the

current directory to Tomcat’s bin directory.

2. To start Tomcat, type “startup” and press the Enter key. To stop Tomcat, type “shutdown” and press the Enter key.

How to solve the “out of environment space” problem You may get an “out of environment space” error if you’re using

Windows 95, 98, or ME. To solve this problem, follow the troubleshooting directions that are at the end of the running.txt file that’s in Tomcat’s root directory.

Page 14: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 14

The default Tomcat home page

Page 15: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 15

HTTP URLs that you can use to test Tomcat http://localhost:8080/ http://localhost:8080/examples/servlets/ http://localhost:8080/examples/jsp/

How to view a web page via an HTTP URL 1. Start Tomcat.

2. Start your web browser. 3. Type an HTTP URL into your web browser and press Enter.

The components of an HTTP URL

Page 16: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 16

How to test Tomcat to make sure it’s running You can specify a Uniform Resource Locator (URL).

When Tomcat is running on your local machine, you can use the “localhost” keyword to specify the host machine.

The default port for Tomcat is 8080. If another application is already using this port, you can change the default port.

Page 17: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 17

The Internet Explorer’s error page

Page 18: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 18

Tomcat’s default 404 error page

Page 19: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 19

How to solve common Tomcat problems If the browser displays an error page that says “The page cannot be

displayed,” the HTTP request isn’t connecting with a web server. To solve this problem, make sure that the Tomcat engine is running, and make sure that you’ve entered a valid host name and port number.

If the browser displays a 404 error page, Tomcat is receiving the HTTP request, but it can’t find the requested resource. To solve this problem, make sure that you’ve entered the path and filename of the URL correctly.

Page 20: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 20

The server.xml file

Page 21: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 21

How to change the port that’s used by Tomcat 1. Use the Windows Explorer to navigate to Tomcat’s conf directory

and open the server.xml file in a text editor.

2. Replace all instances of the current port, which is 8080 by default, to a four-digit number that’s greater than 1024 or to 80. To do this, you may want to use the Find and Replace feature of your text editor.

3. Save the changes to the server.xml file. 4. Stop and restart Tomcat.

Notes If you have a port conflict with another application, you can

change the 8080 default to a 4-digit number greater than 1024.

If you don’t enter a port when you specify a URL, your browser will use port 80. So if you change Tomcat’s default port to 80, you don’t need to specify a port when entering a URL.

Page 22: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 22

The home page for the musicStore application

Page 23: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 23

Two ways to manually deploy a web application With Tomcat running, copy the WAR file for the application into

Tomcat’s webapps directory. Then, Tomcat expands the WAR file into the proper directory structure.

Copy the files for the application into Tomcat’s webapps directory.

How to run a web application Start Tomcat and enter the URL for the application into your

browser.

The WAR file A Web Archive (WAR) file is a Java Archive (JAR) file that

contains all of the directories and files for a web application. When you use an IDE to build a web application, the IDE usually creates a WAR file for the application automatically.

Page 24: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 24

The directory structure for a web application named musicStore

c:\tomcat

webappsmusicStore (the root directory for HTML and JSP files)

cart

classes (the root directory for Java classes)

data

business

download

admin

cart

admin (the directory for the music.admin package)

download

META-INF (the context.xml file)

lib (JAR files for Java class libraries)

music

WEB-INF (the web.xml file)

Page 25: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 25

The directories and files for a web application

Directory Description

(root) This directory and its subdirectories typically contain the HTML and JSP files for the application.

\WEB-INF This directory must contain a file named web.xml. This file can be used to configure the servlets and other components that make up the application. In addition, this directory is not directly accessible from the web.

\WEB-INF\classes This directory and its subdirectories contain the servlets and other Java classes for your application. Each subdirectory must correspond with the package for the Java class.

Page 26: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 26

The directories and files for a web application (continued)

Directory Description

\WEB-INF\lib This directory contains any JAR files that contain Java class libraries that are used by the web application.

\META-INF This directory contains the context.xml file. This file can be used to configure the web application context.

Page 27: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 27

The standard directories and files for a web application The top-level directory for a web application is known as its root

directory.

A Java web application is a hierarchy of directories and files in a standard layout defined by the Java EE specification. All Java web applications must use the root, \WEB-INF, and \WEB-INF\classes directories.

To make classes within a JAR file available to more than one web application, you can put the JAR file in Tomcat’s lib directory.

Page 28: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 28

A web.xml file <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>Murach's Servlets and JSP: Music Store site</display-name> <description>The Music Store web site that's described in Murach's Java Servlets and JSP (second edition)</description> <!-- Enable servlet mapping --> <servlet> <servlet-name>AddToEmailListServlet</servlet-name> <servlet-class>music.email.AddToEmailListServlet </servlet-class> </servlet>

Page 29: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 29

A web.xml file (continued) <!-- Map servlets to URL patterns --> <servlet-mapping> <servlet-name>AddToEmailListServlet</servlet-name> <url-pattern>/email/addToEmailList</url-pattern> </servlet-mapping> <!-- Specify index pages --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list> </web-app>

Description Every web application requires a web.xml file in the WEB-INF

directory. This file is known as the deployment descriptor for the web application. The highlighted code is required in the file.

Page 30: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 30

What the web.xml file can do Enable servlet mapping so you can call a servlet using any URL or

URL pattern.

Define initialization parameters for a servlet or the entire application.

Define error pages for an entire application.

Provide security constraints to restrict access to certain web pages and servlets.

Page 31: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 31

How to add a username and password for the manager role Open the tomcat-users.xml file that’s in Tomcat’s conf directory

in a text editor.

Add a role element that defines the manager role.

Add a user element that provides a username and password for the manager role.

If Tomcat is running when you add users to the tomcat-users.xml file, you need to restart Tomcat after you close the file so Tomcat will recognize the changes.

The tomcat-users.xml file <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="manager"/> <user username="admin" password="sesame" roles="manager"/> </tomcat-users>

Page 32: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 32

The Authentication Required dialog box

How to start Tomcat's Web Application Manager To start the Web Application Manager, start a web browser and go

to http://localhost:8080/manager/html.

Tomcat will prompt you for a username and password. If you supply a valid username and password for the manager role, you will be able to view the Web Application Manager.

Page 33: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 33

The index page for Tomcat’s Web Application Manager

Page 34: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 34

How to use Tomcat's Web Application Manager To reload all of the classes for an application, click on the Reload

link for the application.

To stop an application, click on the Stop link for the application.

To start an application, click on the Start link for the application.

To undeploy an application, click on the Undeploy link for the application. This deletes all files for the web application from Tomcat’s server.

Page 35: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 35

The context.xml file

Page 36: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 36

How to turn on servlet reloading 1. Use a text editor to open the context.xml file in Tomcat’s conf

directory.

2. Add the reloadable attribute to the Context element and set this attribute to true like this: <Context reloadable="true">

3. Save the changes to the context.xml file 4. If necessary, stop and restart Tomcat.

Page 37: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 37

Servlet reloading If servlet reloading isn’t on, which is the default setting, you have

to stop and restart Tomcat each time that you change one of the classes that’s in memory.

If you turn servlet reloading on, Tomcat checks the modification dates of the classes in memory and automatically reloads the ones that have changed. Although this is useful in development, it can cause performance problems in a production environment.

The context.xml file is an XML file that controls how the Tomcat engine is configured. Tomcat reads this file every time it starts to configure itself. You can use a text editor to edit this file. Then, you can stop and restart Tomcat to put the changes into effect.

This is a global setting that affects all web applications running on this instance of Tomcat.

Page 38: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 38

The web.xml file

Page 39: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 39

The element that defines the invoker servlet <servlet> <servlet-name>invoker</servlet-name> <servlet-class> org.apache.catalina.servlets.InvokerServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet>

The element that maps the invoker servlet <!-- The mapping for the invoker servlet --> <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>

Page 40: Murach’s Java Servlets/JSP (2 nd Ed.), C2© 2008, Mike Murach & Associates, Inc.Slide 1

Murach’s Java Servlets/JSP (2nd Ed.), C2 © 2008, Mike Murach & Associates, Inc. Slide 40

How to map the invoker servlet 1. Use a text editor to open the context.xml file in Tomcat’s conf

directory.

2. Add the privileged attribute to the Context element and set this attribute to true like this: <Context reloadable="true" privileged="true">

3. Save the changes to the context.xml file 4. Use a text editor to open the web.xml file in Tomcat’s conf

directory. 5. Remove the comments from the element that defines the invoker

servlet. 6. Scroll down and remove the comments from the element that

maps the invoker servlet.