非阻塞式服务器:Web.Java

jopen 10年前

轻量级,无依赖

你是不是受够了J2EE的庞大臃肿?让Tomcat,GlassFlish等等应用服务器去死吧。Web.Java没有任何依赖,只要安装JDK7及以上版本就可以独立运行。不需要安装其他任何的东西。当然,如果你要使用数据库需要需要相应的JDBC。如果你想,你可以使用任何你想使用的扩展。

非阻塞,高性能

Web.Java是一个高性能,轻量级的非阻塞式服务器,而且速度相当快。
为了能更好的提高性能,Web.Java把HTTP服务区分应用和文件服务两种。

  • Web.Java 整体采用Reactor模式用来接收或响应HTTP请求(原理同Nginx)。
  • 应用服务采用了Reactor来响应请求。
  • 文件服务采用了Proactor模式,并搭配304状态使用,能极大的提高静态文件的相应速度,且不影响整体。

模板引擎

  • 简单的标签:只需要记住{{}}标签用于输出变量,{%%}标签用于if,for 等操作。
  • 可以继承的模版:页面的布局,HTML文件的复用等问题,通过模版继承机制可以得到解决。用{%extends xx%}关键字实现继承。
  • 高性能:Web.Java会自动把Html文件,编译成Java文件。应用到生产环境的时候,速度等同于Java的硬输出。且在DEBUG模式下,会动态的加载模板文件,而不需要重启进程。

灵活漂亮的URL

随便打开几个J2EE的网站,我就不想吐槽那个URL了。Web.Java使用正则表达式来配置URL,这样做可以提供足够强大和灵活的URL模式。比如像用“/Article/23”想获取文章的ID可以这样来配置URL

HttpServer.setPATH("/Article/(\\d+)",new ArticleHandler());      //ArticleHandler.java文件 get方法   public void get(String id){      //获取ID进行其他操作    ……    }  

这样在ArticleHandler中对应的get或者post方法中就会获取相应的参数。当然,你可以任意的使用正则表达式来配置你的URL

简单易用的数据库操作

Options.DBURL = "jdbc:mysql://localhost:3306/test";  Options.DBDriver = "com.mysql.jdbc.Driver";  Options.DBUser = "root";  Options.DBPassword = "123456";

配置好数据库信息后,可以直接在Handler中使用DB中的静态方法进行操作。
具体的操作在DB中有说明。当然如果你想,可以使用任何你想用的ORM。当然,希望你能直接使用SQL,不想解释为什么。

Hello World!

看名字就知道了。让我们开始使用Web.Java吧!
把源码包放到你的项目目录下面。然后在main方法中加入

HttpServer.setPATH("/", new IndexHandler());  System.out.println("Listen 8080");  HttpServer.init(8080);

IndexHandler.java

public void get() {      this.writer("Hello World!");  }

现在Run it 浏览器打开就会看到你Writer的内容了。

项目主页:http://www.open-open.com/lib/view/home/1416476430898