Open In App

Simple Bill Splitter Application using Java Servlets

Last Updated : 02 Dec, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

Pre-requisite: Java Servlets

Servlets is a Java Technology for server-side programming generally used to create web applications. It is a module that runs inside a Java-enabled web server. 

Here, you will see the implementation by developing a Bill Splitter Application. In this Java Servlets app, there are two input columns one for the total bill amount and the second column is for the number of people in which the bill will be split. Let’s have a look.

Input :

Input your bill(Integer value)     : GUI_User_Input 
Enter no. of people(Integer value) : GUI_User_Input

Output :

Result will display once user will give input and will click on submit button (Double data type value) 

Input your bill /Enter no. of people

Here, we will build a simple web application that will split the bill amount among the specified number of people.

Understanding how a Servlet works :

  • The client sends a request to the server and the request goes to the Web Container.
  • The Web Container uses a file named web.xml to detect which servlet to call and it calls the required servlet.
  • The servlet will process the information and will send a response to the client machine.

Setting up the Eclipse IDE:

  • Download the Eclipse IDE for Java EE Development from http://www.eclipse.org/downloads/
  • Download the Tomcat server from https://tomcat.apache.org
  • Go to File>New>Dynamic Web Project.
  • Add the link to the folder containing Tomcat to the Servlets tab at the bottom of the window and you’re all set to create your first servlet!

Creating the HTML file for Web layout :

Create a simple HTML file that includes a form to input details about the bill amount and the number of people. 

HTML




<!DOCTYPE html>
<html>
 
<head>
<meta charset="UTF-8">
<title>Bill Splitter</title>
 
 <!-- CSS properties. -->
  <style type="text/css">
  body
{
background-color:skyblue;
text-align:center;
}
</style>
</head>
 
<body>
<h1>Bill Splitter</h1>
   
<!-- Application GUI form HTML code --> 
<form action="splitter">
Input your bill: <input type="text" name="bill">
<br>
Enter no. of people: <input type="text" name="people">
<br>
<input type="submit">
</form>
</body>
   
</html>


 
 

Creating the Java file: 

Create a new class and extend the HttpServlet class to make your java class a servlet. In the case of Servlet file, response, and request object includes in servlet class. The req object is used to fetch data from the client while the res object is used to send a response to the client. These two functions parseInt and getParameter will help to take input from HTML form and will take integer value from that and then the calculation will be performed and you will see PrintWriter object to print the output value.

parseInt is used to convert string to integer.
getParameter is used to get the user input in string form.
PrintWriter is used to fetch output to the output window and not the console.

Java




package servlet;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class split extends HttpServlet{
     
public void service(HttpServletRequest req, HttpServletResponse res) throws IOException
{
    int i = Integer.parseInt(req.getParameter("bill"));
    int j = Integer.parseInt(req.getParameter("people"));
    double r = i/j;
     
    System.out.println(r);
   
    PrintWriter out=res.getWriter();
     
    out.println("Bill per person is Rs" +r);   
}
}


 
 Configuring the web.xml file:

Whenever you create a new dynamic web project, you get a file named web.xml in your Project Folder which is the most important file for mapping together the servlet and the HTML file. The web.xml file uses two tags <servlet> & <servlet-mapping> to map the Servlet and HTML file together. 

<servlet-name> is used to assign a universal name to the servlet.
<servlet-class> is used to assign the java class to be executed when servlet is called.
<url-pattern> is used to define the url pattern which when found will call the java class 
defined in <servlet-class>

XML




<?xml version="1.0" encoding="UTF-8"?>
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         id="WebApp_ID" version="4.0">
  <display-name>servlet</display-name>
  
 
 <servlet>
 <servlet-name>serv1</servlet-name>
 <servlet-class>servlet.split</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>serv1</servlet-name>
 <url-pattern>/splitter</url-pattern>
 </servlet-mapping>
   
</web-app>


 
 Running the Application:

Start the server and RUN!
 

 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads