Launch your tech mastery with us—your coding journey starts now!
Course Content
Advanced Java
Reading Form Data using JSP

JSP handles form data parsing automatically using the following methods depending on the situation:

  • getParameter(): You call request.getParameter() method to get the value of a form parameter.
  • getParameterValues(): Call this method if the parameter appears more than once and returns multiple values, for example checkbox.
  • getParameterNames(): Call this method if you want a complete list of all parameters in the current request.
  • getInputStream(): Call this method to read binary data stream coming from the client.
GET Method Example Using URL:

Here is a simple URL which will pass two values to HelloForm program using GET method.

http://localhost:8080/main.jsp?first_name=tycs&last_name=2014

Below is main.jsp JSP program to handle input given by web browser. We are going to usegetParameter() method which makes it very easy to access passed information:

<html>

<head>

<title>Using GET Method to Read Form Data</title>

</head>

<body>

<center>

<h1>Using GET Method to Read Form Data</h1>

<ul>

<li><p><b>First Name:</b>

   <%= request.getParameter(“first_name”)%>

</p></li>

<li><p><b>Last  Name:</b>

   <%= request.getParameter(“last_name”)%>

</p></li>

</ul>

</body>

</html>

Now type http://localhost:8080/main.jsp?first_name=tycs&last_name=2014 in your browser’s Location:box. This would generate following result:

Using GET Method to Read Form Data
  • First Name: tycs
  • Last Name: 2014
GET Method Example Using Form:

Here is a simple example which passes two values using HTML FORM and submit button. We are going to use same JSP main.jsp to handle this input.

<html>

<body>

<form action=”main.jsp” method=”GET”>

First Name: <input type=”text” name=”first_name”>

<br />

Last Name: <input type=”text” name=”last_name” />

<input type=”submit” value=”Submit” />

</form>

</body>

</html>

When you would access http://localhost:8080/Hello.html, below is the actual output of the above form.

Top of Form

First Name:  
Last Name:  

Bottom of Form

Try to enter First and Last Name and then click submit button to see the result on your local machine where tomcat is running.

Based on the input provided, it would generate similar result as mentioned in the above examples.

POST Method Example Using Form:

Let us do little modification in the above JSP to handle GET as well as POST methods. Below ismain.jsp JSP program to handle input given by web browser using GET or POST methods.

Infact there is no change in above JSP because only way of passing parameters is changed and no binary data is being passed to the JSP program. File handling related concepts would be explained in separate chapter where we need to read binary data stream.

<html>

<head>

<title>Using GET and POST Method to Read Form Data</title>

</head>

<body>

<center>

<h1>Using GET Method to Read Form Data</h1>

<ul>

<li><p><b>First Name:</b>

   <%= request.getParameter(“first_name”)%>

</p></li>

<li><p><b>Last  Name:</b>

   <%= request.getParameter(“last_name”)%>

</p></li>

</ul>

</body>

</html>

Following is the content of Hello.html file:

<html>

<body>

<form action=”main.jsp” method=”POST”>

First Name: <input type=”text” name=”first_name”>

<br />

Last Name: <input type=”text” name=”last_name” />

<input type=”submit” value=”Submit” />

</form>

</body>

</html>

Now let us keep main.jsp and hello.htm in <Tomcat-installation-directory>/webapps/ROOT directory. When you would access http://localhost:8080/Hello.htm, below is the actual output of the above form.

Top of Form

First Name:  
Last Name:  

Bottom of Form

Try to enter First and Last Name and then click submit button to see the result on your local machine where tomcat is running.

Based on the input provided, it would generate similar result as mentioned in the above examples.

Passing Checkbox Data to JSP Program

Checkboxes are used when more than one option is required to be selected.

Here is example HTML code, CheckBox.htm, for a form with two checkboxes

<html>

<body>

<form action=”main.jsp” method=”POST” target=”_blank”>

<input type=”checkbox” name=”maths” checked=”checked” /> Maths

<input type=”checkbox” name=”physics”  /> Physics

<input type=”checkbox” name=”chemistry” checked=”checked” /> 

                                                Chemistry

<input type=”submit” value=”Select Subject” />

</form>

</body>

</html>

The result of this code is the following form

Top of Form

 Maths  Physics  Chemistry 

Bottom of Form

Below is main.jsp JSP program to handle input given by web browser for checkbox button.

<html>

<head>

<title>Reading Checkbox Data</title>

</head>

<body>

<center>

<h1>Reading Checkbox Data</h1>

<ul>

<li><p><b>Maths Flag:</b>

   <%= request.getParameter(“maths”)%>

</p></li>

<li><p><b>Physics Flag:</b>

   <%= request.getParameter(“physics”)%>

</p></li>

<li><p><b>Chemistry Flag:</b>

   <%= request.getParameter(“chemistry”)%>

</p></li>

</ul>

</body>

</html>

For the above example, it would display following result:

Reading Checkbox Data
  • Maths Flag : : on
  • Physics Flag: : null
  • Chemistry Flag: : on
Reading All Form Parameters:

Following is the generic example which uses getParameterNames() method of HttpServletRequest to read all the available form parameters. This method returns an Enumeration that contains the parameter names in an unspecified order.

Once we have an Enumeration, we can loop down the Enumeration in the standard manner, usinghasMoreElements() method to determine when to stop and using nextElement() method to get each parameter name.

<%@ page import=”java.io.*,java.util.*” %>

<html>

<head>

<title>HTTP Header Request Example</title>

</head>

<body>

<center>

<h2>HTTP Header Request Example</h2>

<table width=”100%” border=”1″ align=”center”>

<tr bgcolor=”#949494″>

<th>Param Name</th><th>Param Value(s)</th>

</tr>

<%

   Enumeration paramNames = request.getParameterNames();

   while(paramNames.hasMoreElements()) {

      String paramName = (String)paramNames.nextElement();

      out.print(“<tr><td>” + paramName + “</td>n”);

      String paramValue = request.getHeader(paramName);

      out.println(“<td> ” + paramValue + “</td></tr>n”);

   }

%>

</table>

</center>

</body>

</html>

Following is the content of Hello.htm:

<html>

<body>

<form action=”main.jsp” method=”POST” target=”_blank”>

<input type=”checkbox” name=”maths” checked=”checked” /> Maths

<input type=”checkbox” name=”physics”  /> Physics

<input type=”checkbox” name=”chemistry” checked=”checked” /> Chem

<input type=”submit” value=”Select Subject” />

</form>

</body>

</html>

Now try calling JSP using above Hello.htm, this would generate a result something like as below based on the provided input:

Reading All Form Parameters

Param Name

Param Value(s)

maths

on

chemistry

on

You can try above JSP to read any other form’s data which is having other objects like text box, radio button or drop down box etc.