Creating Servlet Project Example/Demo in Eclipse

1 0
Read Time:6 Minute, 53 Second

Servlets are like small Java programs that live on a special kind of computer called a web server. These programs are really good at listening to requests from the internet, doing some work with those requests (like getting information from a database), and then sending a reply back. So, they help make websites work by handling the behind-the-scenes tasks.

rerequisites:

  • Eclipse IDE installed – You can download from https://www.eclipse.org/downloads/
    choose Eclipse IDE for Enterprise Java and Web Developers
  • Running server – To run the servlet, we need a server. we can use any Webserver/Application server such as IBM Websphere, Glassfish, Tomcat, etc., in this example we will be using Apache Tomcat server. You can download the latest Tomcat version from https://tomcat.apache.org/

Once the Eclipse is installed and configured with the Tomcat server, below are the steps to create a basic Servlet in Eclipse IDE.

Steps to Create Servlet

In this example, we will create a basic servlet that displays a Welcome message to the user in the browser.

Step 1: Create a Dynamic web project

  • In Eclipse, go to File -> New -> Dynamic Web Project and click on it.
  • After clicking on Dynamic web project, the below window will open to enter the required project details.
  • Enter the Project Name.
  • Check if the location where the project saves is correct.
  • Check if the Run time selected for the project is displaying. If you want to change any of the configurations for runtime, you can do by clicking Modify.
  • Click on Next.
  • The source folders on the build path and the classes folder will be displayed here.
  • Click on Next.
  • This is the web module creation, where all your HTML and JSP pages will be added.
  • We can also generate a Deployment Descriptor – web.xml file to define the mappings between URL paths and the servlets to handle the requests with those paths. This can also be done using @WebServlet() annotation in the Servlet class.
  • In this example, we will be using annotation in our servlet class to map the URL path.
  • But for the demonstration purpose to show the web.xml file creation in the project, we will select the web.xml checkbox also.
  • Click on Finish.

Project Structure

  • In this way, the project structure should be created.

Step 2: servlet-api.jar file 

As we are working with servlets, we need to have the servlet-api.jar file in our project. This jar is a library that contains all the interfaces and classes of the Servlet API, so we can use its functionality to develop our web application.

  • In this example, we are using the Apache Tomcat server to run the project.
  • Tomcat container is an open-source Java servlet container that implements several core Java enterprise functionalities like the Java Servlet, JSP, etc., so it provides this servlet-api.jar file by default.
  • You can check the jar file in the below path if you are using the Tomcat server only.
  • As you can see, under Apache Tomcat, there is a servlet-api.jar file by default.

For Different servers:

  • In case, if you are using a different server and the servlet-api.jar file is not there, you can download it from Maven Repository.
  • Add the downloaded jar file as an external jar to your project like below,
  • Go to the project name and right-click on it. Go to Build Path -> Configure Build Path.
  • In this window, it will show all the libraries that are associated with the project, and also you can add any required jar files to your project.
  • Go to the Libraries tab and click on Add External JARs.
  • Select the servlet-api.jar file from the location you downloaded and add.
  • Once the jar file is added, click on Apply and Close.
  • The added jar file will be visible under the lib folder in your project.

Step 3: Create Servlet Class

  • To create a Servlet, go to folder src -> New -> Servlet.
  • If the Servlet option is not there, go to Other and search for Servlet.
  • It is a good practice to create Java classes inside Packages.
  • Enter the package name and Class name.
  • Java Servlets are available under javax.servlet.http.HttpServlet. So the Superclass is HttpServlet.
  • Click on Next.
  • As we learned about the URL mappings while creating the project, we can specify those URL mapping for the particular servlet here.
  • The URL specified here should be used in mapping the servlets either in web.xml or by using annotation.
  • It will show the default mapping name but if you want, you can change that by selecting the URL and clicking on Edit.
  • Click on Next.
  • HTTP Servlet is a protocol-specific Servlet and it provides all these methods that are shown in the above screenshot.
  • We can use these methods based on our requirements.
  • For example, if we want to implement logic while initialization of the servlet, we can override the init() method.
  • For HTTP GET requests, to get the information for the request, we can use the doGet() method.
  • Get more information on HTTP Servlet methods here.
  • In this example, we are just showing a Welcome message to the user. So, select the doGet Checkbox.
  • Click on Finish.

HelloServlet.java

  • As shown above, it creates the HelloServlet.java Servlet class with the doGet() method we selected.
  • As you can see, it automatically provided the @WebServlet(“/HelloServlet”) annotation for this servlet to map the URL. So, there is no need to enter the mapping again in the web.xml file.
  • In Java for every class there will be a default constructor, so that constructor is also auto-generated here.
  • If you are aware of the Serialization concept in Java, the serialVersionUID which is a version number associated with every serialization class is also generated while creating a Servlet in Eclipse IDE.

Step 4: Implement the Logic

  • In the doGet() method, implement the logic to display the welcome message to the user.

HelloServlet.java

  • Java
package com.example; 
import java.io.IOException;
import java.io.PrintWriter; 
import javax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 
@WebServlet("/HelloServlet")
public classHelloServlet extends HttpServlet {    
private static final longserialVersionUID = 1L;            
publicHelloServlet() {        
super();        
// TODO Auto-generated constructor stub    
}     
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         response.setContentType("text/html");
                 PrintWriter out = response.getWriter();
                 out.print("<html><body>");
                 out.print("<h2>Welcome to GeeksForGeeks</h2>");
                 out.print("</body></html>");
}
}
  • Once we get the Get request from the browser, the doGet() method will be executed.
  • Here, we are setting the response content type as “text/html” so that the response that is being sent to the client/browser will be considered as text/html.
  • In the java.io package, Java provides a PrintWriter class to print the formatted output to the text-output streams.
  • So, get the PrintWriter object and print the Welcome Message.
  • You need to add all the required packages in the servlet class.
  • As we specified the content type as “text/html”, the tags we mentioned in the output stream – out.print() will be considered as the HTML tags and the message “Welcome to GeeksForGeeks” will be written in the response to the browser.

Step 5: Run the Project

  • Right-click on the HelloServlet.java class, Run As -> Run on Server.
  • If you want to Debug the servlet, you can click on Debug also here.
  • Make sure the Tomcat server is configured properly on localhost and click on Next.
  • Check the Project you created is in configured section and then click on Finish.
  • If the project is showing in the Available section, select the project and click on Add to configure the project on the server.

Output:

  • Once the server is started, it will configure and run the HelloServlet.java file on the server.
Happy
Happy
100 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %