1. 程式人生 > >servlet亂碼及接收表單提交引數

servlet亂碼及接收表單提交引數

servlet輸出中文(輸出到頁面的中文亂碼)(1)亂碼產生的原因
out.println
方法預設情況下會使用“iso-8859-1”
response.setContentType("text/html;charset=utf-8");
注:作用1out.println方法會使用指定的字符集來編碼作用2:設定content-type訊息頭的值
3.
如何讀取請求引數值?
1
 request.getParameter(paramNane);//paramNane一定要與表單中標籤的name屬性值一致
注意有可能獲得空值,也有可能獲得空字串,所以,在伺服器端,一定要對請求引數值做相應的檢查。
2
String[] request.getParameterValues(String paramName)//接收多個值如複選框

注意:多選框每有選擇任何選項會獲得NULL
4.
表單半含有中文引數值,如何處理?(表單提交過來的中文亂碼)(1)亂碼產生的原因表單提交是,瀏覽器會對錶單中的引數值進行編碼(開啟表單所在的頁面時使用的字符集來編碼)伺服器預設情況下,會使用“ios8859-1”來解碼。(2)解決方式
1
step,保證表單提交時,使用指定的字符集來編碼。
<meta http-equive="content-type"content="text/html;charset=utf-8"/>
2
step2,使用對應的字符集來解碼方式一
request.setCharacterEncoding("utf-8")
注意:
a.
該該方法要新增到所有的getParameter方法的前面。
b.
只針對post請求有效方式二
new String(name.getBytes("iso-8859-1"),"utf-8");
即先還原(獲得瀏覽器傳送過來的位元組陣列),然後使用正確的字符集("utf-8")來解碼