JSP在Servlet中的幾個編碼的作用及原理

2021-08-22 19:00:47 字數 1426 閱讀 2166

首先,說說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選項 常規瀏覽歷史紀錄設定 檢視檔...