一、概述
Servlet 有一個比較好的功能就是可以自動處理表單送出的資料。我們隻需要調用HttpServletRequest#getParameter(String name),就可以獲得指定參數的值(String),注意此方法是大小寫敏感的。其傳回值(String)與其對應的URL編碼一緻。當參數name存在可沒有值的時候,會傳回一個空串(“”),當參數name 不存在時,會傳回 null。當某一個參數有多個值時,可以調用方法getParameterValues(String name),傳回字元串數組。當指定參數不存在時,getParameterValues(String name)傳回null;當指定參數隻有一個值時,傳回一個隻有一個元素的數組(String)。
接着談一下的是,盡管大部分時候,servlet 都隻需要擷取指定參數的值。不過在調試時,擷取整個參數清單也是一個不錯的選擇。調用方法 getParameterNames()可以擷取表單參數名的枚舉清單,每一條目都會強制轉換為 String,可以用于getParameter(String name)和getParameterNames()。需要注意的是,所傳回的枚舉清單在任何情況下都不能保證各個元素的排列數序。
二、Demo
Demo1,讀取三個指定參數的值。如下,我們設計的一個簡單的form,
<a href="http://peiquan.blog.51cto.com/attachment/201310/21/7518552_1382326087gJhs.png"></a>
register.jsp代碼如下:
對應的,看一下Servlet ThreeParams.java 代碼如下:
其輸出效果如圖:
以上Demo示範了,如何擷取一個指定參數的值,不過都一個個來擷取的。有時候我們也許需要一次性擷取所有參數的值,那怎麼做呢???
Demo2:一次性擷取所有參數。form 表單設計如下:
<a href="http://peiquan.blog.51cto.com/attachment/201310/21/7518552_1382326090rlAR.png"></a>
info.jsp代碼如下:
現在來看一下Servlet ShowParemeter.java 的代碼設計:
其對應的輸出如下:
<a href="http://peiquan.blog.51cto.com/attachment/201310/21/7518552_1382326092q0gf.png"></a>
注意的是:getParameterNames()從不保證擷取參數的順序。
本文轉自peiquan 51CTO部落格,原文連結:http://blog.51cto.com/peiquan/1312545