整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          html中需要轉義的字符如何處理

          產生原因:


          我們知道html是如這些標簽包含的格式化文本,當用瀏覽器打開時,瀏覽器內部的標簽解釋器把不同的標簽解釋為不同的含義。這時默認所有內容都是在標簽之內的,標簽本身并不是內容。如果內容中也有標簽怎么辦?這是個問題嗎?當然。當一個負責講解html是什么的頁面輸出時,html頁面中必然包含有標簽需要輸出顯示,而瀏覽器并不能智能的分清楚哪些是需要解釋哪些不需要。


          解決方法:


          其中一個辦法就是轉義。為了區分需要解釋和不需要解釋的<>,將不需要解釋的<>用轉義字符代替,html會將它們解釋為<>。和html一樣,其他編程語言也有一些內置特殊符號需要用這樣的方法處理,比如php中的$,下面列舉一些:


          如HTML轉義符、java 轉義符、xml 轉義符、 oracle 轉義符、sql 轉義符 、sqlserver 轉義符、php 轉義符、asp 轉義符、vb轉義符、 javascript 轉義符等等,還有網址中的百分號。


          轉義字符串有三部分組成:

          &符號+實體名稱/編號+;符號


          例如,HTML的< >&"?的轉義字符串分別是

          “&lt;”或者“&#60;”

          “&gt;”或者“&#62;”

          “&amp;”或者“&#38;”

          “&quot;”或者“&#34;”

          “&copy;”或者“&#169;”


          在高級編程語言中已經將轉義字符的轉義處理做成了函數。如php中的htmlspecialchars()負責將函數參數轉為對應的轉義字符串

          今,Java開發者需要處理各種各樣的任務,這包括但不限于:日期操作、加密算法、文件操作、Excel數據處理、網絡請求等等。而在處理這些任務時,為了提高效率、降低開發難度和復雜度,我們需要借助一些工具類庫。Hutool是一個Java工具類庫,提供了許多常用的工具類和工具方法,使Java開發者的工作更加輕松和高效。在本文中,我們將介紹Hutool的一些特性和用法,以幫助您更好地使用Hutool。

          Hutool簡介

          Hutool是一個Java工具類庫,由國內的程序員loolly開發,目的是提供一些方便、快捷、實用的工具類和工具方法,使Java開發者能夠更加輕松地處理各種任務。Hutool的特點是簡單易用、功能全面、代碼清晰、文檔完備,支持JDK 1.8及以上版本。目前,Hutool已經被廣泛使用,并且已經發布了3.x版本。Hutool 3.x版本的特點是升級了依賴庫、增加了一些新的功能和優化了性能。

          Hutool特性

          Hutool提供了許多常用的工具類和工具方法,涵蓋了各種任務,例如:

          • 常用字符串工具類
          • 日期時間工具類
          • 集合工具類
          • 數字工具類
          • 加密解密工具類
          • 文件操作工具類
          • Excel數據處理工具類
          • Http請求工具類

          下面,我們將對其中的一些特性進行介紹。

          字符串工具類

          Hutool提供了一些常用的字符串工具類,例如:

          • StrUtil:提供了常用的字符串操作,例如字符串判空、截取、替換、格式化等。
          • ReUtil:提供了正則表達式工具方法,例如匹配、提取、替換等。
          • EscapeUtil:提供了對html、XML、Java、javascript等字符串進行轉義的工具方法。
          • EmojiUtil:提供了對emoji表情進行編碼和解碼的工具方法。
          1. // 判斷字符串是否為空或者null
          2. boolean isEmpty = StrUtil.isEmpty(str);

          3. // 替換字符串
          4. String replace = StrUtil.replace(str, "old", "new");

          5. // 正則表達式匹配
          6. List<String> matches = ReUtil.findAll("[0-9]+", str, 0, new ArrayList<String>());

          7. // HTML轉義
          8. String html = EscapeUtil.escapeHtml(str);

          9. // Emoji編碼解碼
          10. String encode = EmojiUtil.encode("");
          11. String decode = EmojiUtil.decode(encode);

          日期時間工具類

          Hutool提供了一些常用的日期時間工具類,例如:

          • DateUtil:提供了日期時間的常用操作,例如日期時間格式化、日期時間計算、日期時間比較等。
          • CronUtil:提供了對Cron表達式的解析和計算。
          • ChineseDateUtil:提供了對農歷日期的處理。
          1. // 日期時間格式化
          2. String format = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss");

          3. // 日期時間計算
          4. Date newDate = DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, 1);

          5. // 日期時間比較
          6. boolean isSameDay = DateUtil.isSameDay(new Date(), new Date());

          7. // Cron表達式解析
          8. CronPattern pattern = CronUtil.parse("0 0 12 * * ?");

          9. // 農歷日期處理
          10. ChineseDate chineseDate = ChineseDateUtil.parse(new Date());

          集合工具類

          Hutool提供了一些常用的集合工具類,例如:

          • CollUtil:提供了集合的常用操作,例如集合的判空、集合的合并、集合的截取等。
          • ListUtil、SetUtil、MapUtil:提供了對List、Set、Map等集合的操作方法。
          • ArrayUtil:提供了對數組的常用操作,例如數組的判空、數組的合并、數組的截取等。
          1. // 集合判空
          2. boolean isEmpty = CollUtil.isEmpty(list);

          3. // 集合合并
          4. List<String> newList = CollUtil.addAllIfNotContains(list1, list2);

          5. // 集合截取
          6. List<String> subList = CollUtil.sub(list, 0, 5);

          7. // List轉數組
          8. String[] array = ListUtil.toArray(list, String.class);

          9. // 數組判空
          10. boolean isEmpty = ArrayUtil.isEmpty(array);

          11. // 數組合并
          12. String[] newArray = ArrayUtil.addAll(array1, array2);

          13. // 數組截取
          14. String[] subArray = ArrayUtil.sub(array, 0, 5);

          數字工具類

          Hutool提供了一些常用的數字工具類,例如:

          • NumberUtil:提供了數字的常用操作,例如數字的格式化、數字的轉換、數字的比較等。
          • RandomUtil:提供了生成隨機數、隨機Boolean值等的方法。
          1. // 數字格式化
          2. String format = NumberUtil.decimalFormat("123456.789", "#,##0.00");

          3. // 數字轉換
          4. Integer intValue = NumberUtil.parseInt("123");

          5. // 數字比較
          6. int compare = NumberUtil.compare(1, 2);

          7. // 隨機整數
          8. int randomInt = RandomUtil.randomInt(0, 100);

          9. // 隨機Boolean值
          10. boolean randomBoolean = RandomUtil.randomBoolean();

          加密解密工具類

          Hutool提供了一些常用的加密解密工具類,例如:

          • DigestUtil:提供了常用的加密算法,例如MD5、SHA-1、SHA-256等。
          • SecureUtil:提供了常用的加密解密操作,例如AES加密、RSA加密、BASE64編碼解碼等。
          1. // MD5加密
          2. String md5 = DigestUtil.md5Hex("hello world");

          3. // SHA-256加密
          4. String sha256 = DigestUtil.sha256Hex("hello world");

          5. // AES加密解密
          6. String aesKey = "aeskey1234567890";
          7. String content = "hello world";
          8. String encrypt = SecureUtil.aes(aesKey.getBytes(), content.getBytes(), Cipher.ENCRYPT_MODE);
          9. String decrypt = SecureUtil.aes(aesKey.getBytes(), encrypt.getBytes(), Cipher.DECRYPT_MODE);

          10. // RSA加密解密
          11. KeyPair keyPair = SecureUtil.generateKeyPair("RSA");
          12. String publicKey = Base64.encode(keyPair.getPublic().getEncoded());
          13. String privateKey = Base64.encode(keyPair.getPrivate().getEncoded());
          14. String rsaEncrypt = SecureUtil.rsaEncrypt(content.getBytes(), publicKey);
          15. String rsaDecrypt = SecureUtil.rsaDecrypt(rsaEncrypt, privateKey);

          16. // BASE64編碼解碼
          17. String base64Encode = Base64.encode(content.getBytes());
          18. String base64Decode = StrUtil.str(Base64.decode(base64Encode), CharsetUtil.CHARSET_UTF_8);

          文件操作工具類

          Hutool提供了一些常用的文件操作工具類,例如:

          • FileUtil:提供了文件的常用操作,例如文件的創建、文件的復制、文件的刪除等。
          • ZipUtil:提供了對壓縮文件的操作,例如壓縮文件的創建、壓縮文件的解壓等。
          1. // 文件創建
          2. File file = FileUtil.touch("D:/test.txt");

          3. // 文件復制
          4. FileUtil.copy("D:/test.txt", "D:/test_copy.txt", true);

          5. // 文件刪除
          6. FileUtil.del("D:/test.txt");

          7. // 壓縮文件創建
          8. ZipUtil.zip("D:/test.zip", "D:/test");

          9. // 壓縮文件解壓
          10. ZipUtil.unzip("D:/test.zip", "D:/unzip");

          Excel數據處理工具類

          Hutool提供了一些常用的Excel數據處理工具類,例如:

          • ExcelReader:提供了對Excel文件讀取的操作,可以讀取Excel中的數據、讀取指定Sheet中的數據等。
          • ExcelWriter:提供了對Excel文件寫入的操作,可以將數據寫入到Excel中指定的Sheet中。
          1. // 讀取Excel中的數據
          2. ExcelReader reader = ExcelUtil.getReader("D:/test.xlsx");
          3. List<List<Object>> readAll = reader.read();

          4. // 讀取指定Sheet中的數據
          5. ExcelReader sheetReader = ExcelUtil.getReader("D:/test.xlsx", "Sheet1");
          6. List<List<Object>> readSheetAll = sheetReader.read();

          7. // 將數據寫入Excel中指定的Sheet中
          8. ExcelWriter writer = ExcelUtil.getWriter("D:/test.xlsx", "Sheet1");
          9. writer.writeCellValue(0, 0, "hello");
          10. writer.flush();
          11. writer.close();

          Http請求工具類

          Hutool提供了一些常用的Http請求工具類,例如:

          HttpUtil:提供了對Http請求的操作,例如發送GET請求、發送POST請求、下載文件等。

          1. // 發送GET請求
          2. String result = HttpUtil.get("https://www.baidu.com");

          3. // 發送POST請求
          4. Map<String, Object> paramMap = new HashMap<>();
          5. paramMap.put("username", "admin");
          6. paramMap.put("password", "123456");
          7. String postResult = HttpUtil.post("https://www.example.com/login", paramMap);

          8. // 下載文件
          9. FileUtil.writeBytes(HttpUtil.downloadBytes("https://www.example.com/file"), "D:/file.txt");

          總之,Hutool是一個非常實用的Java工具類庫,它提供了豐富的工具類,可以大大簡化Java開發的過程,提高開發效率。無論是初學者還是資深開發者,都可以從中受益。

          享阿里 P8 高級架構師吐血總結的 《Java 核心知識體系&面試資料.pdf》

          據說是阿里 P8 級高級架構師吐血總結的一份 Java 核心知識.pdf, 內容覆蓋很廣,Java 核心基礎、Java 多線程、高并發、Spring、微服務、Netty 與 RPC、Zookeeper、Kafka、RabbitMQ、Habase、設計模式、負載均衡、分布式緩存、Hadoop、Spark、Storm、云計算等。

          另外,附送 100G 學習、面試視頻文檔喲~

          獲取方式:【關注 + 轉發】后,私信我,回復關鍵字【資源】,即可免費無套路獲取哦~

          以下是資源的部分目錄以及內容截圖:

          重要的事再說一遍,獲取方式:【關注 + 轉發】后,私信我,回復關鍵字【資源】,即可免費無套路獲取哦~

          正文開始

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

          一. org.apache.commons.io.IOUtils

          closeQuietly:關閉一個IO流、socket、或者selector且不拋出異常,通常放在finally塊
          toString:轉換IO流、 Uri、 byte[]為String
          copy:IO流數據復制,從輸入流寫到輸出流中,最大支持2GB
          toByteArray:從輸入流、URI獲取byte[]
          write:把字節. 字符等寫入輸出流
          toInputStream:把字符轉換為輸入流
          readLines:從輸入流中讀取多行數據,返回List<String>
          copyLarge:同copy,支持2GB以上數據的復制
          lineIterator:從輸入流返回一個迭代器,根據參數要求讀取的數據量,全部讀取,如果數據不夠,則失敗復制代碼
          

          二. org.apache.commons.io.FileUtils

          deleteDirectory:刪除文件夾
          readFileToString:以字符形式讀取文件內容
          deleteQueitly:刪除文件或文件夾且不會拋出異常
          copyFile:復制文件
          writeStringToFile:把字符寫到目標文件,如果文件不存在,則創建
          forceMkdir:強制創建文件夾,如果該文件夾父級目錄不存在,則創建父級
          write:把字符寫到指定文件中
          listFiles:列舉某個目錄下的文件(根據過濾器)
          copyDirectory:復制文件夾
          forceDelete:強制刪除文件復制代碼
          

          三. org.apache.commons.lang.StringUtils

          isBlank:字符串是否為空 (trim后判斷)
          isEmpty:字符串是否為空 (不trim并判斷)
          equals:字符串是否相等
          join:合并數組為單一字符串,可傳分隔符
          split:分割字符串
          EMPTY:返回空字符串
          trimToNull:trim后為空字符串則轉換為null
          replace:替換字符串復制代碼
          

          四. org.apache.http.util.EntityUtils

          toString:把Entity轉換為字符串
          consume:確保Entity中的內容全部被消費。可以看到源碼里又一次消費了Entity的內容,假如用戶沒有消費,那調用Entity時候將會把它消費掉
          toByteArray:把Entity轉換為字節流
          consumeQuietly:和consume一樣,但不拋異常
          getContentCharset:獲取內容的編碼復制代碼
          

          五. org.apache.commons.lang3.StringUtils

          isBlank:字符串是否為空 (trim后判斷)
          isEmpty:字符串是否為空 (不trim并判斷)
          equals:字符串是否相等
          join:合并數組為單一字符串,可傳分隔符
          split:分割字符串
          EMPTY:返回空字符串
          replace:替換字符串
          capitalize:首字符大寫復制代碼
          

          六. org.apache.commons.io.FilenameUtils

          getExtension:返回文件后綴名
          getBaseName:返回文件名,不包含后綴名
          getName:返回文件全名
          concat:按命令行風格組合文件路徑(詳見方法注釋)
          removeExtension:刪除后綴名
          normalize:使路徑正常化
          wildcardMatch:匹配通配符
          seperatorToUnix:路徑分隔符改成unix系統格式的,即/
          getFullPath:獲取文件路徑,不包括文件名
          isExtension:檢查文件后綴名是不是傳入參數(List<String>)中的一個復制代碼
          

          七. org.springframework.util.StringUtils

          hasText:檢查字符串中是否包含文本
          hasLength:檢測字符串是否長度大于0
          isEmpty:檢測字符串是否為空(若傳入為對象,則判斷對象是否為null)
          commaDelimitedStringToArray:逗號分隔的String轉換為數組
          collectionToDelimitedString:把集合轉為CSV格式字符串
          replace 替換字符串
          7. delimitedListToStringArray:相當于split
          uncapitalize:首字母小寫
          collectionToDelimitedCommaString:把集合轉為CSV格式字符串
          tokenizeToStringArray:和split基本一樣,但能自動去掉空白的單詞復制代碼
          

          八. org.apache.commons.lang.ArrayUtils

          contains:是否包含某字符串
          addAll:添加整個數組
          clone:克隆一個數組
          isEmpty:是否空數組
          add:向數組添加元素
          subarray:截取數組
          indexOf:查找某個元素的下標
          isEquals:比較數組是否相等
          toObject:基礎類型數據數組轉換為對應的Object數組復制代碼
          

          九. org.apache.commons.lang.StringEscapeUtils

          參考十五:org.apache.commons.lang3.StringEscapeUtils復制代碼
          

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

          format:格式化參數,返回一個HTTP POST或者HTTP PUT可用application/x-www-form-urlencoded字符串
          parse:把String或者URI等轉換為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:根據條件篩選集合元素
          transform:根據指定方法處理集合元素,類似List的map()
          filter:過濾元素,雷瑟List的filter()
          find:基本和select一樣
          collect:和transform 差不多一樣,但是返回新數組
          forAllDo:調用每個元素的指定方法
          isEqualCollection:判斷兩個集合是否一致復制代碼
          

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

          contains:是否包含某個字符串
          addAll:添加整個數組
          clone:克隆一個數組
          isEmpty:是否空數組
          add:向數組添加元素
          subarray:截取數組
          indexOf:查找某個元素的下標
          isEquals:比較數組是否相等
          toObject:基礎類型數據數組轉換為對應的Object數組復制代碼
          

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

          getProperty:獲取對象屬性值
          setProperty:設置對象屬性值
          getPropertyDiscriptor:獲取屬性描述器
          isReadable:檢查屬性是否可訪問
          copyProperties:復制屬性值,從一個對象到另一個對象
          getPropertyDiscriptors:獲取所有屬性描述器
          isWriteable:檢查屬性是否可寫
          getPropertyType:獲取對象屬性類型復制代碼
          

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

          unescapeHtml4:轉義html
          escapeHtml4:反轉義html
          escapeXml:轉義xml
          unescapeXml:反轉義xml
          escapeJava:轉義unicode編碼
          escapeEcmaScript:轉義EcmaScript字符
          unescapeJava:反轉義unicode編碼
          escapeJson:轉義json字符
          escapeXml10:轉義Xml10復制代碼
          

          這個現在已經廢棄了,建議使用commons-text包里面的方法。

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

          copyPeoperties:復制屬性值,從一個對象到另一個對象
          getProperty:獲取對象屬性值
          setProperty:設置對象屬性值
          populate:根據Map給屬性復制
          copyPeoperty:復制單個值,從一個對象到另一個對象
          cloneBean:克隆bean實例復制代碼
          

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

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

          作者:alterem


          主站蜘蛛池模板: 成人免费观看一区二区| 91一区二区三区四区五区| 精品国产一区二区三区在线观看| 国产成人综合一区精品| 欧洲精品码一区二区三区免费看| 国产精品一区二区久久精品涩爱| 日韩免费视频一区| 国产成人精品一区二区三在线观看| 丝袜人妻一区二区三区网站| 国产福利电影一区二区三区,亚洲国模精品一区 | 日韩免费一区二区三区| 亚洲AV无码一区二区三区性色| 精品福利视频一区二区三区| 亚洲丰满熟女一区二区v| 麻豆果冻传媒2021精品传媒一区下载| 无码免费一区二区三区免费播放| 免费看一区二区三区四区| 亚洲AV无码一区二区二三区软件| 亚洲一区二区在线免费观看| 亚洲一区二区三区夜色| 综合一区自拍亚洲综合图区| 国模吧无码一区二区三区| 亚洲国产成人一区二区精品区| 亚洲视频一区网站| 日本夜爽爽一区二区三区| 久久精品一区二区三区日韩| 国产日本一区二区三区| 无码人妻视频一区二区三区| 亚洲电影国产一区| 精品国产aⅴ无码一区二区| 无码国产伦一区二区三区视频| 国产综合精品一区二区三区| 精品国产毛片一区二区无码| 国模大尺度视频一区二区| 免费视频精品一区二区三区| 蜜臀AV在线播放一区二区三区| 一区二区免费视频| 国产高清一区二区三区视频| 国产aⅴ一区二区三区| 精品国产亚洲一区二区在线观看 | 交换国产精品视频一区|