使用Java對(duì)URL進(jìn)行編碼和解碼
一、引言
在互聯(lián)網(wǎng)應(yīng)用中,URL(Uniform Resource Locator,統(tǒng)一資源定位符)是定位和訪問(wèn)網(wǎng)絡(luò)資源的重要標(biāo)識(shí)。然而,URL 中可能包含一些特殊字符,如空格、中文、標(biāo)點(diǎn)符號(hào)以及其他非 ASCII 字符,這些字符在傳輸過(guò)程中可能會(huì)導(dǎo)致誤解或者錯(cuò)誤解析。為了保證 URL 的有效性和兼容性,必須對(duì) URL 進(jìn)行編碼處理。編碼后的 URL 能夠安全地在網(wǎng)絡(luò)上傳輸,而解碼則是將其恢復(fù)成原始的格式,以供程序使用。
Java 提供了內(nèi)置工具類 URLEncoder
與 URLDecoder
,方便開發(fā)者對(duì) URL 進(jìn)行編碼和解碼處理。本文將圍繞這一主題,從項(xiàng)目背景、相關(guān)技術(shù)、整體設(shè)計(jì)到具體代碼實(shí)現(xiàn),詳細(xì)介紹如何使用 Java 語(yǔ)言實(shí)現(xiàn) URL 編碼與解碼,同時(shí)對(duì)代碼做詳細(xì)注釋和功能解析,幫助開發(fā)者深入理解這一常見操作的原理與實(shí)踐。
二、項(xiàng)目簡(jiǎn)介
2.1 項(xiàng)目背景
在實(shí)際開發(fā)中,很多場(chǎng)景都需要對(duì) URL 進(jìn)行編碼和解碼,例如:
- 參數(shù)傳遞:在 HTTP 請(qǐng)求中,GET 請(qǐng)求參數(shù)或 POST 請(qǐng)求體中可能包含中文或特殊字符,若直接傳遞會(huì)導(dǎo)致服務(wù)器解析錯(cuò)誤。
- 數(shù)據(jù)存儲(chǔ):有時(shí)將 URL 存儲(chǔ)到數(shù)據(jù)庫(kù)中,需要保證字符集統(tǒng)一與安全性。
- 安全性考慮:編碼還可以防止因特殊字符造成的注入風(fēng)險(xiǎn)和安全漏洞。
通過(guò)對(duì) URL 進(jìn)行編碼,可以將所有非安全字符轉(zhuǎn)換為百分號(hào)(%)后跟兩位十六進(jìn)制數(shù)的形式,這樣既能保證數(shù)據(jù)的完整性,也能方便網(wǎng)絡(luò)傳輸與解析。而解碼則是將編碼后的字符串恢復(fù)到原始格式,方便程序進(jìn)行后續(xù)處理。
2.2 項(xiàng)目目標(biāo)
本項(xiàng)目的主要目標(biāo)是:
- 實(shí)現(xiàn) URL 編碼和解碼功能:通過(guò) Java 標(biāo)準(zhǔn)庫(kù)對(duì) URL 進(jìn)行編碼和解碼,并展示編碼前后的區(qū)別。
- 提高對(duì)特殊字符處理的理解:詳細(xì)介紹 URL 中哪些字符需要編碼,以及編碼規(guī)則與標(biāo)準(zhǔn)。
- 展示異常處理機(jī)制:在編碼與解碼過(guò)程中,需要處理編碼字符集不匹配或非法輸入等異常情況。
- 代碼注釋詳盡:在每一段代碼中都附上詳細(xì)注釋,幫助初學(xué)者理解各個(gè)步驟的作用與實(shí)現(xiàn)原理。
- 提供擴(kuò)展思路:在項(xiàng)目總結(jié)部分討論未來(lái)可能的擴(kuò)展,如支持多種字符集、結(jié)合 Apache Commons Codec 庫(kù)等方案。
2.3 功能描述
本項(xiàng)目將實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 Java 應(yīng)用,主要包含以下功能模塊:
- URL 編碼:通過(guò)調(diào)用
URLEncoder.encode(String s, String encoding)
方法,將原始 URL 中的中文、空格和特殊字符轉(zhuǎn)換為編碼格式。 - URL 解碼:通過(guò)調(diào)用
URLDecoder.decode(String s, String encoding)
方法,將編碼后的 URL 恢復(fù)為原始格式。 - 異常處理:對(duì)編碼過(guò)程中可能拋出的異常(如 UnsupportedEncodingException)進(jìn)行捕獲處理,保證程序的健壯性。
- 結(jié)果展示:在命令行中打印出編碼前后的 URL,以及解碼后的結(jié)果,直觀展示編碼與解碼的效果。
- 代碼結(jié)構(gòu)整合:所有代碼整合在一個(gè)類中,便于讀者一次性了解整個(gè)實(shí)現(xiàn)過(guò)程,同時(shí)附有詳細(xì)注釋和方法 功能解析。
三、相關(guān)技術(shù)與知識(shí)介紹
3.1 URL 編碼與解碼基礎(chǔ)
URL 編碼是一種將 URL 中非 ASCII 字符轉(zhuǎn)換為百分號(hào)(%)后跟兩位十六進(jìn)制數(shù)字的表示方法。主要原因是 URL 中只能包含部分安全字符,而其他字符可能會(huì)被瀏覽器或服務(wù)器錯(cuò)誤解析。常見需要編碼的字符包括空格、中文字符、以及一些保留字符(如 &、=、?、# 等)。
編碼規(guī)則:
- 所有不在 A-Z、a-z、0-9、以及部分特殊字符(如 -、_、.、~)內(nèi)的字符都需要進(jìn)行編碼。
- 編碼后的字符格式為
%XX
,其中 XX 是該字符對(duì)應(yīng)的 ASCII 十六進(jìn)制表示。
例如,字符串 “你好 world!” 經(jīng)過(guò)編碼后可能變成 “%E4%BD%A0%E5%A5%BD+world%21”,其中空格通常被替換為加號(hào)(+)或 %20
。
3.2 Java 中的 URL 編碼工具類
Java 標(biāo)準(zhǔn)庫(kù)中提供了 java.net.URLEncoder
與 java.net.URLDecoder
兩個(gè)類:
- URLEncoder:提供靜態(tài)方法
encode(String s, String enc)
,將字符串轉(zhuǎn)換為應(yīng)用application/x-www-form-urlencoded
MIME 格式。 - URLDecoder:提供靜態(tài)方法
decode(String s, String enc)
,將編碼后的字符串恢復(fù)為原始格式。
使用時(shí)需要注意指定字符集(如 UTF-8),以保證編碼結(jié)果的正確性。若使用錯(cuò)誤的字符集,可能導(dǎo)致中文或特殊字符亂碼。
3.3 字符集與編碼格式
在網(wǎng)絡(luò)傳輸和數(shù)據(jù)存儲(chǔ)中,字符集(Character Encoding)扮演著非常重要的角色。常見的字符集有 ASCII、ISO-8859-1、UTF-8 等。
- UTF-8 是一種變長(zhǎng)的 Unicode 編碼格式,支持全球幾乎所有的字符,因而被廣泛使用。
- 在 URL 編碼中,建議使用 UTF-8 編碼格式,可以確保中文和其他特殊字符正確轉(zhuǎn)換。
3.4 異常處理機(jī)制
在使用 URL 編碼和解碼過(guò)程中,可能會(huì)遇到不支持的字符集異常(UnsupportedEncodingException
)。為了保證程序的健壯性,需要對(duì)這些異常進(jìn)行捕獲與處理,提示用戶或進(jìn)行日志記錄,確保程序不會(huì)因異常而中斷運(yùn)行。
四、項(xiàng)目整體架構(gòu)設(shè)計(jì)
本項(xiàng)目的整體架構(gòu)設(shè)計(jì)簡(jiǎn)單明了,主要由以下幾個(gè)模塊組成:
4.1 程序入口與主類
整個(gè)程序以一個(gè) Java 類作為入口,例如命名為 UrlEncodeDecodeDemo
。在主方法中,將演示 URL 編碼與解碼的整個(gè)流程,包括輸入測(cè)試字符串、調(diào)用編碼解碼方法以及打印結(jié)果。
4.2 URL 編碼方法
在主類中封裝一個(gè)靜態(tài)方法 encodeUrl(String url)
,該方法接收一個(gè)字符串作為輸入,返回編碼后的字符串。方法內(nèi)部調(diào)用 URLEncoder.encode
,并捕獲可能出現(xiàn)的異常。
4.3 URL 解碼方法
同樣,在主類中封裝一個(gè)靜態(tài)方法 decodeUrl(String url)
,用于將編碼后的 URL 字符串恢復(fù)為原始格式。方法內(nèi)部調(diào)用 URLDecoder.decode
并處理異常。
4.4 異常處理與日志記錄
每個(gè)方法在進(jìn)行編碼或解碼時(shí)都會(huì)進(jìn)行輸入驗(yàn)證,并捕獲異常。如果遇到不支持的編碼格式,將通過(guò)異常信息提示用戶,同時(shí)保證程序不會(huì)崩潰。
4.5 結(jié)果展示模塊
在主方法中,通過(guò)打印輸出展示編碼前后的 URL 以及解碼后的結(jié)果,幫助讀者直觀理解編碼與解碼操作的效果??筛鶕?jù)需要添加更多測(cè)試案例,驗(yàn)證不同字符的處理情況。
五、項(xiàng)目實(shí)現(xiàn)思路
在動(dòng)手編寫代碼之前,我們需要先明確項(xiàng)目的實(shí)現(xiàn)思路,主要包括以下幾個(gè)步驟:
5.1 環(huán)境搭建
- 開發(fā)工具:建議使用 IntelliJ IDEA、Eclipse 或 VS Code 等 Java 開發(fā)工具。
- JDK 版本:推薦使用 JDK 1.8 或更高版本,以確保支持最新的語(yǔ)言特性和 API。
- 項(xiàng)目結(jié)構(gòu):本項(xiàng)目不依賴外部庫(kù),直接使用 JDK 內(nèi)置類,因此項(xiàng)目結(jié)構(gòu)非常簡(jiǎn)單,所有代碼均在一個(gè) Java 文件中。
5.2 方法設(shè)計(jì)
項(xiàng)目中將設(shè)計(jì)兩個(gè)主要的方法:
encodeUrl(String url)
- 功能:接收原始 URL 字符串,對(duì)其進(jìn)行編碼。
- 實(shí)現(xiàn):調(diào)用
URLEncoder.encode(url, "UTF-8")
,并處理異常。 - 注意:需要考慮空字符串、null 值和非法字符的情況。
decodeUrl(String url)
- 功能:接收編碼后的 URL 字符串,對(duì)其進(jìn)行解碼還原。
- 實(shí)現(xiàn):調(diào)用
URLDecoder.decode(url, "UTF-8")
,并處理異常。 - 注意:同樣需要驗(yàn)證輸入數(shù)據(jù)的合法性,避免解碼錯(cuò)誤。
5.3 編碼細(xì)節(jié)與標(biāo)準(zhǔn)
在編碼過(guò)程中,需要遵循 application/x-www-form-urlencoded
格式,該格式規(guī)定空格轉(zhuǎn)換為加號(hào)(+),同時(shí)對(duì)除字母、數(shù)字和特定符號(hào)以外的字符進(jìn)行編碼。開發(fā)者應(yīng)理解這種編碼方式與百分號(hào)編碼的區(qū)別,并結(jié)合實(shí)際場(chǎng)景選擇合適的處理方案。
5.4 測(cè)試與調(diào)試
完成編碼與解碼方法后,需要編寫測(cè)試代碼驗(yàn)證方法的正確性。測(cè)試時(shí)可采用以下步驟:
- 輸入測(cè)試字符串:包括純英文、中文、特殊字符(如 &、=、?、#)等。
- 驗(yàn)證編碼結(jié)果:檢查編碼后的字符串是否符合預(yù)期格式。
- 驗(yàn)證解碼結(jié)果:將編碼后的字符串解碼,檢查是否與原始字符串一致。
- 記錄運(yùn)行時(shí)間:雖本例中操作耗時(shí)微乎其微,但記錄異常信息及運(yùn)行日志有助于排查問(wèn)題。
六、代碼實(shí)現(xiàn)
下面提供整合后的完整代碼示例,代碼全部寫在一個(gè) Java 類中,并附有詳細(xì)注釋,幫助讀者理解每個(gè)代碼塊的作用及實(shí)現(xiàn)細(xì)節(jié)。
/* * 本示例演示如何使用 Java 對(duì) URL 進(jìn)行編碼與解碼操作。 * 主要內(nèi)容包括: * 1. 使用 java.net.URLEncoder 對(duì) URL 進(jìn)行編碼,將特殊字符、中文等轉(zhuǎn)換為符合網(wǎng)絡(luò)傳輸要求的格式。 * 2. 使用 java.net.URLDecoder 對(duì)編碼后的 URL 進(jìn)行解碼,還原成原始字符串。 * * 說(shuō)明: * - 在編碼時(shí),采用 UTF-8 字符集,確保所有語(yǔ)言字符均能正確轉(zhuǎn)換。 * - 若輸入字符串為 null 或非法格式,方法中將進(jìn)行異常捕獲,并輸出錯(cuò)誤提示信息。 * * 本代碼整合在一個(gè)類中,包含以下主要方法: * - encodeUrl(String url) : 對(duì)輸入的 URL 字符串進(jìn)行編碼 * - decodeUrl(String url) : 對(duì)輸入的編碼 URL 字符串進(jìn)行解碼 * - main(String[] args) : 程序入口,用于測(cè)試編碼和解碼功能,并打印結(jié)果 */ package com.example.urlcodec; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.net.URLDecoder; public class UrlEncodeDecodeDemo { /** * 主方法,程序入口。 * 在主方法中測(cè)試 encodeUrl 和 decodeUrl 方法,展示編碼與解碼的效果。 * * @param args 命令行參數(shù) */ public static void main(String[] args) { // 示例測(cè)試字符串,包含中文、空格和特殊字符 String originalUrl = "https://www.example.com/search?query=Java 編碼 解碼&lang=中文"; System.out.println("原始 URL:"); System.out.println(originalUrl); System.out.println("--------------------------------------------------"); // 對(duì)原始 URL 進(jìn)行編碼 String encodedUrl = encodeUrl(originalUrl); System.out.println("編碼后的 URL:"); System.out.println(encodedUrl); System.out.println("--------------------------------------------------"); // 對(duì)編碼后的 URL 進(jìn)行解碼 String decodedUrl = decodeUrl(encodedUrl); System.out.println("解碼后的 URL:"); System.out.println(decodedUrl); } /** * 對(duì)傳入的 URL 字符串進(jìn)行編碼。 * 使用 java.net.URLEncoder.encode 方法,將 URL 中的非 ASCII 字符和特殊字符轉(zhuǎn)換為百分號(hào)編碼格式, * 以確保 URL 在網(wǎng)絡(luò)傳輸中的安全性和正確性。 * * @param url 原始 URL 字符串 * @return 編碼后的 URL 字符串,如果發(fā)生異常則返回 null */ public static String encodeUrl(String url) { if (url == null) { System.err.println("輸入的 URL 不能為 null"); return null; } try { // 使用 UTF-8 編碼方式進(jìn)行 URL 編碼 return URLEncoder.encode(url, "UTF-8"); } catch (UnsupportedEncodingException e) { // 捕獲不支持的編碼異常并打印錯(cuò)誤信息 System.err.println("不支持的編碼格式:UTF-8"); e.printStackTrace(); return null; } } /** * 對(duì)傳入的編碼后的 URL 字符串進(jìn)行解碼。 * 使用 java.net.URLDecoder.decode 方法,將編碼后的 URL 轉(zhuǎn)換回原始格式, * 使程序能夠正確處理其中的中文、空格和特殊字符。 * * @param url 編碼后的 URL 字符串 * @return 解碼后的原始 URL 字符串,如果發(fā)生異常則返回 null */ public static String decodeUrl(String url) { if (url == null) { System.err.println("輸入的編碼 URL 不能為 null"); return null; } try { // 使用 UTF-8 編碼方式進(jìn)行 URL 解碼 return URLDecoder.decode(url, "UTF-8"); } catch (UnsupportedEncodingException e) { // 捕獲不支持的編碼異常并打印錯(cuò)誤信息 System.err.println("不支持的編碼格式:UTF-8"); e.printStackTrace(); return null; } } }
七、代碼詳細(xì)解讀
下面對(duì)代碼中各主要方法進(jìn)行功能解讀,幫助大家理解各部分的實(shí)現(xiàn)思路,而不重復(fù)代碼內(nèi)容:
7.1 主方法(main)
- 功能說(shuō)明
主方法作為程序入口,用于演示 URL 編碼與解碼的全過(guò)程。- 首先定義一個(gè)測(cè)試字符串,該字符串包含 URL 地址、查詢參數(shù)以及中文、空格和特殊字符。
- 通過(guò)調(diào)用
encodeUrl
方法對(duì)原始字符串進(jìn)行編碼,將所有需要轉(zhuǎn)義的字符轉(zhuǎn)換為百分號(hào)格式。 - 隨后調(diào)用
decodeUrl
方法對(duì)編碼后的字符串進(jìn)行解碼,還原為原始字符串。 - 最后將原始 URL、編碼后 URL 以及解碼后 URL 依次打印出來(lái),便于直觀對(duì)比和驗(yàn)證。
7.2 URL 編碼方法(encodeUrl)
- 功能說(shuō)明
該方法用于將輸入的 URL 字符串進(jìn)行編碼。- 方法首先對(duì)輸入?yún)?shù)進(jìn)行驗(yàn)證,若傳入 null 則打印錯(cuò)誤信息并返回 null。
- 接著使用
URLEncoder.encode(url, "UTF-8")
將字符串轉(zhuǎn)換為符合application/x-www-form-urlencoded
格式的字符串。 - 如果編碼過(guò)程中遇到不支持的字符集異常,方法會(huì)捕獲該異常,輸出錯(cuò)誤提示,并返回 null。
7.3 URL 解碼方法(decodeUrl)
- 功能說(shuō)明
該方法用于將經(jīng)過(guò)編碼處理的 URL 字符串還原為原始格式。- 與編碼方法類似,首先驗(yàn)證輸入是否為 null,若為 null 則打印錯(cuò)誤信息并返回 null。
- 使用
URLDecoder.decode(url, "UTF-8")
將編碼后的字符串解碼,還原成原始 URL。 - 在解碼過(guò)程中,同樣對(duì)異常進(jìn)行捕獲處理,確保程序穩(wěn)定運(yùn)行。
八、項(xiàng)目總結(jié)與展望
8.1 項(xiàng)目實(shí)現(xiàn)總結(jié)
本項(xiàng)目通過(guò) Java 語(yǔ)言實(shí)現(xiàn)了 URL 編碼與解碼的功能,核心收獲與體會(huì)包括:
- 正確處理特殊字符
通過(guò) URL 編碼,可以確保包含中文、空格和特殊字符的 URL 在網(wǎng)絡(luò)傳輸過(guò)程中不會(huì)出現(xiàn)亂碼或解析錯(cuò)誤。 - 利用 Java 內(nèi)置工具類
使用URLEncoder
和URLDecoder
簡(jiǎn)化了開發(fā)流程,開發(fā)者無(wú)需自行實(shí)現(xiàn)復(fù)雜的編碼算法,而只需關(guān)注字符集和異常處理。 - 異常處理機(jī)制
在編碼和解碼過(guò)程中,通過(guò)捕獲UnsupportedEncodingException
異常,提高了程序的健壯性,確保在出現(xiàn)異常時(shí)能有明確提示,而不會(huì)導(dǎo)致整個(gè)程序崩潰。 - 代碼注釋和結(jié)構(gòu)
本項(xiàng)目所有代碼均添加了詳細(xì)注釋,方便初學(xué)者理解每一步驟的實(shí)現(xiàn)細(xì)節(jié),并有助于后續(xù)維護(hù)和擴(kuò)展。
8.2 遇到的難點(diǎn)與解決方案
在項(xiàng)目開發(fā)過(guò)程中,我們主要遇到以下難點(diǎn):
- 字符集問(wèn)題
不同的字符集可能導(dǎo)致編碼結(jié)果不同。為保證一致性,本文統(tǒng)一采用 UTF-8 編碼。 - 異常捕獲
URL 編碼與解碼過(guò)程中可能會(huì)拋出異常,需要對(duì)UnsupportedEncodingException
進(jìn)行妥善處理。解決方案是在每個(gè)方法內(nèi)部加入 try-catch 塊,并打印錯(cuò)誤信息,以便調(diào)試和后續(xù)問(wèn)題排查。 - 輸入驗(yàn)證
為防止傳入 null 或非法字符串,增加了輸入驗(yàn)證和提示信息,確保方法調(diào)用時(shí)參數(shù)有效。
8.3 擴(kuò)展功能與未來(lái)展望
雖然本文實(shí)現(xiàn)了基本的 URL 編碼與解碼功能,但在實(shí)際開發(fā)中,我們可以考慮以下擴(kuò)展方向:
- 多字符集支持
當(dāng)前代碼固定使用 UTF-8,未來(lái)可以增加接口參數(shù)支持其他編碼格式,如 ISO-8859-1 或 GBK,以滿足不同應(yīng)用場(chǎng)景。 - 封裝為工具類庫(kù)
將該功能封裝為一個(gè)通用的工具類庫(kù),方便在大型項(xiàng)目中反復(fù)使用,并加入單元測(cè)試,確保功能的正確性與魯棒性。 - 集成第三方庫(kù)
若項(xiàng)目中有更復(fù)雜的編碼需求,可以結(jié)合 Apache Commons Codec 等第三方庫(kù),進(jìn)一步簡(jiǎn)化編碼解碼操作。 - Web 應(yīng)用集成
將該功能集成到 Web 應(yīng)用中,實(shí)現(xiàn)一個(gè)在線 URL 編碼/解碼工具,用戶可以直接在網(wǎng)頁(yè)上輸入 URL 并得到編碼、解碼結(jié)果,提升用戶體驗(yàn)。
九、結(jié)語(yǔ)
本文詳細(xì)介紹了如何使用 Java 對(duì) URL 進(jìn)行編碼和解碼。文章從項(xiàng)目背景出發(fā),介紹了 URL 編碼的原理、Java 內(nèi)置的工具類以及相關(guān)字符集知識(shí);隨后詳細(xì)描述了項(xiàng)目的整體架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)思路,并給出了整合后的完整代碼示例,每一部分均附有詳細(xì)注釋;最后通過(guò)對(duì)各方法 功能的解析和項(xiàng)目總結(jié),對(duì)開發(fā)過(guò)程中遇到的難點(diǎn)進(jìn)行了討論,并展望了未來(lái)可能的擴(kuò)展方向。
通過(guò)本項(xiàng)目的實(shí)踐,開發(fā)者不僅能夠掌握如何使用 URLEncoder
和 URLDecoder
進(jìn)行 URL 編碼解碼,還能理解字符集的重要性與異常處理的基本方法。這為實(shí)際 Web 開發(fā)中數(shù)據(jù)傳輸、參數(shù)處理以及安全性考慮提供了有力支持。希望本文能為你在 Java 編程實(shí)踐中提供實(shí)用的參考和啟發(fā),助力你構(gòu)建更加健壯和高效的網(wǎng)絡(luò)應(yīng)用!
以上就是使用Java對(duì)URL進(jìn)行編碼和解碼的詳細(xì)內(nèi)容,更多關(guān)于Java URL編碼和解碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringCloud通過(guò)Nacos實(shí)現(xiàn)注冊(cè)中心與遠(yuǎn)程服務(wù)調(diào)用詳解流程
如果不滿足eureka注冊(cè)中心,那么本文記錄的Nacos是不二之選。本文主要記錄Springboot基于Nacos實(shí)現(xiàn)注冊(cè)中心以及遠(yuǎn)程服務(wù)調(diào)用2022-07-07Java鎖升級(jí)的實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了Java鎖升級(jí)的實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05自定義的Troop<T>泛型類( c++, java和c#)的實(shí)現(xiàn)代碼
這篇文章主要介紹了自定義的Troop<T>泛型類( c++, java和c#)的實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05SpringMVC中的ResourceUrlProviderExposingInterceptor詳解
這篇文章主要介紹了SpringMVC中的ResourceUrlProviderExposingInterceptor詳解,ResourceUrlProviderExposingInterceptor是Spring MVC的一個(gè)HandlerInterceptor,用于向請(qǐng)求添加一個(gè)屬性,需要的朋友可以參考下2023-12-12Java并發(fā) CompletableFuture異步編程的實(shí)現(xiàn)
這篇文章主要介紹了Java并發(fā) CompletableFuture異步編程的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01Java設(shè)計(jì)模式單例模式(Singleton)用法解析
這篇文章主要介紹了Java設(shè)計(jì)模式單例模式(Singleton)用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11java解析dbf之通過(guò)javadbf包生成和讀取dbf文件
這篇文章主要介紹了java通過(guò)javadbf讀取和生成DBF文件的方法,大家參考使用吧2014-01-01