關於Tomcat上請求的編解碼問題
阿新 • • 發佈:2017-08-05
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上請求的編解碼問題