Web.Java非阻塞式服務(wù)器
Web.Java是一個(gè)高性能,輕量級(jí)的非阻塞式服務(wù)器。
為了能更好的提高性能,Web.Java把HTTP服務(wù)區(qū)分應(yīng)用和文件服務(wù)兩種。
-
Web.Java 整體采用Reactor模式用來接收或響應(yīng)HTTP請(qǐng)求(原理同Nginx)。
-
應(yīng)用服務(wù)采用了Reactor來響應(yīng)請(qǐng)求。
-
文件服務(wù)采用了Proactor模式,并搭配304狀態(tài)使用,能極大的提高靜態(tài)文件的相應(yīng)速度,且不影響整體。
模板引擎
-
簡(jiǎn)單的標(biāo)簽:只需要記住{{}}標(biāo)簽用于輸出變量,{%%}標(biāo)簽用于if,for 等操作。
-
可以繼承的模版:頁面的布局,HTML文件的復(fù)用等問題,通過模版繼承機(jī)制可以得到解決。用{%extends xx%}關(guān)鍵字實(shí)現(xiàn)繼承。
-
高性能:Web.Java會(huì)自動(dòng)把Html文件,編譯成Java文件。應(yīng)用到生產(chǎn)環(huán)境的時(shí)候,速度等同于Java的硬輸出。且在DEBUG模式下,會(huì)動(dòng)態(tài)的加載模板文件,而不需要重啟進(jìn)程。
靈活漂亮的URL
隨便打開幾個(gè)J2EE的網(wǎng)站,我就不想吐槽那個(gè)URL了。Web.Java使用正則表達(dá)式來配置URL,這樣做可以提供足夠強(qiáng)大和靈活的URL模式。比如像用“/Article/23”想獲取文章的ID可以這樣來配置URL
HttpServer.setPATH("/Article/(\\d+)",new ArticleHandler());
//ArticleHandler.java文件 get方法
public void get(String id){
//獲取ID進(jìn)行其他操作
……
}
這樣在ArticleHandler中對(duì)應(yīng)的get或者post方法中就會(huì)獲取相應(yīng)的參數(shù)。當(dāng)然,你可以任意的使用正則表達(dá)式來配置你的URL
簡(jiǎn)單易用的數(shù)據(jù)庫操作
Options.DBURL = "jdbc:mysql://localhost:3306/test"; Options.DBDriver = "com.mysql.jdbc.Driver"; Options.DBUser = "root"; Options.DBPassword = "123456";
配置好數(shù)據(jù)庫信息后,可以直接在Handler中使用DB中的靜態(tài)方法進(jìn)行操作。
具體的操作在DB中有說明。當(dāng)然如果你想,可以使用任何你想用的ORM。當(dāng)然,希望你能直接使用SQL,不想解釋為什么。
Hello World!
看名字就知道了。讓我們開始使用Web.Java吧!
把源碼包放到你的項(xiàng)目目錄下面。 然后在main方法中加入
HttpServer.setPATH("/", new IndexHandler());
System.out.println("Listen 8080");
HttpServer.init(8080);
IndexHandler.java
public void get() {
this.writer("Hello World!");
}
現(xiàn)在Run it 瀏覽器打開就會(huì)看到你Writer的內(nèi)容了。
