Java反斜线(\)路径与转义字符的小坑
2019独角兽企业重金招聘Python工程师标准>>>
1.图片路径字段ImagePath, 从数据库读出,写到前台变量中, 正常(比如: upload\image\2018\18802-85\17A000800002-1.jpg)
2.由前台向后台提交, getParameter取出则反斜线成了转义符(字符串变为: uploadimage88802-85A000800002-1.jpg)
为什么第1步从后台写到前台没被转义,而第2步从前台写到后台被转义?
如何处理?
解答:
从数据库中取出字符串时Java会自动将其中包含的"\"替换成"\\",这样写到前台时HTML转义一次成为正确的路径, 这就是问题一的原因.
当前台提交表单数据到后台时会转义一次, 这导致了问题二.
解决办法就是在第一次从数据库读取路径时(除了Java自动将"\"替换成"\\"那次)再替换一次
这样到前台两次转义后仍然可得到正确路径.
说明: replaceAll()方法是采用正则表达式的规则去匹配的。在regex中"\\"表示一个"\",在java中一个"\"也要用"\\"表示。这样,前一个"\\"代表regex中的"\",后一个"\\"代表java中的"\",所以字符串转义一次,正则转义一次,那么一个斜扛要写4个,要想使用replaceAll()方法将字符串中的反斜杠(\)替换成(\\),则需要这样写:replaceAll("\\\\","\\\\\\\\")
转载于:https://my.oschina.net/u/344631/blog/1828138
Java反斜线(\)路径与转义字符的小坑相关推荐
- java获取系统斜线_java从含反斜线路径截取文件名
例如:获取到的文件路径为C:/Documents and Settings/Leeo/My Documents/logo.gif 现在想要取得图片的名称logo.gif,我们知道反斜杠&qu ...
- java双斜线转义_转义字符\(在hive+shell以及java中注意事项):正则表达式的转义字符为双斜线,split函数解析也是正则...
转义字符将后边字符转义,使特殊功能字符作为普通字符处理,或者普通字符转化为特殊功能字符. 各个语言中都用应用,如java.python.sql.hive.shell等等. 如sql中 "\& ...
- java文件夹路径的表达_小师妹学JavaIO之:文件File和路径Path
简介 文件和路径有什么关系?文件和路径又隐藏了什么秘密?在文件系统的管理下,创建路径的方式又有哪些?今天F师兄带小师妹再给大家来一场精彩的表演. 文件和路径 小师妹:F师兄我有一个问题,java中的文 ...
- Java Review - 线程池使用FutureTask的小坑
文章目录 概述 问题复现 源码分析 解决办法 小结 概述 先说结论 线程池使用FutureTask时如果把拒绝策略设置为 DiscardPolicy和 DiscardOldestPolicy,并且在被 ...
- java 绝对路径双斜线_路径分隔符:正斜线/、反斜线\、双反斜线\\的区别
1.这些符号在不同的系统下意义不同: //双斜线:协议和主机名之间的分隔符 (比如http://localhost:8080) /单斜线:windows里或者WEB上或者Unix内核的目录架构分隔符 ...
- java斜线_Java中的 \ (反斜线)和正则表达式
今天在问答区上看到一则有意思的问题,直接把截图搬过来,如下: (外链网址已屏蔽) 看起来明显输入的正则表达式不同,但是输出结果都一样(制表符被替换).随后去查了下Pattern的Doc,发现下面一段话 ...
- java 反引 双引号_Shell 单引号 双引号 反引号 反斜线
在Linux中有四种较特殊的符号,分别为双引号 单引号 反引号 反斜线 使用双引号时,相当于等号后面的值作为一个字符串常量赋给了前者(其实这里并没有太大作用),例如: m=java echo $m / ...
- java反编译命令jad,java反编译小工具jad常用命令
java反编译小工具jad常用命令 2014/6/11 19:39:24 sky52bc 程序员俱乐部 我要评论(0) 摘要:首先,看一下jad的帮助提示-a-用JVM字节格式来注解输出-af- ...
- java中插入正则表达式的反斜线
正则表达式语法 在其他语言中,\\表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义. 在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具 ...
最新文章
- 在UE5创造一个多山的松树森林场景学习教程
- springboot在工具类中添加service的方法,显示为空的解决方案
- AS出现Error:Cause: peer not authenticated
- ASP.Net Web 服务 – 如何使用会话状态
- 【Ubuntu16.04】解决Qt安装包(.run文件)不能用./命令执行的问题
- R+markdown+LaTeX 中文编译解决方案
- html实体编码_为什么涨薪的永远不是你?你的编码姿势对了吗?
- 【Flutter】微信项目实战【02】我的界面搭建(上)
- 多管齐下,防御拒绝服务攻击
- Java并发编程基础-锁-synchronized状态变换
- epson r1900 清零软件_爱普生打印机清零软件
- 微信小程序云开发教程-墨刀原型工具入门
- 自定义ViewGroup——自定义布局
- [常用类]Instant类的使用
- 春节义务帮人写了一个《求签在线查询》(ASP)
- 评分卡--基础分、基准分、PDO、WOE、补偿、刻度 行可可
- 等额本息还款法贷款利息计算方法及还款计划
- Hey Future!
- php小数转百分数,PHP百分号转小数,php 小数转换百分数函数
- html可以向微信发信息吗,微信不加好友也能发消息?怎么做到的?