Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 日本在线播放视频,亚洲精品国产成人,国产成人精品久久综合

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          「Java工具類」Apache的StringEscapeUtils轉(zhuǎn)義工具類

          紹語

          本號主要是Java常用關(guān)鍵技術(shù)點,通用工具類的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技術(shù)分享;datax、kafka、flink等大數(shù)據(jù)處理框架的技術(shù)分享。文章會不斷更新,歡迎碼友關(guān)注點贊收藏轉(zhuǎn)發(fā)!

          望各位碼友點擊關(guān)注,沖1000粉。后面會錄制一些視頻教程,圖文和視頻結(jié)合,比如:圖書介紹網(wǎng)站系統(tǒng)、搶購系統(tǒng)、大數(shù)據(jù)中臺系統(tǒng)等。技術(shù)才是程序猿的最愛,碼友們沖啊

          如果碼友覺得代碼太長,可以從頭到尾快速掃射一遍,了解大概即可。覺得有用后再轉(zhuǎn)發(fā)收藏,以備不時之需。

          正文:

          Apache的StringEscapeUtils轉(zhuǎn)義工具類,主要是針對html、json、xml、js等的轉(zhuǎn)義。具體使用場景在項目中并不是很多,所以可能了解的人也比較少。

          StringEscapeUtils轉(zhuǎn)義例子

           import org.apache.commons.text.StringEscapeUtils;
           import org.junit.Test;
           
           public class StringEscapeUtilsTest {
           
               @Test
               public void test() {
                   // 轉(zhuǎn)義html腳本和反轉(zhuǎn)義html腳本
                   String inputText = "<input type=\"button\" value=\"點我\"/>";
                   String s1 = StringEscapeUtils.escapeHtml4(inputText);
                   System.out.println(s1);
                   String s2 = StringEscapeUtils.unescapeHtml4(s1);
                   System.out.println(s2);
           
                   // 轉(zhuǎn)義js腳本和反轉(zhuǎn)義js腳本
                   String s3 = StringEscapeUtils.escapeEcmaScript("<script>alert('點我')<script>");
                   System.out.println(s3);
                   String s4 = StringEscapeUtils.unescapeEcmaScript(s3);
                   System.out.println(s4);
           
                   // 把字符串轉(zhuǎn)義為unicode編碼和從把unicode編碼轉(zhuǎn)義為字符串
                   String s5 = StringEscapeUtils.escapeJava("abc不要點我了");
                   System.out.println(s5);
                   String s6 = StringEscapeUtils.unescapeJava(s5);
                   System.out.println(s6);
           
                   // 轉(zhuǎn)義XML和反轉(zhuǎn)義XML
                   String s7 = StringEscapeUtils.escapeXml11("<name>張三</name>");
                   System.out.println(s7);
                   String s8 = StringEscapeUtils.unescapeXml(s7);
                   System.out.println(s8);
               }
           }

          其他方法:


          工具類源碼:

          直接引入工具類的jar包即可

           <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-text</artifactId>
             <version>1.1</version>
           </dependency>

          和本文使用的相同功能的工具類:

          • org.apache.commons.lang.StringEscapeUtils,與org.apache.commons.text.StringEscapeUtils工具類一樣,但是apache把它注解為過時了,它還有個牛逼的方法就是轉(zhuǎn)義sql【escapeSql】,但是建議使用本文使用的包;
          <dependency>
              <groupId>commons-lang</groupId>
              <artifactId>commons-lang</artifactId>
              <version>2.6</version>
          </dependency>
          • org.springframework.web.util.HtmlUtils,spring的一個工具類,主要針對html,可以了解下;
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-web</artifactId>
              <version>5.3.6</version>
          </dependency>
          • groovy.json.StringEscapeUtils,和org.apache.commons.text.StringEscapeUtils一樣的功能,項目一般不用這個包,但是可以了解下;如果會groovy腳本的話應(yīng)該用的就多,groovy-xxx有很多工具類的,但是我也沒用過,感興趣的可以探索下。
          <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>3.0.9</version>
            <type>pom</type>
          </dependency>

          鄙人編碼十年多,在項目中也積累了一些工具類,很多工具類在每個項目都有在用,很實用。大部分是鄙人封裝的,有些工具類是同事封裝的,有些工具類已經(jīng)不記得是ctrl+c的還是自己封裝的了,現(xiàn)在有空就會總結(jié)項目中大部分的工具類,分享給各位碼友。如果文章中涉及的代碼有侵權(quán)行為請通知鄙人處理。

          計劃是先把工具類整理出來,正所謂工欲善其事,必先利其器。項目中不管是普通單體項目還是多模塊maven項目或是分布式微服務(wù),一部分功能模塊都是可以重用的,工具類模塊就是其中之一。

          文主要講述:文件名工具類Apache之org.apache.commons.lang.StringEscapeUtils。

          java中轉(zhuǎn)義是指:將某些特殊字符轉(zhuǎn)換為它在特定場景中原來的意義。

          轉(zhuǎn)義字符是指無法直接顯示的字符。

          常見的場景是:

          1、同一字符在不同編碼中表達(dá)形式不一樣。

          2、某些特定的字符在不同環(huán)境、不同語言中表達(dá)形式不一樣。

          下面演示StringEscapeUtils的用法:

          一、轉(zhuǎn)義Unicode編碼

          //轉(zhuǎn)義為Unicode編碼
          String escape = StringEscapeUtils.escapeJava("古德貓寧");
          輸出:\u53E4\u5FB7\u732B\u5B81
          //反轉(zhuǎn)義Unicode編碼
          String unescape = StringEscapeUtils.unescapeJava("\u53E4\u5FB7\u732B\u5B81");
          輸出:古德貓寧

          二、轉(zhuǎn)義SQL

          sql注入是網(wǎng)絡(luò)攻擊方式之一,而防止SQL注入的唯一方法是SQL參數(shù)化。

          escapeSql就提供了sql轉(zhuǎn)義功能,從而實現(xiàn)防止sql注入。

          String userId = "000001";
          String sql = "select user_name from tab_emp where user_id = " + StringEscapeUtils.escapeSql("'" + userId + "'");
          輸出:select user_name from tab_emp where user_id = ''000001''

          三、轉(zhuǎn)義html腳本

          //轉(zhuǎn)義為html腳本
          String escapeHtml = StringEscapeUtils.escapeHtml("<div>Hello World!</div>");
          輸出:<div>Hello World!</div>
          //反轉(zhuǎn)義html腳本
          String unescapeHtml = StringEscapeUtils.unescapeHtml("<div>Hello World!</div>");
          輸出:<div>Hello World!</div>

          四、轉(zhuǎn)義JS腳本

          //轉(zhuǎn)義為JS腳本
          String escapeJS = StringEscapeUtils.escapeJavaScript("<script type=\"text/javascript\">alert('哈哈')<script>");
          輸出:<script type=\"text\/javascript\">alert(\'\u54C8\u54C8\')<script>
          //反轉(zhuǎn)義JS腳本
          String unescapeJS = StringEscapeUtils.unescapeJavaScript("<script>alert(\'哈哈\')<script>");
          輸出:<script>alert('哈哈')<script>

          五、轉(zhuǎn)義CSV

          String escapeCsv = StringEscapeUtils.escapeCsv("He said \"'I love you'\"");
          輸出:"He said ""'I love you'"""
          String unescapeCsv = StringEscapeUtils.unescapeCsv("\"He said \"\"'I love you'\"\"\"");
          輸出:He said "'I love you'"

          六、轉(zhuǎn)義XML

          注于Java領(lǐng)域優(yōu)質(zhì)技術(shù),歡迎關(guān)注

          作者:alterem

          在Java中,工具類定義了一組公共方法,這篇文章將介紹Java中使用最頻繁及最通用的Java工具類。以下工具類、方法按使用流行度排名,參考數(shù)據(jù)來源于Github上隨機(jī)選取的5萬個開源項目源碼。

          一. org.apache.commons.io.IOUtils

          closeQuietly:關(guān)閉一個IO流、socket、或者selector且不拋出異常,通常放在finally

          toString:轉(zhuǎn)換IO流、 Uri、 byte[]為String

          copy:IO流數(shù)據(jù)復(fù)制,從輸入流寫到輸出流中,最大支持2GB

          toByteArray:從輸入流、URI獲取byte[]

          write:把字節(jié). 字符等寫入輸出流

          toInputStream:把字符轉(zhuǎn)換為輸入流

          readLines:從輸入流中讀取多行數(shù)據(jù),返回List<String>

          copyLarge:同copy,支持2GB以上數(shù)據(jù)的復(fù)制

          lineIterator:從輸入流返回一個迭代器,根據(jù)參數(shù)要求讀取的數(shù)據(jù)量,全部讀取,如果數(shù)據(jù)不夠,則失敗

          二. org.apache.commons.io.FileUtils

          deleteDirectory:刪除文件夾

          readFileToString:以字符形式讀取文件內(nèi)容

          deleteQueitly:刪除文件或文件夾且不會拋出異常

          copyFile:復(fù)制文件

          writeStringToFile:把字符寫到目標(biāo)文件,如果文件不存在,則創(chuàng)建

          forceMkdir:強(qiáng)制創(chuàng)建文件夾,如果該文件夾父級目錄不存在,則創(chuàng)建父級

          write:把字符寫到指定文件中

          listFiles:列舉某個目錄下的文件(根據(jù)過濾器)

          copyDirectory:復(fù)制文件夾

          forceDelete:強(qiáng)制刪除文件

          三. org.apache.commons.lang.StringUtils

          isBlank:字符串是否為空 (trim后判斷)

          isEmpty:字符串是否為空 (不trim并判斷)

          equals:字符串是否相等

          join:合并數(shù)組為單一字符串,可傳分隔符

          split:分割字符串

          EMPTY:返回空字符串

          trimToNull:trim后為空字符串則轉(zhuǎn)換為null

          replace:替換字符串

          四. org.apache.http.util.EntityUtils

          toString:把Entity轉(zhuǎn)換為字符串

          consume:確保Entity中的內(nèi)容全部被消費。可以看到源碼里又一次消費了Entity的內(nèi)容,假如用戶沒有消費,那調(diào)用Entity時候?qū)阉M掉

          toByteArray:把Entity轉(zhuǎn)換為字節(jié)流

          consumeQuietly:和consume一樣,但不拋異常

          getContentCharset:獲取內(nèi)容的編碼

          五. org.apache.commons.lang3.StringUtils

          isBlank:字符串是否為空 (trim后判斷)

          isEmpty:字符串是否為空 (不trim并判斷)

          equals:字符串是否相等

          join:合并數(shù)組為單一字符串,可傳分隔符

          split:分割字符串

          EMPTY:返回空字符串

          replace:替換字符串

          capitalize:首字符大寫

          六. org.apache.commons.io.FilenameUtils

          getExtension:返回文件后綴名

          getBaseName:返回文件名,不包含后綴名

          getName:返回文件全名

          concat:按命令行風(fēng)格組合文件路徑(詳見方法注釋)

          removeExtension:刪除后綴名

          normalize:使路徑正常化

          wildcardMatch:匹配通配符

          seperatorToUnix:路徑分隔符改成unix系統(tǒng)格式的,即/

          getFullPath:獲取文件路徑,不包括文件名

          isExtension:檢查文件后綴名是不是傳入?yún)?shù)(List<String>)中的一個

          七. org.springframework.util.StringUtils

          hasText:檢查字符串中是否包含文本

          hasLength:檢測字符串是否長度大于0

          isEmpty:檢測字符串是否為空(若傳入為對象,則判斷對象是否為null)

          commaDelimitedStringToArray:逗號分隔的String轉(zhuǎn)換為數(shù)組

          collectionToDelimitedString:把集合轉(zhuǎn)為CSV格式字符串

          replace 替換字符串

          7. delimitedListToStringArray:相當(dāng)于split

          uncapitalize:首字母小寫

          collectionToDelimitedCommaString:把集合轉(zhuǎn)為CSV格式字符串

          tokenizeToStringArray:和split基本一樣,但能自動去掉空白的單詞

          八. org.apache.commons.lang.ArrayUtils

          contains:是否包含某字符串

          addAll:添加整個數(shù)組

          clone:克隆一個數(shù)組

          isEmpty:是否空數(shù)組

          add:向數(shù)組添加元素

          subarray:截取數(shù)組

          indexOf:查找某個元素的下標(biāo)

          isEquals:比較數(shù)組是否相等

          toObject:基礎(chǔ)類型數(shù)據(jù)數(shù)組轉(zhuǎn)換為對應(yīng)的Object數(shù)組

          九. org.apache.commons.lang.StringEscapeUtils

          參考十五:org.apache.commons.lang3.StringEscapeUtils

          十. org.apache.http.client.utils.URLEncodedUtils

          format:格式化參數(shù),返回一個HTTP POST或者HTTP PUT可用application/x-www-form-urlencoded字符串

          parse:把String或者URI等轉(zhuǎn)換為List<NameValuePair>

          十一. org.apache.commons.codec.digest.DigestUtils

          md5Hex:MD5加密,返回32位字符串

          sha1Hex:SHA-1加密

          sha256Hex:SHA-256加密

          sha512Hex:SHA-512加密

          md5:MD5加密,返回16位字符串

          十二. org.apache.commons.collections.CollectionUtils

          isEmpty:是否為空

          select:根據(jù)條件篩選集合元素

          transform:根據(jù)指定方法處理集合元素,類似Listmap()

          filter:過濾元素,雷瑟List的filter()

          find:基本和select一樣

          collect:和transform 差不多一樣,但是返回新數(shù)組

          forAllDo:調(diào)用每個元素的指定方法

          isEqualCollection:判斷兩個集合是否一致

          十三. org.apache.commons.lang3.ArrayUtils

          contains:是否包含某個字符串

          addAll:添加整個數(shù)組

          clone:克隆一個數(shù)組

          isEmpty:是否空數(shù)組

          add:向數(shù)組添加元素

          subarray:截取數(shù)組

          indexOf:查找某個元素的下標(biāo)

          isEquals:比較數(shù)組是否相等

          toObject:基礎(chǔ)類型數(shù)據(jù)數(shù)組轉(zhuǎn)換為對應(yīng)的Object數(shù)組

          十四. org.apache.commons.beanutils.PropertyUtils

          getProperty:獲取對象屬性值

          setProperty:設(shè)置對象屬性值

          getPropertyDiscriptor:獲取屬性描述器

          isReadable:檢查屬性是否可訪問

          copyProperties:復(fù)制屬性值,從一個對象到另一個對象

          getPropertyDiscriptors:獲取所有屬性描述器

          isWriteable:檢查屬性是否可寫

          getPropertyType:獲取對象屬性類型

          十五. org.apache.commons.lang3.StringEscapeUtils

          unescapeHtml4:轉(zhuǎn)義html

          escapeHtml4:反轉(zhuǎn)義html

          escapeXml:轉(zhuǎn)義xml

          unescapeXml:反轉(zhuǎn)義xml

          escapeJava:轉(zhuǎn)義unicode編碼

          escapeEcmaScript:轉(zhuǎn)義EcmaScript字符

          unescapeJava:反轉(zhuǎn)義unicode編碼

          escapeJson:轉(zhuǎn)義json字符

          escapeXml10:轉(zhuǎn)義Xml10

          這個現(xiàn)在已經(jīng)廢棄了,建議使用commons-text包里面的方法。

          十六. org.apache.commons.beanutils.BeanUtils

          copyPeoperties:復(fù)制屬性值,從一個對象到另一個對象

          getProperty:獲取對象屬性值

          setProperty:設(shè)置對象屬性值

          populate:根據(jù)Map給屬性復(fù)制

          copyPeoperty:復(fù)制單個值,從一個對象到另一個對象

          cloneBean:克隆bean實例

          現(xiàn)在你只要了解了以上16種最流行的工具類方法,你就不必要再自己寫工具類了,不必重復(fù)造輪子。大部分工具類方法通過其名字就能明白其用途,如果不清楚的,可以看下別人是怎么用的,或者去網(wǎng)上查詢其用法。

          另外,工具類,根據(jù)阿里開發(fā)手冊,包名如果要使用util不能帶s,工具類命名為 XxxUtils

          來自:https://juejin.im/entry/5d4a25b451882505c2100241


          現(xiàn)在人工智能非常火爆,很多朋友都想學(xué),但是一般的教程都是為博碩生準(zhǔn)備的,太難看懂了。最近發(fā)現(xiàn)了一個非常適合小白入門的教程,不僅通俗易懂而且還很風(fēng)趣幽默。所以忍不住分享一下給大家。點這里可以跳轉(zhuǎn)到教程。

          https://www.captainbed.net/suga


          主站蜘蛛池模板: 中文字幕一区一区三区| 亚洲乱码一区二区三区在线观看| 国产一区二区三区91| 国产在线视频一区二区三区 | 在线视频国产一区| 精品人妻一区二区三区四区在线| 国产在线第一区二区三区| 国产精品揄拍一区二区久久| 亚洲老妈激情一区二区三区| 一区二区三区视频网站| 亚洲国产系列一区二区三区| 久久人妻内射无码一区三区| 中文字幕人妻无码一区二区三区| 日本一区二区三区中文字幕| 无码一区二区三区AV免费| 国产精品无圣光一区二区| 中日av乱码一区二区三区乱码| 精品少妇一区二区三区在线| 日本精品夜色视频一区二区| 波多野结衣在线观看一区| 精品无码一区二区三区水蜜桃| 日本免费一区二区三区最新| 精品一区狼人国产在线| 国产成人一区二区三区免费视频| 亚洲av无码一区二区三区在线播放 | 无码视频一区二区三区在线观看| 久久国产高清一区二区三区| 国产激情精品一区二区三区| 亚洲第一区在线观看| 无码精品人妻一区二区三区影院| 青娱乐国产官网极品一区| 精品日韩在线视频一区二区三区| 伦理一区二区三区| 色窝窝无码一区二区三区成人网站| 亚洲一区二区中文| 国产一区二区成人| 精品中文字幕一区二区三区四区| 日本精品夜色视频一区二区| 熟女少妇丰满一区二区| 色偷偷久久一区二区三区| 亚洲av色香蕉一区二区三区蜜桃 |