日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

commons-lang常用工具类StringEscapeUtils使用--转

發布時間:2025/4/5 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 commons-lang常用工具类StringEscapeUtils使用--转 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://my.oschina.net/ydsakyclguozi/blog/341496

在apache commons-lang(2.3以上版本)中為我們提供了一個方便做轉義的工具類,主要是為了防止sql注入,xss注入攻擊的功能。

commons-lang常用工具類StringEscapeUtils使用:

1.escapeSql 提供sql轉移功能,防止sql注入攻擊,例如典型的萬能密碼攻擊' ' or 1=1 ' '

  StringBuffer sql = new StringBuffer("select key_sn,remark,create_date from tb_selogon_key where 1=1 ");if(!CommUtil.isEmpty(keyWord)){sql.append(" and like '%" + StringEscapeUtils.escapeSql(keyWord) + "%'");

2.escapeHtml /unescapeHtml ?轉義/反轉義html腳本

System.out.println(StringEscapeUtils.escapeHtml("<A>dddd</A>")); 輸出結果為:<a>dddd</a>System.out.println(StringEscapeUtils.unescapeHtml("<a>dddd</a>")); 輸出為:<A>ddd</A>

3.escapeJavascript/unescapeJavascript 轉義/反轉義js腳本

System.out.println(StringEscapeUtils.escapeJavaScript("<SCRIPT>alert('1111')</SCRIPT>")); 輸出為:<script>alert('111')</script>

4.escapeJava/unescapeJava 把字符串轉為unicode編碼

System.out.println(StringEscapeUtils.escapeJava("中國")); 輸出為:用escapeJava方法轉義之后的字符串為:/u4E2D/u56FD/u5171/u4EA7/u515A

另一個例子:

import org.apache.commons.lang.StringEscapeUtils; public class EscapeString { public static void main(String[] args) throws Exception { String str = "APEC召開時不讓點柴火做飯"; System.out.println("用escapeJava方法轉義之后的字符串為:"+StringEscapeUtils.escapeJava(str)); System.out.println("用unescapeJava方法反轉義之后的字符串為:"+StringEscapeUtils.unescapeJava(StringEscapeUtils.escapeJava(str))); System.out.println("用escapeHtml方法轉義之后的字符串為:"+StringEscapeUtils.escapeHtml(str)); System.out.println("用unescapeHtml方法反轉義之后的字符串為:"+StringEscapeUtils.unescapeHtml(StringEscapeUtils.escapeHtml(str))); System.out.println("用escapeXml方法轉義之后的字符串為:"+StringEscapeUtils.escapeXml(str)); System.out.println("用unescapeXml方法反轉義之后的字符串為:"+StringEscapeUtils.unescapeXml(StringEscapeUtils.escapeXml(str))); System.out.println("用escapeJavaScript方法轉義之后的字符串為:"+StringEscapeUtils.escapeJavaScript(str)); System.out.println("用unescapeJavaScript方法反轉義之后的字符串為:"+StringEscapeUtils.unescapeJavaScript(StringEscapeUtils.escapeJavaScript(str))); /**輸出結果如下: 用escapeJava方法轉義之后的字符串為:APEC\u53EC\u5F00\u65F6\u4E0D\u8BA9\u70B9\u67F4\u706B\u505A\u996D用unescapeJava方法反轉義之后的字符串為:APEC召開時不讓點柴火做飯用escapeHtml方法轉義之后的字符串為:APEC&#21484;&#24320;&#26102;&#19981;&#35753;&#28857;&#26612;&#28779;&#20570;&#39277;用unescapeHtml方法反轉義之后的字符串為:APEC召開時不讓點柴火做飯用escapeXml方法轉義之后的字符串為:APEC&#21484;&#24320;&#26102;&#19981;&#35753;&#28857;&#26612;&#28779;&#20570;&#39277;用unescapeXml方法反轉義之后的字符串為:APEC召開時不讓點柴火做飯用escapeJavaScript方法轉義之后的字符串為:APEC\u53EC\u5F00\u65F6\u4E0D\u8BA9\u70B9\u67F4\u706B\u505A\u996D用unescapeJavaScript方法反轉義之后的字符串為:APEC召開時不讓點柴火做飯} }

?

表單富文本輸入時,有html,需要轉義,html+加中文時,用StringEscapeUtils.escapeHtml轉義時,中文也轉義了,經過查找,最終找到spring的org.springframework.web.util.HtmlUtils.htmlEscape

<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>3.0.6.RELEASE</version> </dependency> public static void main(String[] args) {String a = "<html>吃飯</html>";System.out.println(StringEscapeUtils.escapeHtml(a));System.out.println(StringEscapeUtils.unescapeHtml(StringEscapeUtils.escapeHtml(a)));System.out.println(HtmlUtils.htmlEscape(a));System.out.println(HtmlUtils.htmlUnescape(HtmlUtils.htmlEscape(a)));} 執行結果:&lt;html&gt;&#21507;&#39277;&lt;/html&gt;<html>吃飯</html>&lt;html&gt;吃飯&lt;/html&gt;<html>吃飯</html>

感覺還是spring好,一點一滴的比較貼心。

轉載于:https://www.cnblogs.com/davidwang456/p/9002505.html

總結

以上是生活随笔為你收集整理的commons-lang常用工具类StringEscapeUtils使用--转的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。