在今年3月下旬的時候,Java版本已經更新到了18。接下來DD計劃持續做一個系列,主要更新從Java 9開始的各種更新內容,但我不全部都介紹,主要挑一些有意思的內容,以文章和視頻的方式來給大家介紹和學習。為了第一時間獲得內容更新,對文章形式感興趣的小伙伴可以關註我的博客或者公眾號(程式猿DD),對視 ...
在今年3月下旬的時候,Java版本已經更新到了18。接下來DD計劃持續做一個系列,主要更新從Java 9開始的各種更新內容,但我不全部都介紹,主要挑一些有意思的內容,以文章和視頻的方式來給大家介紹和學習。為了第一時間獲得內容更新,對文章形式感興趣的小伙伴可以關註我的博客或者公眾號(程式猿DD),對視頻形式感興趣的可以關註我的B站或視頻號(程式猿DD)。
簡單Web伺服器:jwebserver
JEP 408: Simple Web Server,是這次Java 18推出的一個比較獨立的全新功能點。我們可以通過命令行工具來啟動一個提供靜態資源訪問的迷你Web伺服器。
該工具的定位官方文檔中說了一堆:
這裡我簡單總結幾點,方便大家理解:
- 構建目的是應用於測試與教學,不是為了替代Jetty、Nginx等高級伺服器
- 不提供身份驗證、訪問控制或加密等安全功能
- 僅支持HTTP/1.1,不支持HTTPS
- 僅支持GET、HEAD請求
- 可以通過命令行、Java類啟動
下麵我們通過一個構建HTML頁面的例子,來嘗試一下jwebserver的功能。
HTML頁面準備
第一步:創建一個文件夾,比如就叫jwebserver
第二步:創建一個html文件,就叫index.html
吧
第三步:隨便寫點HTML內容,比如下麵這樣(懶的敲的話,可以根據圖片內的提示直接獲取本案例需要的所有內容):
jwebserver命令啟動
打開終端,輸入命令:
$ jwebserver
啟動速度很快,可以看到如下輸出:
嘗試訪問一下http://127.0.0.1:8000/
,就可以獲得之前準備的HTML內容了。
同時,在終端也看到了請求日誌:
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 -
關於jwebserver還有一些可選的參數,具體有這些:
-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
:要提供服務的目錄-o
:控制台的輸出級別
所以一個較為完整的啟動命令是這樣的:
jwebserver -p 9000 -d / -b 127.0.0.1 -o info
這條命令是一個以根目錄/
啟動的伺服器,服務埠是9000,綁定地址是127.0.0.1,控制台輸出級別使用info。
再嘗試訪問一下:http://127.0.0.1:9000/ ,可以看到根目錄/
下的文件夾和文件:
怎麼樣?是不是還挺簡單好用的?好了,今天的分享就到這裡!如果您學習過程中如遇困難?可以加入我們超高質量的技術交流群,參與交流與討論,更好的學習與進步!
另外,不要走開,關註我!下一篇更新如何使用Java代碼來啟動這個伺服器!
歡迎關註我的公眾號:程式猿DD。第一時間瞭解前沿行業消息、分享深度技術乾貨、獲取優質學習資源