Installing Tomcat
Web Application
A web application (or webapp), unlike standalone application, runs over
the Internet
A webapp is typically a 3-tier (or multi-tier) client-server database
application run over the Internet
HTTP Server: e.g., Apache HTTP Server, Apache Tomcat Server, Microsoft
Internet Information Server (IIS), nginx, Google Web Server (GWS), and others.
HTTP Client (or Web Browser): e.g., Internet Explorer (MSIE), FireFox,
Chrome, Safari, and others.
Database: e.g., Open-source MySQL, Apache Derby, mSQL, SQLite,
PostgreSQL, OpenOffice's Base; Commercial Oracle, IBM DB2, SAP SyBase,
MS SQL Server, MS Access; and others.
Client-Side Programs: could be written in HTML Form, JavaScript, VBScript,
Flash, and others.
Server-Side Programs: could be written in Java Servlet/JSP, ASP, PHP, Perl,
Python, CGI, and others.
Web Application
Hypertext Transfer Protocol (HTTP)
HTTP is an application layer protocol runs over TCP/IP
HTTP is an asynchronous request-response application-
layer protocol
A client sends a request message to the server
The server then returns a response message to the client
Hypertext Transfer Protocol (HTTP)
Apache Tomcat HTTP Server
Apache Tomcat is a Java-capable HTTP server, which could execute
special Java programs known as "Java Servlet" and "Java Server Pages
(JSP)“
Tomcat is an open-source project
The mother site for Tomcat is http://tomcat.apache.org
The various Tomcat releases are:
Tomcat 3.x (1999): Reference Implementation (RI) for Servlet 2.2 and JSP 1.1.
Tomcat 4.x (2001): RI for Servlet 2.3 and JSP 1.2.
Tomcat 5.x (2002): RI for Servlet 2.4 and JSP 2.0.
Tomcat 6.x (2006): RI for Servlet 2.5 and JSP 2.1.
Tomcat 7.x (2010): RI for Servlet 3.0, JSP 2.2 and EL 2.2.
Tomcat 8.x (2013): RI for Servlet 3.1, JSP 2.3, EL 3.0 and WebSocket 1.0.
Tomcat 9.x (2018): RI for Servlet 4.0, JSP 2.3, EL 3.0, WebSocket 1.0, JASPIC
1.1.
Installing Tomcat
STEP 1: Download and Install Tomcat
Goto http://tomcat.apache.org ⇒ Under "Tomcat 9.0.{xx}
Released" (where {xx} is the latest upgrade number) ⇒ Click
"Download" ⇒ Under "9.0.{xx}" ⇒ Binary Distributions ⇒
Core ⇒ "ZIP" package (e.g., "apache-tomcat-9.0.{xx}.zip",
about 9.8 MB).
UNZIP the downloaded file into your project directory
"c:\myWebProject". Tomcat will be unzipped into directory
"c:\myWebProject\apache-tomcat-9.0.{xx}“
OR
Download and use the installer
Installing Tomcat
bin: contains the binaries; and startup script (startup.bat for Windows and
startup.sh for Unixes and Mac OS), shutdown script (shutdown.bat for
Windows and shutdown.sh for Unix and Mac OS), and other binaries and
scripts.
conf: contains the system-wide configuration files, such as server.xml,
web.xml, and context.xml.
webapps: contains the webapps to be deployed. You can also place the WAR
(Webapp Archive) file for deployment here.
lib: contains the Tomcat's system-wide JAR files, accessible by all webapps.
You could also place external JAR file (such as MySQL JDBC Driver) here.
logs: contains Tomcat's log files. You may need to check for error messages
here.
work: Tomcat's working directory used by JSP, for JSP-to-Servlet
conversion.
Installing Tomcat
STEP 2: Create an Environment Variable JAVA_HOME
You need to create an environment variable (system variable
available to all applications) called "JAVA_HOME", and set it
to your JDK installed directory
(for Mac you don’t need to do anything)
Installing Tomcat
STEP 3: Configure Tomcat Server
The Tomcat configuration files are located in the "conf" sub-
directory
There are configuration XML files:
server.xml
web.xml
context.xml
Installing Tomcat
Step 3(a) "conf\server.xml" - Set the TCP Port Number
Use a programming text editor (e.g., NotePad++, TextPad) to
open the configuration file "server.xml“
The default TCP port number configured in Tomcat is 8080
We can change it to anything we want (between 1024, 65535)
Installing Tomcat
Step 3(b) "conf\web.xml" - Enabling Directory Listing
Use a programming text editor to open the configuration file
"web.xml“
We shall enable directory listing by changing "listings" from
"false" to "true" for the "default" servlet
Installing Tomcat
Step 3(c) "conf\context.xml" - Enabling Automatic Reload
We shall add the attribute reloadable="true" to the <Context>
element to enable automatic reload after code changes
Installing Tomcat
STEP 4: Start Tomcat Server
Step 4(a) Start Server
A new Tomcat console window appears
Future error messages will be send to this console. System.out.println()
issued by your Java servlets will also be sent to this console
Step 4(b) Start a Client to Access the Server
Start a browser (Firefox, Chrome) as an HTTP client
Issue URL "http://localhost:8080" to access the Tomcat server's welcome
page
The hostname "localhost" (with IP address of 127.0.0.1) is meant for local
loop-back testing inside the same machine
Installing Tomcat
Step 4(c) Shutdown Server
Run "<TOMCAT_HOME>\bin\shutdown.bat" script
Installing Tomcat
STEP 5: Develop and Deploy a WebApp
Step 5(a) Create the Directory Structure for your
WebApp
Goto Tomcat's "webapps" sub-directory and create the
following directory structure for your webapp "hello“
Under Tomcat's "webapps", create your webapp's root
directory "hello“
Under "hello", create a sub-directory "WEB-INF“
Under "WEB-INF", create a sub-sub-directory "classes“
Installing Tomcat
You need to keep your web resources (e.g., HTMLs,
CSSs, images, scripts, servlets, JSPs) in the proper
directories:
"hello": The is called the context root (or document base
directory) of your webapp. You should keep all your
HTML files and resources visible to the web users (e.g.,
HTMLs, CSSs, images, scripts, JSPs) under this context
root.
"hello/WEB-INF": This directory, although under the
context root, is not visible to the web users. This is where
you keep your application's web descriptor file
"web.xml".
"hello/WEB-INF/classes": This is where you keep all the
Java classes such as servlet class-files.
Restart the Tomcat
Installing Tomcat
Step 5(b) Write a Welcome Page
Create the following HTML page and save as
"HelloHome.html“
<html> <head>
<title>My Home Page</title>
</head>
<body>
<h1>My Name is so and so. This is my HOME.</h1>
</body> </html>
Try to access it – Rename it to index.html
Installing Tomcat
STEP 6: Write a "Hello-world" Java Servlet
A servlet is Java program that runs inside a Java-capable HTTP
Server, such as Apache Tomcat
A web user invokes a servlet by issuing an appropriate URL
from a web browser
Step 6(a) Write a "Hello-world" Java Servlet
We are going to write a Java servlet called HelloServlet, which
says "Hello, world!"
Installing Tomcat
Write a code called "HelloServlet.java" and save it under
your application "classes" directory
Step 6(b) Compiling the Servlet
We need the Servlet API to compile the servlet
We need to include this JAR file in the compilation via the -cp
(classpath) option
The output of the compilation is "HelloServlet.class"
Installing Tomcat
Step 6(c) Configure Servlet's Request URL in
"webapps\hello\WEB-INF\web.xml"
A web user invokes a servlet, which is kept in the web server,
by issuing a request URL from the browser
We need to configure this request URL for our HelloServlet
Create the configuration file called "web.xml", and save it
under "webapps\hello\WEB-INF“
In the configuration, a servlet having a class file
"HelloServlet.class" is mapped to request URL "/sayhello“
The complete request URL for this servlet is
http://hostname:port/hello/sayhello
RESTART your Tomcat server to refresh the "web.xml" file
Installing Tomcat
Step 6(d) Invoke the Servlet
http://localhost:9999/hello/sayhello
Refresh the browser, you shall see a new random number upon
each refresh.
The doGet() method of the servlet runs once per request
Right-click the page ⇒ "View Page Source"
The web browser receives only the output of the servlet
(generated via the out.println() statements)
Installing Tomcat
Use the installer
Just click on the installer and provide the necessary info
Create Servlet with Eclipse
Steps
File -> New -> Dynamic Web Project
Give a Name to your Project and click Next
Check Generate web.xml Deployment Descriptor and click
Finish
Click on First project, go to Java Resources -> src. Right click
on src select New -> Servlet
Give Servlet class name and click Next
Give your Servlet class a Name of your choice
Leave everything else to default and click Finish
Now your Servlet is created, write some code inside it
Create Servlet with Eclipse
(ctd)
Add servlet-api.jar JAR file to your project. Click on Libraries,
right click on Web App Libraries select Build Path -> Configure
Build Path
Now all you have to do is Start the server and run the
application
OR
Create the war file and upload it to the server