URL特殊字符需转义

1、空格换成加号(+)

2、正斜杠(/)分隔目录和子目录

3、问号(?)分隔URL和查询

4、百分号(%)制定特殊字符

5、#号指定书签

6、&号分隔参数

转义字符的原因:

如果你的表单使用get方法提交,并且提交的参数中有“&”等特殊符的话,如果不做处理,在service端就会将&后面的作为另外一个参数来看待。例如

表单的action为list.jsf?act=go&state=5

则提交时通过request.getParameter可以分别取得act和state的值。

如果你的本意是act='go&state=5'这个字符串,那么为了在服务端拿到act的准确值,你必须对&进行转义

url转义字符原理:

将这些特殊的字符转换成ASCII码,格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。

URL特殊符号及对应的十六进制值编码:

1. +  URL 中+号表示空格 %2B

2. 空格 URL中的空格可以用+号或者编码 %20

3. /  分隔目录和子目录 %2F

4. ?  分隔实际的 URL 和参数 %3F

5. % 指定特殊字符 %25

6. # 表示书签 %23

7. & URL 中指定的参数间的分隔符 %26

8.=URL中指定参数的值 %3D

解决方法如下(以+号为例):

方法一、修改客户端,将客户端带“+”的参数中的“+”全部替换为‍“2B%”,这样参数传到服务器端时就能得到“+”了。

方法二、修改服务器端,将空格替换为“+”,这种方式只适用于参数中有‍“+”没有空格的情况。

例子:

Stringa=reuqest.‍getParameter("clientStr")‍.replace(' ','+');

如果客户端为clientStr=test+OK,那么a的值为test+OK;

方法三、修改服务器端,将获取参数的方法由‍reuqest.‍getParameter改为‍request.getQueryString().substring(0),然后对得到的字符串进行解析。

例子:

‍‍Stringa=request.getQueryString().substring(0);

‍如果客户端为clientStr=test+OK,那么a的值为‍clientStr=test+OK,需要再解析一下,

a=a.‍substring(10);得到a的值为‍test+OK。

附:一个JS,用来转义URL中特殊字符的。

‍function URLencode(sStr)

{

return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');

}

java url转义_url特殊字符转义及解决方法相关推荐

  1. shell url转义_url特殊字符转义及解决方法

    URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 转义字符的原因 ...

  2. url 特殊字符 传递参数解决方法

    url 特殊字符 传递参数解决方法 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码. 十六进制值  1. + UR ...

  3. php 对特殊字符转义_php特殊字符转义函数

    本文介绍了php中特殊字符转义的相关函数的用法,掌握下php处理特殊字符的方法,有需要的朋友参考下. mysql和php自带很多函数可以处理字符问题,下面给出几个会经常用到的. ps:由于php6开始 ...

  4. java.net.SocketTimeoutException: Read timed out异常解决方法

    java.net.SocketTimeoutException: Read timed out异常解决方法 错误解析: 在请求的时候,服务器请求超时.在网上搜查之后,客户端没有在规定的时间内把数据传给 ...

  5. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 解决方法 java.lang.ClassNotFoundException: com.

    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 解决方法 java.lang.ClassNotFoundException: com.m ...

  6. Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法

    Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法 下载网络上的Adobe flash cs5 精简版(绿色版),Java运行时环境初始化时出现错误,你可能需要重装Flash ...

  7. java开发中遇到的问题及解决方法(持续更新)

    java开发中遇到的问题及解决方法(持续更新) 参考文章: (1)java开发中遇到的问题及解决方法(持续更新) (2)https://www.cnblogs.com/LiuYanYGZ/p/6112 ...

  8. Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法

    Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法 参考文章: (1)An ...

  9. Idea运行web项目时,提示java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方法

    Idea运行web项目时,提示java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方法 参考文章: (1)Idea运行web项目时,提示j ...

最新文章

  1. 如何添加团队成员,并为团队成员分配访问权限(转载)
  2. 网络技术学习资料分享
  3. Liner(分段线性插值)
  4. Mac openCV环境搭建
  5. python安装虚拟环境出现错误_virtualenv 安装虚拟环境问题 请大神指点一二
  6. myeclipse每次保存编译全部_Fuchsia编译运行指南
  7. mysql 常用字符串操作
  8. 9年120亿,美的数字化转型纪实
  9. css3制作俩面翻转盒子效果
  10. 【w3cschool】MySQL 入门课程_简单复习
  11. Hyperledger Fabric1.4超详细环境搭建 搭建不出来本博主倒立写代码
  12. paip.提升效率---模块化设计方法V2012.9.15
  13. 弘辽科技:淘宝保证金解冻后店铺还在吗?保证金怎么解冻?
  14. Openssl(版本1.1.1)源码中的RSA加解密算法实现分析
  15. JAVA8元空间是什么?
  16. Android锁屏状态下点亮屏幕并弹窗提醒
  17. windows用python读取文件open()函数
  18. impdp oracle 只导入表结构_Oracle数据导入导出(expdp impdp)
  19. 【RabbitMQ】Go语言实现六种消息中间件模型
  20. 今日更新53个网络安全资料

热门文章

  1. 华三----AP二层简单注册上线
  2. java第14章本章作业,JavaWeb应用基础-中国大学mooc-题库零氪
  3. a boo peek_Peek-A-Boo_Red Velvet_高音质在线试听_Peek-A-Boo歌词|歌曲下载_酷狗音乐
  4. URL生成短链接API接口
  5. loss函数之NLLLoss,CrossEntropyLoss
  6. Vue进阶(贰零壹):el-steps 实现页面内导航
  7. vs2017 配置IIS Express 失败,初始化 applicationhost.config文件失败找不到IIS Express,cocos2dx网页游戏网站形式打开错误
  8. 保利威Polyv云直播、点播官方uni-app插件
  9. Python爬虫入门实例五之淘宝商品信息定向爬取(优化版)
  10. 淘宝的一键上下架工具怎么批量上传商品的?