request.getParameterValues 与 request.getParameter的区别

来源:互联网 发布:淘宝花钱推广有用吗 编辑:程序博客网 时间:2024/04/29 23:29

一、 简单的对比

request.getParameter用的比较多,相对熟悉

 

 

request.getParameterValues(String   name)是获得如checkbox类(名字相同,但值有多个)的数据。   接收数组变量 ,如checkobx类型     
request.getParameter(String   name)是获得相应名的数据,如果有重复的名,则返回第一个的值 . 接收一般变量 ,如text类型

 

例:

1. 三个名字相同的text标签

<input type="text" name="test" value="1" /> 
<input type="text" name="test" value="2" /> 
<input type="text" name="test" value="3" />

 

request.getParameterValues("test")   ----------------- [1, 2, 3]

request.getParameter("test")             ------------------ 1

 

${paramValues.test}

${param.test}

 

2. checkbox

 <input type="checkbox" name="habit" value="read">看书

 <input type="checkbox" name="habit" value="movie">电影

 <input type="checkbox" name="habit" value="game">游戏

request.getParameterValues("habit")

 

 

二、与此相关的话题------隐含对象

 

1. JSP隐含对象(Implicit Object)

 

     所谓隐含对象,是指当编写jsp网页时,不必做任何声明就可以直接使用的对象。 JSP2.0定义了九个隐含对象

 

request response pageContext session application out conifg page exception

 

这里只提一下request 和 response 两个对象

       request 对象表示客户端请求的内容,比如我们从request中取得了用户输入的内容,实现了javax.servlet.http.HttpServletRequest接口

      response对象表示响应客户端的结果。

上面我们使用了request的两个方法getParameter 和 getParameterValues,其实request还有其他几个比较重要的方法,这里只涉及几个获取请求参数的方法

String getParameter(String name)                     取得name的参数值

String[] getParameterValues(String name)        取得所有name的参数值

Enumeration getParameterNames()                  取得所有的参数名称

Map<String, String[]> getParameterMap()        取得request的所有参数的一个映射

//

Returns a java.util.Map of the parameters of this request. Request parameters are extra information sent with the request. For HTTP servlets, parameters are contained in the query string or posted form data.

 

Returns:
an immutable java.util.Map containing parameter names as keys and parameter values as map values. The keys in the parameter map are of type String. The values in the parameter map are of type String array.

//

 

response等其他几个隐含对象也有非常重要的身份,有机会专门整理一下,宣扬一下它们的显赫地位。

 

2. EL隐含对象

 

EL即Experssion Language,自JSP2.0后正式成为JSP的标准规范之一,支持Servlet2.4/JSP2.0的Container也就相应的支持EL语法。

一个常见的形式如,<c:out value="${ 3 + 7 * 4}" />

EL的隐藏对象有11个 PageContext PageScope RequestScope sessionScope applicationScope

param paramValues header headerValues cookie initParam

其中param 和 paramValues即对相应ServletRequest.getParameter(String name)和ServletRequest.getParameterValues(String name)


转自:http://blog.csdn.net/moreorless/article/details/4199677

=============================================================

jsp中的request.getParameterNames()和request.getParameterValues()详解
  request.getParameterNames()方法是将发送请求页面中form表单里所有具有name属性的表单对象获取(包括button).返回一个Enumeration类型的枚举.
  通过Enumeration的hasMoreElements()方法遍历.再由nextElement()方法获得枚举的值.此时的值是form表单中所有控件的name属性的值.
  最后通过request.getParameter()方法获取表单控件的value值.
  Enumeration pNames=request.getParameterNames();
while(pNames.hasMoreElements()){
  String name=(String)pNames.nextElement();
  String value=request.getParameter(name);
 out.print(name + "=" + value);
}
  request.getParameterValues("name")方法将获取所有form表单中name属性为"name"的值.该方法返回一个数组.遍历数组就可得到value值.
  String values = request.getParameterValues("name");
for(String value : values){
  System.out.println(value);
}
  request.getParameterNames()的值是无序排列request.getParameterValues()是按照from表单的控件顺序排列.

0 0