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反斜线(\)路径与转义字符的小坑相关推荐

  1. java获取系统斜线_java从含反斜线路径截取文件名

    例如:获取到的文件路径为C:/Documents and Settings/Leeo/My Documents/logo.gif      现在想要取得图片的名称logo.gif,我们知道反斜杠&qu ...

  2. java双斜线转义_转义字符\(在hive+shell以及java中注意事项):正则表达式的转义字符为双斜线,split函数解析也是正则...

    转义字符将后边字符转义,使特殊功能字符作为普通字符处理,或者普通字符转化为特殊功能字符. 各个语言中都用应用,如java.python.sql.hive.shell等等. 如sql中 "\& ...

  3. java文件夹路径的表达_小师妹学JavaIO之:文件File和路径Path

    简介 文件和路径有什么关系?文件和路径又隐藏了什么秘密?在文件系统的管理下,创建路径的方式又有哪些?今天F师兄带小师妹再给大家来一场精彩的表演. 文件和路径 小师妹:F师兄我有一个问题,java中的文 ...

  4. Java Review - 线程池使用FutureTask的小坑

    文章目录 概述 问题复现 源码分析 解决办法 小结 概述 先说结论 线程池使用FutureTask时如果把拒绝策略设置为 DiscardPolicy和 DiscardOldestPolicy,并且在被 ...

  5. java 绝对路径双斜线_路径分隔符:正斜线/、反斜线\、双反斜线\\的区别

    1.这些符号在不同的系统下意义不同: //双斜线:协议和主机名之间的分隔符 (比如http://localhost:8080) /单斜线:windows里或者WEB上或者Unix内核的目录架构分隔符 ...

  6. java斜线_Java中的 \ (反斜线)和正则表达式

    今天在问答区上看到一则有意思的问题,直接把截图搬过来,如下: (外链网址已屏蔽) 看起来明显输入的正则表达式不同,但是输出结果都一样(制表符被替换).随后去查了下Pattern的Doc,发现下面一段话 ...

  7. java 反引 双引号_Shell 单引号 双引号 反引号 反斜线

    在Linux中有四种较特殊的符号,分别为双引号 单引号 反引号 反斜线 使用双引号时,相当于等号后面的值作为一个字符串常量赋给了前者(其实这里并没有太大作用),例如: m=java echo $m / ...

  8. java反编译命令jad,java反编译小工具jad常用命令

    java反编译小工具jad常用命令 2014/6/11 19:39:24  sky52bc  程序员俱乐部  我要评论(0) 摘要:首先,看一下jad的帮助提示-a-用JVM字节格式来注解输出-af- ...

  9. java中插入正则表达式的反斜线

    正则表达式语法 在其他语言中,\\表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义. 在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具 ...

最新文章

  1. 在UE5创造一个多山的松树森林场景学习教程
  2. springboot在工具类中添加service的方法,显示为空的解决方案
  3. AS出现Error:Cause: peer not authenticated
  4. ASP.Net Web 服务 – 如何使用会话状态
  5. 【Ubuntu16.04】解决Qt安装包(.run文件)不能用./命令执行的问题
  6. R+markdown+LaTeX 中文编译解决方案
  7. html实体编码_为什么涨薪的永远不是你?你的编码姿势对了吗?
  8. 【Flutter】微信项目实战【02】我的界面搭建(上)
  9. 多管齐下,防御拒绝服务攻击
  10. Java并发编程基础-锁-synchronized状态变换
  11. epson r1900 清零软件_爱普生打印机清零软件
  12. 微信小程序云开发教程-墨刀原型工具入门
  13. 自定义ViewGroup——自定义布局
  14. [常用类]Instant类的使用
  15. 春节义务帮人写了一个《求签在线查询》(ASP)
  16. 评分卡--基础分、基准分、PDO、WOE、补偿、刻度 行可可
  17. 等额本息还款法贷款利息计算方法及还款计划
  18. Hey Future!
  19. php小数转百分数,PHP百分号转小数,php 小数转换百分数函数
  20. html可以向微信发信息吗,微信不加好友也能发消息?怎么做到的?

热门文章

  1. big endian and little endian
  2. STM32常用数据类型 u8、u16、u32
  3. 数据结构与算法:链表,队列,栈,递归,有序表
  4. iOS组件化(二):创建远程私有库
  5. SpringBoot-04:SpringBoot在idea中的俩种创建方式
  6. docker分离部署lnmp
  7. 《CCNA安全640-554认证考试指南》——6.4节复习所有考试要点
  8. C#Redis集合set
  9. php -- PDO事务处理
  10. 富友电子商务系统的四大优势助网商轻松赚钱