首先,說說 jsp 和 servlet 中的幾個編碼的作用. 在 jsp 和 servlet 中主要有以下幾個地方可以設定編碼,pageencoding="utf-8", contenttype="text/html;charset=utf-8",request.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 equest.setcharacterencoding utf 8 和 res...
Jsp和Servlet中的路徑問題
路徑 web.xml中路徑,叫它servlet路徑!要麼以 開關,要麼為 開頭 和包含路徑 以 開頭 相對當前專案路徑,例如 http localhost 8080 專案名 request.getrequestdispacher bservlet for.不以 開頭 相對當前servlet路徑。re...
jsp和servlet中頁面跳轉彙總
當前專案路徑 要跳轉的位置。請參考相對路徑和絕對路徑的獲取方法 1.位址上顯示的是最後的那個資源的路徑位址 2.請求次數最少有兩次,伺服器在第一次請求後,會返回302 以及乙個位址,瀏覽器在根據這個位址,執行第二次訪問。3.可以跳轉到任意路徑。不是自己的工程也可以跳。4.效率稍微低一點,執行兩次請求...