1.第一種前端
Map<String, String[]> paramMaps = request.getParameterMap();//接受參數java
String 表單名=((String[]) paramMaps.get("表單名"))[0];數組
獲取表單數據時老是用request.getParameter(「name」),根據表單中的name值獲取value值,須要獲取幾項就得重複寫幾回getParameter,而request.getParameterMap方法則不一樣,不須要參數,返回結果爲Map<String,String[]> 。其實,request.getParameterMap()方法也是經過前臺表單中的name值進行獲取的,獲取到後又進行了一次封裝。 之因此返回的map中的value爲字符串類型的數組,是爲了解決表單中有多個name值同樣的項。安全
1、服務器
根據Java規範:request.getParameterMap()返回的是一個Map類型的值,該返回值記錄着前端(如jsp頁面)所提交請求中的請求參數和請求參數值的映射關係。這個返回值有個特別之處——只能讀。不像普通的Map類型數據同樣能夠修改。這是由於服務器爲了實現必定的安全規範,所做的限制。好比WebLogic,Tomcat,Resin,JBoss等服務器均實現了此規範。jsp
若是實在有必要在取得此值之後作修改的話,要新建一個map對象,將返回值複製到此新map對象中進行修改,用新的map對象代替使用以前的返回值。ide
2、this
對request.getParameterMap()的返回值使用泛型時應該是Map<String,String[]>形式,由於有時像checkbox這樣的組件會有一個name對應對個value的時候,因此該Map中鍵值對是<String-->String[]>的實現。spa
舉例,在服務器端獲得jsp頁面提交的參數很容易,但經過request.getParameterMap()能夠將request中的參數和值變成一個Map。.net
如下是將獲得的參數和值打印出來,造成的map結構:Map(key,value[]),即:key是String型,value是String型數組。
例如:request中的參數t1=1&t1=2&t2=3造成的map結構:
key=t1;value[0]=1,value[1]=2
key=t2;value[0]=3
若是直接用map.get("t1"),獲得的將是:Ljava.lang.String; value之因此是數組形式,就是防止參數名有相同的狀況。
遍歷request.getParameterMap()裏面的值:
3、當傳遞的參數個數不固定且參數名沒有重複的,取值的方法:
//獲得枚舉類型的參數名稱,參數名稱如有重複的只能獲得第一個
Map map = new HashMap();