Understanding Super Keyword

Purpose:

    Understanding Super Keyword

Program:

class A
{
	int x;	//declare a variable 'x'
	public a()
	{
		System.out.println("Inside constructor");
	}
	void show()
	{
		x=100;    // assign 'x' variable a value 100
		System.out.println(x); //print value of x
	}
}
class B extends A
{
	public b()  //this is a constructor
	{
		super(); // calls constructor of class A
		super.show(); // calls method of class A
		System.out.println(Super.x);  // calls memeber of class A, that is "x" variable
	}
}

Explanation:
Whenever one class inherits another class, you can call

    parent class constructor via “super();”
    parent class method via “super.show();”
    parent class variable via “super.x;”

Output:
Inside constructor
100
100

For Each loop in Java

Purpose:

    Understanding enhanced for loop

Program:

public class ArrayDemo
{
	public static void main(String args[])
	{
		// declare an array of size 3
		int arr[]= new int[3]; 
		// initialize array with 3 values
		arr[0]=1;
		arr[1]=2;
		arr[2]=3;
		
		//using FOR EACH loop
		for(int n:arr)
		{
			System.out.println(n); // printing array values
		}
	}
}

Explanation:
Here with help of for each loop, we retrieve array values one by one from an array, “arr” and store it in a variable “n”. This for each loop automatically retrieves value one by one, hence no need of increment operator like used in a normal for loop i.e

for(int a; a<3; a++)

Capture

Same program using normal for loop:

public class ArrayDemo
{
	public static void main(String args[])
	{
		// declare an array of size 3
		int arr[]= new int[3]; 
		// initialize array with 3 values
		arr[0]=1;
		arr[1]=2;
		arr[2]=3;
		
		//using FOR loop
		for(int n=0; n<3; n++)
		{
			System.out.println(arr[n]); 
			// printing array values
		}
	}
}

Capture

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

Database connection in Servlet

Purpose:

    How to connect your Servlet with Database?

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 javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*; // for database purpose
 
public class MyServlet extends HttpServlet
{
	Connection con;
	Statement stmt;
	ResultSet rs;
	
	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(); 
		
		String name= request.getParameter("num");
		// will retrieve "NUM" field value entered by user using "getParameter()"
		// and store in STRING "name"
		
		try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			con= DriverManager.getConnection("Jdbc:Odbc:dbs123");
			stmt= con.createStatement();
			
			rs=stmt.executeQuery("Select * from Student where s_name= '"+name+"' ");
			// Retrieving all columns from Database where "name" matches
			// Name of table is "Student"
			
			if(rs.next())
			{
				out.println("<h3> Name=</h3>" +rs.getString("s_name")); // Printing Name from Database
				out.println("<br> Address=" +rs.getString("address"));  // Printing Address from Database
			}
			else
			{
				out.println("<h3> ID is not exists</h3>"); // If no such ID found in Database
			}
		}
		catch(Exception e)
		{
			out.println(e);
		}
	}

}

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">
Enter the ID of Student
<input type="text" name="num"><br> 

<input type="Submit" value="Submit">

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

3) Create “DBServlet” database file

Design View of database

4) Configure database in Administrative Tools from Control Panel
ODBC –> ADD –> Microsoft Access Driver (*.mdb,*.accdb)

Under “Data Source Name” enter: “dbs123” (as mentioned in Servlet file)
Click on “Select”
from “C” directory, choose appropriate database, i.e “DBServlet.accdb”
Click on “OK”

5) Press “CTRL”+ F11

OUTPUT

How to retrieve a form at Server end using Servlet

Purpose:

    How to retrieve data from various fields of a particular form at Server Side, specially when multiple field names are same

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 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(); 
		
		String Values[] = request.getParameterValues("num"); 
		// will retrieve all field values entered by user using "getParameterValues()"
		// and store in STRING ARRAY
		
		out.println("<h3> The Values are </br>");
		
		for(int i=0; i<Values.length; i++)
		{
			out.println("<br>" +Values[i]); // print all field values entered by user in form
		}
	}

}

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">
<input type="text" name="num"><br>  //Field 1 name is "num"
<input type="text" name="num"><br> //Field 2 name is "num"
<input type="text" name="num"><br> 
//Field 3 name is "num". 
//So all 3fields name are same, 
//Let's check whether we be able to retrieve & differentiate data entered by user in these fields.

<input type="Submit" value="Submit">

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

3) Press “CTRL+F11”

4) Output will be

Enter values in field and click on “Submit” button

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