get方式:
表單數據存放在URL地址后面。所有get方式提交時HTTP中沒有消息體。
1、get請求實現方式:
1)直接在URL地址欄中輸入URL
2)網頁中的超鏈接
3)form中method為get
4)form中method為空時,默認是get提交
post方式:
表單數據存放在HTTP協議的消息體中以實體的方式傳送到服務器。
傳送的數據量
GET方式:數據量長度有限制,一般不超過2kb。因為是參數傳遞,且在地址欄中,故數據量有限制。
POST方式:適合大規模的數據傳送。因為是以實體的方式傳送的。
安全性
GET方式:安全性差。因為是直接將數據顯示在地址欄中,瀏覽器有緩沖,可記錄用戶信息。所以安全性低。
POST方式:安全性高。因為post方式提交數據時是采用的HTTP post機制,是將表單中的字段與值放置在HTTP HEADER內一起傳送到ACTION所指的URL中,用戶是看不見的。
服務端如何獲取:
request提供的方法:
String getParameter(String paramName)
paraName寫錯會返回null
表單不填會返回空字符串
String[] getParameterValues(String paramName)
當需要獲取參數名相同的多個參數值時使用該方法,多用於獲取提交的表單中復選框的值
參數名不存在時返回null
如何處理中文參數?
表單提交時,瀏覽器會對中文參數值進行編碼。服務器端默認使用ISO-8859-1來解碼。注:瀏覽器會使用表單所在頁面打開時使用的字符集來編碼
如果表單提交方式是get
在servers配置文件的<connector>標簽內添加URIEncoding=“utf-8”
如果表單提交方式是post
request.setCharacterEncoding("utf-8"); 注:要加到所有的request.getParameter()前面
Servlet在瀏覽器輸出中文
為什么會亂碼?
out在輸出時默認使用iso-8859-1編碼
如何解決?
response.setContentType("text/html;charset=utf-8"); 此句必須寫在PrintWriter對象聲明之前,親測。
