1. 程式人生 > >關於Tomcat上請求的編解碼問題

關於Tomcat上請求的編解碼問題

tomcat 編碼

最近翻閱《深入分析 Java Web 技術內幕》(作者:許令波),關於Tomcat上Web請求的編解碼問題,少了一個小點,可能影響了部分讀者的理解,我特意查證了一下,特總結如下:

1. 請求的PathInfo部分用Tomcat的Connector元素的URIEncoding屬性指定的編碼來解碼。

具體使用可參考:https://tomcat.apache.org/tomcat-8.5-doc/config/http.html。


2. 第二先說請求體(POST正文)的解析,Tomcat按下次順序去獲取字符編碼:

1)用戶通過類似代碼指定:<%request.setCharsetEncoding("utf-8")%>

2) 請求報文content-type請求頭指定的編碼。

3)應用web.xml配置的統一編碼(這個目前在Servlet4.0規範中)

4) 系統默認的ISO8859-1

3. 另外就是QueryString部分的解析,默認情況下Tomcat采用與1)相同的URIEncoding來解析QueryString。 但同時Tomcat提供了另一個參數useBodyEncodingForURI。字面意思用報文體編碼來解析QueryString。 若該參數為true.則Tomcat采用與2)相同的編碼來解析QueryString。



本文出自 “天下無賊” 博客,請務必保留此出處http://guojuanjun.blog.51cto.com/277646/1953674

關於Tomcat上請求的編解碼問題