Running Your First Servlet Application

Once we have installed and configured Tomcat, we need to follow the below five steps to run our First Hello World Application.

  1. Create a directory under Tomcat for our application.
  2. Coding our servlet. We will be using javax.servlet package and the javax.servlet.http package in our source code.
  3. Create a deployment descriptor.
  4. Compile our source code.
  5. Run Tomcat and call the servlet from the web browser.

1. Create a directory structure under Tomcat for your application

The directory where Tomcat is installed is referred to as %CATALINA_HOME% 

  • Create a directory called “FirstApp” under the webapps directory of %CATALINA_HOME% .
  • Now create WEB-INF directories under FirstApp, and create a directory named classes
    under WEB-INF. The classes directory is for the Java class files. You can create images directory if you have images in your projects.Installation_Directory

2. Coding our Servlet

Lets create our servlet, here we will be extending HttpServlet class and will be overriding doGet() method. We will take the explanation part later. Save the HelloWorld.java under WEB-INF/classes folder.

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorld extends HttpServlet 
{
    public void doGet(HttpServletRequest request,HttpServletResponse response) 
    throws ServletException, IOException 
    {
         PrintWriter out = response.getWriter();
         out.println("<html>");
         out.println("<head>");
         out.println("<title>Servlet Tutorial</title>");
         out.println("</head>");
         out.println("<body>");
         out.println("Welcome to HelloWorld Servlet");
         out.println("</body>");
         out.println("</html>");
    }
}

3. Create a deployment descriptor

The deployment descriptor will be in XML format and called as web.xml, which sould be placed in the WEB-INF directory of the Servlet application.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
     <display-name>ServletsTutorial</display-name>
     <servlet>
         <servlet-name>HelloWorld</servlet-name>
         <servlet-class>com.javainterviewpoint.HelloWorld</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>HelloWorld</servlet-name>
         <url-pattern>/Hello</url-pattern>
     </servlet-mapping>
</web-app>

In the web.xml file <web-app> tag will be the root tag, we should write all our servlets under <web-app>.For each servlet, we will have <servlet> and <servlet-mapping>.

The <servlet> tag will have sub elements like below

  • <servlet-name> is the name for our servlet, which will be known to the server.
  • <servlet-class> is the location where the compiled class resides.

<serlvet-mapping> tag has the below sub elements

  • <servlet-name> is the name for our servlet.
  • <url-pattern> is the name to call our application in the browser.

4. Compile your Source code

Now it is time to compile our Source code, we need to have the servlet-api.jar in our classpath before compiling. servlet-api.jar will be present under %CATALINA_HOME%/lib folder. Run the below command to set the classpath and compile our source code.

javac -classpath D:\apache-tomcat-7.0.57\lib\servlet-api.jar HelloWorld.java

5. Run Tomcat and call your servlet from the web browser

To Start our Tomcat server click on the startup batch file which is located under the bin folder of the Tomcat directory

%CATALINA_HOME%\bin\startup

To test if the server is running, hit on “http://localhost:8080” you could see the tomcat’s startup page. Now, you can call your servlet from a web browser. By default, Tomcat runs on port 8080. Below will be the url format to be called.

http://<<machine-name>>:<<port>>/<<Application Name>>/<<URL Pattern>>

So to call to our application use the below url

http://localhost:8080/FirstApp/Hello

We will get the below output displayed in the browser

Welcome to HelloWorld Servlet

Leave a Reply

Your email address will not be published. Required fields are marked *