Jetty 内嵌网页服务器新手指南
文章目录
想弄一个 Java 内嵌网页服务器 ( Embedded Web Server ),这样,在我的 Java 应用程序里,可以直接提供网页服务,而不用再给用户配置一个网页服务器。对于轻量级的本地网页服务,这样就足够了!
在 Java 应用里内嵌一个网页服务器,Jetty 是一个很好的选择。以下是我在摸索过程中,总结的基本步骤:
1. Jetty 环境的配置
首先从官方网站下载开发包,再解压到你喜欢的目录,Java 的东西就是方便呀!
<p>
注意,<a href="http://wiki.eclipse.org/Jetty/Starting/Downloads">Jetty 还分好几种包</a>,Jetty@eclipse、Jetty@codehaus 是比较常见的,内容应该差不多,应该只是镜像罢了。
</p></p>
2. 在 Eclipse 里建立 Jetty 内嵌网页服务器 Hello World 程序
Java 开发中使用第三方库的时候,就需要把该库添加到工程里。Jetty 的库文件,全部在解压目录的 lib 目录下,比如说,在我这里就是
<pre>
D:\eclipse\jetty-hightide-8.0.4.v20111024\lib
<p>
目录。在 Eclipse 里新建一个 Java 工程,同时,在工程上点右键,弹出的菜单里,选择”Properties”,打开工程属性对话框,进行如下操作:
</p>
<p>
在 “Java Build Path” ==> “Libraries” 选项卡里,选择 “Add External JARs” 按钮,然后切换到 Jetty 目录里的 lib 目录,把所有的 jar 包都添加到工程里。
</p>
<p>
现在,我们可以用<a href="http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty#Creating_a_Server">最简单的例子</a>来启动一个 Jetty 内嵌网页服务器,但是这个代码,只可以获得一个 404 错误。不过没有关系,这起码可以证明 Jetty Server is Ready!
</p>
<p>
相比于上面这个 404 错误的例子,相信你会更喜欢下面这个 <a href="http://wiki.eclipse.org/Jetty/Tutorial/Jetty_HelloWorld#Writing_a_HelloWorld_Example">HelloWorld 例子</a>:
</p>
<pre>
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException;
import java.io.IOException;
import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.handler.AbstractHandler;
public class HelloWorld extends AbstractHandler { public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType(“text/html;charset=utf-8”); response.setStatus(HttpServletResponse.SC_OK); baseRequest.setHandled(true); response.getWriter().println("<h1>Hello World</h1>"); }
<span>public</span> <span>static</span> <span>void</span> <span>main</span>(<span>String</span>[] <span>args</span>) <span>throws</span> <span>Exception</span>
{
<span>Server</span> <span>server</span> = <span>new</span> <span>Server</span>(8080);
server.setHandler(<span>new</span> <span>HelloWorld</span>());
server.start();
server.join();
}
}
3. 其它添加 Jetty 库文件的方法
如果需要在 Java 工程里进行 Embeded Server 开发,也可以把 Jetty 的库目录包含到 CLASSPATH 环境变量里。事实上,只要能找到下面几个文件就可以了:
<pre>
servlet-api-3.0.jar jetty-util-8.0.4.v20111024.jar jetty-8.x.jar
<p>
手册上是这样写的,不过最后一个 jetty-8.x.jar 文件,我没有找到。
</p></p>
文章作者 cookwhy
上次更新 2011-11-06