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

你可能感兴趣的:(java编程问题)