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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vinson武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值