Tomcat 6.0でurlに特殊文字|,などを要求すると解析エラーが発生する


Tomcat 6.0でurlに特殊文字|,などを要求すると解析エラーが発生する
背景
  • 人力の問題のため、最近Java webをやらせて、会社の1つの古いシステムを手伝って、jdk 6とtomcat 6を使って、私のパソコンの前にjdk 1.7とtomcat 7を詰めて、何の関係もないと思って交換するのがおっくうです.しかし、先日出会った問題で、異なるバージョンの開発環境の影響が大きいことに気づき、仕方なく会社と同期して6を使うしかありませんでした.

  • に質問
  • で問題が発生した機能は、ボタンをクリックして画像の表示を含む表示情報のページにジャンプし、画像はデータベースから画像格納ディレクトリを取り出して表示され、例えば001abca.jpgである.7.0の環境でテストしても問題はありませんが、6.0の画像に変えると表示できません.符号化フォーマットはutf_8

  • 解決する
    1.jsにおいて要求アドレスをencodeURI(例えばencodeURI)で符号化するhttp://test.com?xpPath=001abca.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