利用StringEscapeUtils对字符串进行各种转义与反转义(Java)

2023-11-01

转载自:Java我人生(陈磊兴)   原文出处:http://blog.csdn.net/chenleixing/article/details/43456987

apache工具包common-lang中有一个很有用的处理字符串的工具类,其中之一就是StringEscapeUtils,这个工具类是在2.3版本以上加上的去的,利用它能很方便的进行html,xml,java等的转义与反转义,而且还能对关键字符串进行处理预防SQL注入,不过好像common-lang3.0以后我看着好像没这个处理SQL语句的方法了,想用的话前提时引入对应的jar包,以下为它的部分方法:

它的方法,全是静态,直接用类调用即可,下边来根据代码看看它们几个的用法和效果,一看一目了然:

  1. package stringescapeutils;
  2. import org.apache.commons.lang.StringEscapeUtils;
  3. public class StringEscapeUtilsTest {
  4. public static void main(String args[]){
  5. String sql= "1' or '1'='1";
  6. System.out.println( "防SQL注入:"+StringEscapeUtils.escapeSql(sql)); //防SQL注入
  7. System.out.println( "转义HTML,注意汉字:"+StringEscapeUtils.escapeHtml( "<font>chen磊 xing</font>")); //转义HTML,注意汉字
  8. System.out.println( "反转义HTML:"+StringEscapeUtils.unescapeHtml( "<font>chen磊 xing</font>")); //反转义HTML
  9. System.out.println( "转成Unicode编码:"+StringEscapeUtils.escapeJava( "陈磊兴")); //转义成Unicode编码
  10. System.out.println( "转义XML:"+StringEscapeUtils.escapeXml( "<name>陈磊兴</name>")); //转义xml
  11. System.out.println( "反转义XML:"+StringEscapeUtils.unescapeXml( "<name>陈磊兴</name>")); //转义xml
  12. }
  13. }

输入结果:

  1. 防SQL注入: 1 '' or '' 1 ''= '' 1
  2. 转义HTML,注意汉字:<font>chen磊 xing</font>
  3. 反转义HTML:<font>chen磊 xing</font>
  4. 转成Unicode编码:\u9648\u78CA\u5174
  5. 转义XML:<name>陈磊兴</name>
  6. 反转义XML:<name>陈磊兴</name>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用StringEscapeUtils对字符串进行各种转义与反转义(Java) 的相关文章

  • Python工程师常见的30个基础面试题

    一 Python 的特点和优点是什么 Python 是一门动态解释性的强类型定义语言 编写时无需定义变量类型 运行时变量类型强制固定 无需编译 在解释器环境直接运行 优点 1 解释性 Python 语言写的程序 不需要编译成二进制代码 可以
  • 字库制作和烧写

    文章目录 资源获取 一 介绍字库 1 GB2312 2 GBK 二 生成字库 1 打开字库生成软件 2 软件介绍 3 生成bin字库 三 烧录字库 1 打开串口烧录软件 2 配置软件 3 打开字库文件 4 将烧录程序下载到开发板 5 开始烧
  • MacOs 执行命令行报:permission denied:

    当前目录没有可执行权限 解决方案 代表文件目录 sudo chmod R 777

随机推荐

  • docker安装nacos2.0.3并配置mysql

    1 拉取镜像 docker pull nacos nacos server 2 0 3 2 创建数据目录 mkdir p mydata nacos2 0 3 logs mkdir p mydatadata nacos2 0 3 conf 3
  • Java 包(package)

    为了更好地组织类 Java 提供了包机制 用于区别类名的命名空间 包的作用 1 把功能相似或相关的类或接口组织在同一个包中 方便类的查找和使用 2 如同文件夹一样 包也采用了树形目录的存储方式 同一个包中的类名字是不同的 不同的包中的类的名
  • linux安装virtualbox命令,如何在CentOS 7.5上安装VirtualBox

    VirtualBox是一款开源的跨平台虚拟化软件 允许您同时运行多个客户操作系统 虚拟机 在本教程中 我们将向您展示如何从CentOS 7系统上的Oracle存储库安装VirtualBox 前提条件 在继续本教程之前 请确保以具有sudo权
  • 为网站接入前端异常监控系统 Sentry

    背景 众所周知 现在前端异常监控在实际生产环境中越来越重要了 通过给网站接入前端异常监控系统 我们能获得以下几个好处 收集页面的错误信息 辅助定位代码错误位置 在用户报障前发现问题 这对于提升线上系统质量 降低线上故障数量 都具有非常重要的
  • 【mysql基础系列十一】用户权限管理

    用户权限管理 在不同的项目中给不同的角色 mysql客户端用户 通常为开发者 不同的权限 为了保证数据库的数据安全 用户管理 mysql需要客户端进行连接认证才能进行服务器操作 需要用户信息 mysql中所有的用户 指mysql客户端用户
  • Spring的生态圈、Spring全家桶

    Springboot是伴随spring4诞生的 除了springboot之外 spring作为企业级应用开发的轻量级解决方案提供了许多子项目 这些子项目可以更好地理解其设计架构 思想并使用spring spring的整个生态系统包括以下内容
  • jenkins 链接远程服务器,执行shell脚本后台启动java工程,项目已启动成功,jenkins界面仍在转圈

    jenkins 链接远程服务器 执行shell脚本后台启动java工程 项目已启动成功 jenkins界面仍在转圈 如图 之前的shell nohup java jdk1 8 0 221 bin java jar jenkins proje
  • flink-sql读写hive-1.15

    1 版本说明 本文档内容基于flink 1 15 x 其他版本的整理 请查看本人博客的 flink 专栏其他文章 1 1 概述 Apache Hive 已经成为了数据仓库生态系统中的核心 它不仅仅是一个用于大数据分析和ETL场景的SQL引擎
  • MySql5.7 直接拷贝数据文件后出现table xxx doesn’t exist

    MySQL备份或者转移数据库时有一种方便的方法 就是直接拷贝MySQL目录下 data文件夹下对应的数据库文件夹 但当粘贴到另外的服务器下的data文件夹下后 虽然打开数据库后能看到各个table 但使用时却会提示table xxx doe
  • java concurrency基础

    本来是学习volatile关键字的 结果连带学习了这么多知识点 慢慢看吧 标记一下 1 深入浅出java concurrency http www blogjava net xylz archive 2012 05 30 325587 ht
  • 如何给6个整数的一维数组某个元素赋值_C++基础知识篇:C++ 数组

    C 支持数组数据结构 它可以存储一个固定大小的相同类型元素的顺序集合 数组是用来存储一系列数据 但它往往被认为是一系列相同类型的变量 数组的声明并不是声明一个个单独的变量 比如 number0 number1 number99 而是声明一个
  • 用好这 28 个工具,开发效率爆涨|云效工程师指北

    大家好 我是秦世成 我在云效负责制品仓库Packages的开发工作 作为一个有多年经验的资深CRUD后端工程师 使用过很多日常开发所需的工具软件 其中不少能堪称为 神器 这些 神器 能极大的提升日常开发的效率 小到一个复制粘贴操作 大到开发
  • Wireshark

    抓包工具 抓包工具是拦截查看网络数据包内容的软件 抓包工具由于其可以对数据通信过程中的所有lP报文实施捕获并进行逐层拆包分析 一直是传统固网数通维护工作中罐常用的故障排查工具 业内 流行的抓包软件有很多 Wireshark SnifferP
  • 【vue】$set怎么使用

    vue中在data 里的数据才是响应式的 有的场景 比如说后端返回的接口对象里 想再增加一个属性 作为响应式 这时候可以用到 set添加 set总共三个参数 第一个为当前对象 第二个为属性名 第三个为属性值
  • nebula graph 常用命令(updating)

    文章目录 管理Storage主机 空间 创建标签 边 点 增 改 删除点和边 索引 创建索引 重建索引 drop tag 查询 match go FETCH LOOKUP 统计 管理Storage主机 从 3 0 0 版本开始 在配置文件中
  • 循环遍历的区别

    循环遍历的区别 forEach 直接循环数组 没有返回值 如何结束循环 是结束本次循环是可以使用return 但是结束全部循环return无效 原因 好像是因为forEach不管符不符合都会走完所有的循环 所以return结束本次循环后 会
  • 【markdown工具配合图床】PicGo图床配置教程,一秒读懂配置

    前言 看到这篇文章的大佬 我默认大家都会配置git 已经配置好ssh公钥 此时你看到的这篇文章就是基于markdown工具 VSCode Typora 编写的 PicGo作为图床转换工具 并配合gitee作为图片服务器 仓库 个人设置找到私
  • tms web core 调用webapi的方法

    webhttprequest组件属性设置 header Cache Control no cache no store must revalidate Content Type application x www form urlencod
  • 紫书《算法竞赛入门经典》

    紫书 算法竞赛入门经典 题目一览 第3章 数组和字符串 例题 UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 340 Master Mind Hints UVA 158
  • 利用StringEscapeUtils对字符串进行各种转义与反转义(Java)

    转载自 Java我人生 陈磊兴 原文出处 http blog csdn net chenleixing article details 43456987 apache工具包common lang中有一个很有用的处理字符串的工具类 其中之一就