首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP 頁面 URL 參數亂碼三大解決方案完整比較

     編輯:關於JSP

方案一:修改 Tomcat 伺服器配置 (全域生效)

  1. 編輯 tomcat/conf/server.xml
  2. 找到 <Connector> 標籤,新增 URIEncoding="GBK" (或 UTF-8)
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
  enableLookups="false" redirectPort="8443" acceptCount="100"
  debug="0" connectionTimeout="20000" disableUploadTimeout="true"
  URIEncoding="GBK" />

✅ GET 請求測試通過 | ⚠️ 需重啟 Tomcat | ⚠️ 遷移性差、伺服器層級修改

方案二:JSP 頁面統一設定編碼 (頁面級)

<%@ page pageEncoding="gb2312" %>
<%@ page contentType="text/html;charset=gb2312" %>
<% request.setCharacterEncoding("gb2312"); %>

✅ POST 請求測試通過 | ⚠️ 需每頁加入 | ⚠️ 建議搭配方案一同用

方案三:JSP Scriptlet 手動轉碼 (精確控制)

<%= new String(elValue.getBytes("ISO-8859-1"), "GBK") %>

適用於特定參數需特殊處理情境。

方案四:自訂 JSTL 標籤庫 (企業級推薦)

  1. 編寫自訂標籤處理類
  2. 編寫 .tld 標籤定義檔
  3. 部署 .tld 至 WEB-INF
  4. JSP 頁面使用 <mytag:decode>

✅ 可重用、封裝細節、統一管理 | ⚠️ 初期開發成本較高

編碼選擇建議

編碼支援範圍建議場景
GB2312簡體中文純簡體環境
GBK簡體+繁體中文需支援繁體
UTF-8全球語言國際化、現代專案首選

綜合建議

  • 新專案:全站 UTF-8 + Tomcat URIEncoding="UTF-8" + 頁面 pageEncoding="UTF-8"
  • 舊專案維護:視現況選擇方案一或二,避免混用編碼
  • 企業級框架:建議實作方案四自訂標籤庫統一處理
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved