1. 程式人生 > >Tomcat6.0下,請求url帶特殊字元|、\等導致解析出錯

Tomcat6.0下,請求url帶特殊字元|、\等導致解析出錯

Tomcat6.0下,請求url帶特殊字元|、\等導致解析出錯

背景

  • 由於人力問題,最近被叫去搞下Java web ,幫忙做公司的一個老系統,用的是jdk6 和tomcat6,而我自己電腦之前裝的是jdk1.7和tomcat7 ,覺得應該沒什麼關係就懶得去換。但是前兩天遇到的一個問題讓我意識到不同版本的開發環境影響還是比較大的,沒辦法只能跟公司同步用6了。

問題

  • 出問題的功能是這樣的,點選一個按鈕跳到一個展示資訊的頁面,其中包括圖片的展示,而圖片是通過從資料庫中取圖片存放目錄然後展示的,比如001\abc\a.jpg。在7.0的環境下測試沒有任何問題,但是換到6.0下圖片就無法顯示了。編碼格式是utf_8

解決

1.在js中對請求地址用encodeURI進行編碼,比如encodeURI(”http://test.com?xpPath=001\abc\a.jpg”).
2.有時不方便在js中處理,比如我遇到的情況就是,那麼我們可以在action 中的Java程式碼進行處理。在action 中從資料庫獲得相片地址後返回前端處理前進行處理,針對要編碼的字元進行處理

public static String encodePath(String path){
        if(StringUtils.isEmpty(path) || path.indexOf('\\')==-1){
            return
path; } return StringUtils.replace(path, "\\", "%5c", -1); //編碼的格式為:%加字元的ASCII碼 }

呼叫encodePath(getXpPath())

相關連結

http://blog.csdn.net/chenlycly/article/details/51820727