解決GET與POST亂碼問題:
請求的亂碼問題
- GET:tomcat8版本之前,get請求會亂碼
正常文字 --> UTF-8編碼 --> 字節數組 --> ISO-8859-1 編碼 --> 亂碼文字
正常文字 <-- UTF-8編碼 <-- 字節數組 <-- ISO-8859-1 編碼 <-- 亂碼文字
- 解決亂碼的兩種格式:
- 格式1:可用于tomcat8版本之前的GET請求編碼 以及 所有版本的POST請求亂碼:
解決方案: 將亂碼的文字,按照亂碼的編碼ISO-8859-1轉換為字節數組,在按照正常的白馬UTF-8組裝為文字; - 格式2:格式1,解決亂碼適用于參數較少的情況,如果參數過多,解決起來極其麻煩
tomcat為我們提供了設置請求體編碼的方式:
注意: 只有POST請求,才有請求體
格式:request.setCharacterEncoding("UTF-8);
- 格式1:可用于tomcat8版本之前的GET請求編碼 以及 所有版本的POST請求亂碼:
- 注意:
- 解決請求亂碼的代碼,必須運行在獲取參數之前
request.setCharacterEncoding(""")
- 解決請求亂碼的代碼,必須運行在獲取參數之前
響應的亂碼問題
- 方式1:設置網頁的內容類型,以及網頁的編碼格式:
response.setContentType("text/html;charset=utf-8");
- 方式2:設置網頁的編碼格式(因為沒有設置網頁內容類型為html,所以瀏覽器根被就不把他當html解析,當然就亂碼了)
response.setCharacterEncoding("UTF-8");
作業:
- 編寫注冊頁面
- 要求:連接數據庫,將表單的數據提交到servlet,在通過servlet將數據插入到數據庫user29表格中
- 編寫登錄頁面
- 要求: 連接數據庫,將表單的數據與user29表格中數據對比,匹配提示登錄成功,否則提示登錄失敗
- 編寫修改密碼頁面
- 要求: 連接數據庫,將表單的數據提交到servlet,在通過servlet修改數據庫中user29表格的數據
- 編寫主頁:
- 要求: 查詢數據庫user29表格,將表格中所有數據,展示到瀏覽器中
作業實現
項目地址:
https://github.com/victorfengming/xdl_javaweb
采用技術:
- JDBC + 連接池
- Tomcat + Servlet
- Oracle