Java?18?新特性之Web服務(wù)器?jwebserver功能
在今年3月下旬的時(shí)候,Java版本已經(jīng)更新到了18。
簡(jiǎn)單Web服務(wù)器:jwebserver
JEP 408: Simple Web Server,是這次Java 18推出的一個(gè)比較獨(dú)立的全新功能點(diǎn)。我們可以通過(guò)命令行工具來(lái)啟動(dòng)一個(gè)提供靜態(tài)資源訪問(wèn)的迷你Web服務(wù)器。
該工具的定位官方文檔中說(shuō)了一堆:

這里我簡(jiǎn)單總結(jié)幾點(diǎn),方便大家理解:
- 構(gòu)建目的是應(yīng)用于測(cè)試與教學(xué),不是為了替代Jetty、Nginx等高級(jí)服務(wù)器
- 不提供身份驗(yàn)證、訪問(wèn)控制或加密等安全功能
- 僅支持HTTP/1.1,不支持HTTPS
- 僅支持GET、HEAD請(qǐng)求
- 可以通過(guò)命令行、Java類啟動(dòng)
下面我們通過(guò)一個(gè)構(gòu)建HTML頁(yè)面的例子,來(lái)嘗試一下jwebserver的功能。
HTML頁(yè)面準(zhǔn)備
第一步:創(chuàng)建一個(gè)文件夾,比如就叫jwebserver
第二步:創(chuàng)建一個(gè)html文件,就叫index.html吧
第三步:隨便寫點(diǎn)HTML內(nèi)容,比如下面這樣(懶的敲的話,可以根據(jù)圖片內(nèi)的提示直接獲取本案例需要的所有內(nèi)容):

jwebserver命令啟動(dòng)
打開終端,輸入命令:
$ jwebserver
啟動(dòng)速度很快,可以看到如下輸出:

嘗試訪問(wèn)一下http://127.0.0.1:8000/,就可以獲得之前準(zhǔn)備的HTML內(nèi)容了。

同時(shí),在終端也看到了請(qǐng)求日志:
127.0.0.1 - - [20/4月/2022:00:10:58 +0800] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [20/4月/2022:00:10:58 +0800] "GET /banner-spring-boot.png HTTP/1.1" 200 -
關(guān)于jwebserver還有一些可選的參數(shù),具體有這些:
-h or -? or --help
Prints the help message and exits.
-b addr or --bind-address addr
Specifies the address to bind to. Default: 127.0.0.1 or ::1 (loopback). For
all interfaces use -b 0.0.0.0 or -b ::.
-d dir or --directory dir
Specifies the directory to serve. Default: current directory.
-o level or --output level
Specifies the output format. none | info | verbose. Default: info.
-p port or --port port
Specifies the port to listen on. Default: 8000.
-version or --version
Prints the version information and exits.
其中比較有用的是
-b:要綁定的ip地址-p:要啟動(dòng)的訪問(wèn)端口-d:要提供服務(wù)的目錄-o:控制臺(tái)的輸出級(jí)別
所以一個(gè)較為完整的啟動(dòng)命令是這樣的:
jwebserver -p 9000 -d / -b 127.0.0.1 -o info
這條命令是一個(gè)以根目錄/啟動(dòng)的服務(wù)器,服務(wù)端口是9000,綁定地址是127.0.0.1,控制臺(tái)輸出級(jí)別使用info。
再嘗試訪問(wèn)一下:http://127.0.0.1:9000/ ,可以看到根目錄/下的文件夾和文件:

怎么樣?是不是還挺簡(jiǎn)單好用的?好了,今天的分享就到這里!如果您學(xué)習(xí)過(guò)程中如遇困難?可以加入我們超高質(zhì)量的技術(shù)交流群,參與交流與討論,更好的學(xué)習(xí)與進(jìn)步!
另外,不要走開,關(guān)注我!下一篇更新如何使用Java代碼來(lái)啟動(dòng)這個(gè)服務(wù)器!
到此這篇關(guān)于Java 18 新特性之簡(jiǎn)單Web服務(wù)器 jwebserver的文章就介紹到這了,更多相關(guān)java18 Web服務(wù)器 jwebserver內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis-plus使用selectList查詢數(shù)據(jù)為null的問(wèn)題及解決辦法
這篇文章主要介紹了Mybatis-plus使用selectList查詢數(shù)據(jù)為null的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
Nacos+Spring Cloud Gateway動(dòng)態(tài)路由配置實(shí)現(xiàn)步驟
Nacos最近項(xiàng)目一直在使用,本文通過(guò)gateway、nacos-consumer、nacos-provider三個(gè)簡(jiǎn)單模塊來(lái)展示:Nacos下動(dòng)態(tài)路由配置,,感興趣的小伙伴們可以參考一下2021-08-08
java實(shí)現(xiàn)漢字轉(zhuǎn)unicode與漢字轉(zhuǎn)16進(jìn)制實(shí)例
這篇文章主要介紹了java實(shí)現(xiàn)漢字轉(zhuǎn)unicode與漢字轉(zhuǎn)16進(jìn)制的實(shí)現(xiàn)方法,是Java操作漢字編碼轉(zhuǎn)換的一個(gè)典型應(yīng)用,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10
SpringBoot項(xiàng)目設(shè)置斷點(diǎn)debug調(diào)試無(wú)效忽略web.xml問(wèn)題的解決
這篇文章主要介紹了SpringBoot項(xiàng)目設(shè)置斷點(diǎn)debug調(diào)試無(wú)效忽略web.xml問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
SpringBoot YAML語(yǔ)法基礎(chǔ)詳細(xì)整理
YAML 是 “YAML Ain’t Markup Language”(YAML 不是一種標(biāo)記語(yǔ)言)的遞歸縮寫。在開發(fā)的這種語(yǔ)言時(shí),YAML 的意思其實(shí)是:“Yet Another Markup Language”(仍是一種標(biāo)記語(yǔ)言),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10
java jdk1.8 使用stream流進(jìn)行l(wèi)ist 分組歸類操作
這篇文章主要介紹了java jdk1.8 使用stream流進(jìn)行l(wèi)ist 分組歸類操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
SpringBoot使用Maven打包異常-引入外部jar的問(wèn)題及解決方案
這篇文章主要介紹了SpringBoot使用Maven打包異常-引入外部jar,需要的朋友可以參考下2020-06-06
SpringBoot解決@Component無(wú)法注入其他Bean的問(wèn)題
這篇文章主要介紹了SpringBoot解決@Component無(wú)法注入其他Bean的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08

