request.getParameterValues與request.getParameter的區別 想搞清楚為什么前者返回的是數組


問題1:慕課里面的例子是Cookie記住最近的一個用戶信息,那么/* 如何保存多個用戶名呢,如騰訊qq */?

http://www.imooc.com/qadetail/102362?t=194141#id_194141這里面的問題是  選擇框values到底返回的是什么

一、 簡單的對比

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)

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/moreorless/archive/2009/05/18/4199677.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM