很多情況下,需要傳遞一些信息,從瀏覽器到 Web 服務(wù)器,最終到后臺程序。瀏覽器使用兩種方法可將這些信息傳遞到 Web 服務(wù)器,分別為 GET 方法和 POST 方法。
GET 方法向頁面請求發(fā)送已編碼的用戶信息。頁面和已編碼的信息中間用 ? 字符分隔,如下所示:
http://www.test.com/hello?key1=value1&key2=value2GET 方法是默認的從瀏覽器向 Web 服務(wù)器傳遞信息的方法,它會產(chǎn)生一個很長的字符串,出現(xiàn)在瀏覽器的地址欄中。如果您要向服務(wù)器傳遞的是密碼或其他的敏感信息,請不要使用 GET 方法。GET 方法有大小限制:請求字符串中最多只能有 1024 個字符。
這些信息使用 QUERY_STRING 頭傳遞,并可以通過 QUERY_STRING 環(huán)境變量訪問,Servlet 使用 doGet() 方法處理這種類型的請求。
向后臺程序傳遞信息的比較可靠的方法是 POST 方法。POST 方法打包信息的方式與 GET 方法基本相同,但是 POST 方法不是把信息作為 URL 中 ? 字符后的文本字符串進行發(fā)送,而是把這些信息作為一個單獨的消息。消息以標準輸出的形式傳到后臺程序,您可以解析和使用這些標準輸出。Servlet 使用 doPost() 方法處理這種類型的請求。
Servlet 處理表單數(shù)據(jù),這些數(shù)據(jù)會根據(jù)不同的情況使用不同的方法自動解析: (1)getParameter():您可以調(diào)用 request.getParameter() 方法來獲取表單參數(shù)的值。 (2)getParameterValues():如果參數(shù)出現(xiàn)一次以上,則調(diào)用該方法,并返回多個值,例如復(fù)選框。 (3)getParameterNames():如果您想要得到當前請求中的所有參數(shù)的完整列表,則調(diào)用該方法。
注意:如果表單提交的數(shù)據(jù)中有中文數(shù)據(jù)則需要轉(zhuǎn)碼:
String name =new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8");參考文章: Servlet表單數(shù)據(jù)|菜鳥教程
新聞熱點
疑難解答