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

JSP URL 傳遞中文參數編碼解碼最佳實踐

     編輯:關於JSP

雙重編碼解決方案

前端 JSP 頁面:雙重 encodeURI

var url = "target.jsp?param=" + encodeURI(encodeURI("中文參數"));

後端 Java 程式:URLDecoder 解碼

String param = URLDecoder.decode(request.getParameter("param"), "UTF-8");

特殊字元處理

若參數包含 +、#、? 等特殊符號,改用 encodeURIComponent:

前端:雙重 encodeURIComponent

var url = "target.jsp?param=" + encodeURIComponent(encodeURIComponent("中文+特殊#字元?"));

後端:相同解碼方式

String param = URLDecoder.decode(request.getParameter("param"), "UTF-8");

編碼函數差異比較

函數編碼範圍適用情境
encodeURI不編碼 ASCII 字母數字、~!@#$&*()=:/,;?+'完整 URL 編碼
encodeURIComponent編碼所有非字母數字字元URL 參數值編碼

完整範例

<!-- JSP 頁面 -->
<a href="detail.jsp?name=<%=encodeURI(encodeURI(productName))%>">查看詳情</a>

<!-- Java Servlet/Controller -->
String name = URLDecoder.decode(request.getParameter("name"), "UTF-8");

最佳實踐建議

  • 統一專案編碼為 UTF-8(頁面、資料庫、伺服器配置)
  • 前端雙重編碼、後端單次解碼
  • 參數值務必使用 encodeURIComponent 而非 encodeURI
  • 考慮改用 POST 表單提交避免 URL 長度限制與編碼問題
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved