首先,說說jsp/servlet中的幾個編碼的作用。
在jsp/servlet中主要有以下幾個地方可以設定編 碼,pageencoding="utf-8"、contenttype="text/html;charset=utf-8"、equest.setcharacterencoding("utf-8")和 response.setcharacterencoding("utf-8"),其中前兩個只能用於jsp中,而後兩個可以用於jsp和servlet 中。
1、pageencoding="utf-8"的作用是設定jsp編譯成servlet時使用的編碼。
眾所周知,jsp在服務 器上是要先被編譯成servlet的。pageencoding="utf-8"的作用就是告訴jsp編譯器在將jsp檔案編譯成servlet時使用的 編碼。通常,在jsp內部定義的字串(直接在jsp中定義,而不是從瀏覽器提交的資料)出現亂碼時,很多都是由於該引數設定錯誤引起的。例如,你的 jsp檔案是以gbk為編碼儲存的,而在jsp中卻指定pageencoding="utf-8",就會引起jsp內部定義的字串為亂碼。
另外,該引數還有乙個功能,就是在jsp中不指定contenttype引數,也不使用response.setcharacterencoding方法時,指定對伺服器響應進行重新編碼的編碼。
2、contenttype="text/html;charset=utf-8"的作用是指定對伺服器響應進行重新編碼的編碼。
在不使用response.setcharacterencoding方法時,用該引數指定對伺服器響應進行重新編碼的編碼。
3、request.setcharacterencoding("utf-8")的作用是設定對客戶端請求進行重新編碼的編碼。
該方法用來指定對瀏覽器傳送來的資料進行重新編碼(或者稱為解碼)時,使用的編碼。
4、response.setcharacterencoding("utf-8")的作用是指定對伺服器響應進行重新編碼的編碼。
伺服器在將資料傳送到瀏覽器前,對資料進行重新編碼時,使用的就是該編碼。
下面總結下,以tomcat5.0為web伺服器時,如何防止中文亂碼。
1、對於同乙個應用,最好統一編碼,推薦為utf-8,當然gbk也可以。
2、正確設定jsp的pageencoding引數
3、在所有的jsp/servlet中設定contenttype="text/html;charset=utf-8"或response.setcharacterencoding("utf-8"),從而間接實現對瀏覽器編碼的設定。
4、 對於請求,可以使用過濾器或者在每個jsp/servlet中設定request.setcharacterencoding("utf-8")。同時, 要修改tomcat的預設配置,推薦將usebodyencodingforuri引數設定為true,也可以將uriencoding引數設定為 utf-8(有可能影響其他應用,所以不推薦)。
JSP 和 Servlet 中的幾個編碼設定
首先,說說 jsp 和 servlet 中的幾個編碼的作用.在 jsp 和 servlet 中主要有以下幾個地方可以設定編碼,pageencoding utf 8 contenttype text html charset utf 8 request.setcharacterencoding utf...
Jsp和Servlet中的路徑問題
路徑 web.xml中路徑,叫它servlet路徑!要麼以 開關,要麼為 開頭 和包含路徑 以 開頭 相對當前專案路徑,例如 http localhost 8080 專案名 request.getrequestdispacher bservlet for.不以 開頭 相對當前servlet路徑。re...
jsp中獲取不到servlet的cookie
今天做登陸,發現jsp中使用document.cookie獲取不到servlet生成的cookie,我們可以在瀏覽器的cookie資料夾中發現,servlet中生成的cookie和jsp中的生成的路徑不一樣 cookie檢視 ie瀏覽器 右上角設定 internet選項 常規瀏覽歷史紀錄設定 檢視檔...