getParameterValues(): One of the aspects of Servlets is reading the HTML/Applet data sent by the client like login data etc. For this, three methods exist in ServletRequest interface – getParameter(String), getParameterNames() and getParameterValues(). These methods are inherited by HttpServletRequest interface.
First let us see what Servlet API says about these methods. These are defined in javax.servlet.ServletRequest interface.
- public java.lang.String getParameter(java.lang.String name): Returns the value of a request parameter as a String, or null if the parameter does not exist. Request parameters are extra information sent with the request. For HTTP servlets, parameters are contained in the query string or posted form data.
- public java.util.Enumeration getParameterNames():
Returns an Enumeration of String objects containing the names of the parameters contained in this request. If the request has no parameters, the method returns an empty Enumeration. - public java.lang.String[] getParameterValues(java.lang.String name):
Returns an array of String objects containing all of the values the given request parameter has, or null if the parameter does not exist. If the parameter has a single value, the array has a length of 1.
The first method getParameter(String) is explained in Login Screen Validation. The second method is discussed in Servlet getParameterNames() Example. Now let us see the third one, getParameterValues(String).
getParameter(String) is used to read only one form field. getParameterNames() is used to read all form field data at a time.
When to use getParameterValues() to read form data?
Observe the following client HTML file, StudentAddress.html
Observe, there are total 7 form fields of which five fields are having a common name of t3. All the five form fields with t3 name comprises of a student address. The job of the servlet may be to extract all the 7 form fields data and enter into a database table. Imagine, the database have only 3 columns like stdname, stdid and stdaddress. The value of t1 goes into the stdname column, t2 goes into stdid and all the remaining five fields with name t3 goes into stdaddress.
How to do this job easily in a servlet?
Read t1 and t2 separately with getParameter(String) method as usual as you did in Login Screen Validation. Now comes our getParameterValues() method to read all the t3 values at a time. This method returns a string array containing all the values entered by the user in t3 fields. Take this array and enter into the database column. Ofcourse, the aim of this servlet is reading only but does not do any database operation.
web.xml entry for GetPNames servlet:
efgh
GetPNames
efgh
/readall
Servlet getParameterValues(): GetPNames.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class GetPNames extends HttpServlet
{
public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String address[] = req.getParameterValues("t3");
StringBuffer temp = new StringBuffer();
for(String str : address)
{
temp.append(str + ", ");
}
out.println(temp);
out.close();
}
}
getParameterValues(String) avoids reading separately. But the condition is all the fields should have the common name. The StringBuffer object temp can be taken and inserted into a database column.
Client-side HTML screen when values are entered.
Output screen on getParameterValues() Example when the submit button is clicked.
Very good lesson for confused experts and budding rookies as well. Keep it up!
how to store in database total 7 columns.because we didn’t like
setInt,setString not used .how can do this.please hope u reply to me
Use Hibernate framework where lot of your work is taken care of. Way2java discusses Hibernate also.
Easiest way is using Hibernate. Read Hibernate from this website way2java.