Retrieval of form fields name at Server end

Purpose:

    How to retrieve names of fields, instead of values (from the form) at the Server Side?

Steps:
1) Create “MyServlet.java”, as servlet file (don’t know how to create a servlet file in Eclipse? Refer to our post: “ Servlet in Eclipse IDE“)

import java.io.*;
import java.util.Enumeration;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class MyServlet extends HttpServlet
{
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		response.setContentType("text/html"); 
		// informing the client that which format of data/response will be send
		PrintWriter out= response.getWriter(); 
		
		Enumeration e1= request.getParameterNames();
		// will retrieve all text fields names, from the HTML form using "getParameterNames()" method
		// and store in Enumeration type "e1"
		//Enumeration is an interface, whose objects has capability to store in Array form
		
		out.print("<br> The names are <br>");
		
		while(e1.hasMoreElements()) // returns TRUE/FALSE, if value is present or not
		{
			out.print("<br>"+e1.nextElement()); 
			//returns the next value from "e1"
		}
	}
}

2) Create “index.html”, as HTML file (you can refer: “How to add HTML file in your Servlet Program using Eclipse“)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<form action="MyServlet" method="get">
Here are 4 fields, with 4 different names
1<input type="text" name="num"><br> 
2<input type="text" name="num1"><br> 
3<input type="text" name="num2"><br> 
4<input type="text" name="num3"><br> 
<input type="Submit" value="Submit">

</form>
</body>
</html>

3) Press “CTRL”+ F11
4

OUTPUT
1
2

HTML + Servlet Program using Eclipse

Purpose:

    How to add a HTML file into your Servlet using Eclipse?

Steps:
1) Create the following Servlet file in Eclipse (don’t know how to create a servlet in Eclipse? Refer to our post: “ Servlet in Eclipse IDE“)

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyServlet extends HttpServlet
{
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		response.setContentType("text/html"); // informing the client that which format of data/response will be send
		PrintWriter out= response.getWriter(); 
		
		//All data entered into a "TEXT" field of form, is stored as "STRING"
		//Hence if we enter "1" in a "TEXT" field of form, it will be stored as "ONE"
		//To convert it to "INT", we use a predefined function called= "parseInt()"
		int a1= Integer.parseInt(request.getParameter("n1")); 
		// using "getParameter()" to retrieve data entered by user in "n1" field
		int a2= Integer.parseInt(request.getParameter("n2")); 
		
		if (request.getParameter("r1")!=null) // checking if 1st radio button checked or not?
		{
			out.println("<h3> Addition= </h3>"+(a1+a2));
		}
		else if(request.getParameter("r2")!=null) // checking if 2nd radio button checked or not?
		{
			out.println("<h3> Subtraction= </h3>"+(a1-a2));
		}
		else if(request.getParameter("r3")!=null) //checking if 3rd radio button checked or not?
		{
			out.println("<h3> Multiply= </h3>"+(a1*a2));
		}
		else
		{
			out.println("<h3> Divide= </h3>"+(a1/a2));
		}		
	}

}

2) Next create a HTML File
Right click on “WebContent” folder –> New –> HTML File

Enter File Name: “index.html” and click on “FINISH” button

3) Now replace the existing “index.html” file code with this

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<form action="MyServlet" method="get">
Enter 1st Number <input type="text" name="n1"><br>
Enter 2nd Number <input type="text" name="n2"><br>

<input type="radio" name="r1" value="Add">Add<br>
<input type="radio" name="r2" value="Subtract">Subtract<br>
<input type="radio" name="r3" value="Multiply">Multiply<br>
<input type="radio" name="r4" value="Divide">Divide<br>
<input type="Submit" value="Submit">

</form>
</body>
</html>

4) Now press “CTRL”+F11, you will get the following screen. Click on “FINISH BUTTON”, selecting WEB SERVER.

5) You will get output

6) Enter two numbers and perform any option like:

Eclipse IDE- Servlet Program

Steps:
You need to follow the following steps in order to create a Servlet in Eclipse:

  • Create a web project
  • Create a Servlet
  • Start Tomcat server and deploy project

Prerequisites:

  1. Eclipse IDE for Java EE Developers(download link)
  2. Apache Tomcat 6.0/7.0(download link , choose “32-bit/64-bit Windows Service Installer” to download from this link and install it by double click on the “.exe” file contained in archive)
  3. Once you are done with installation of Tomcat, remember not to run it at the same instance. As it will get conflicted later with Eclipse, when we deploy our project. Hence make sure that Apache services are stopped

Create a web project:
Select from the menu File –> New –> Dynamic Web Project.

Enter “FirstServlet” as your project name. Click on “NewRuntime” button and select “Apache Tomcat v6.0”.


Click “Next” button.

Click “Next” button.

Click on “Finish” button

Create a Servlet:
Select from the menu File –> New –> Servlet

Write “MyServlet” in the ‘Class Name’ field and then Click ‘Next’ button.

Now in case you want to specify deployment descriptor (web.xml), you can do this here and then Click ‘Next’ button.

Click on “Finish” button

Now you will get something like this

Now remove all that coding and replace it with

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyServlet extends HttpServlet
{
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		response.setContentType("text/html"); // informing the client that which format of data/response will be send
		PrintWriter out= response.getWriter(); 
		out.println("<hr>HELLO SERVLET</h3>"); // printing on the client

	}

}

Start Tomcat server and deploy project:
Right click on the project ‘FirstServlet’ and select from context menu ‘Run As’ –> ‘Run on Server’

Select the existing tomcat server
Click “Finish” button.
FirstServlet will get deployed.

OR
Press CTRL+F11, to run web application,

Click “Finish” button.
And you will see the output as