21.1 Jetty嵌入式开发HelloWorld

  本章节将提供一些教程,通过Jetty API快速开发嵌入式代码

21.1.1 下载Jetty的jar包

  Jetty目前已经把所有功能分解成小的jar包,用户可以根据需要选择合适的jar包,来实现需要的功能。通常建议用户使用maven等管理工具来管理jar包,然而本教程使用一个包含所有功能的合集jar包来演示,用户可以使用curl或者浏览器下载jetty-all.jar包。

jetty-all.jar下载地址:http://central.maven.org/maven2/org/eclipse/jetty/aggregate/jetty-all/9.3.11.v20160721/jetty-all-9.3.11.v20160721-uber.jar

注意:

  Maven中央仓库已经开始拒绝使用wget命令获得资源(因为一些工具的滥用),所以Maven中央仓库建议使用curl命令来获得jar包。

使用curl 命令如下(Windows用户可以将上面的地址复制到浏览器来下载):

> mkdir Demo
> cd Demo
> curl -o jetty-all-uber.jar http://central.maven.org/maven2/org/eclipse/jetty/aggregate/jetty-all/9.3.11.v20160721/jetty-all-9.3.11.v20160721-uber.jar

21.1.2 写一个HelloWorld例子

   这个Jetty嵌入式教程章节包含很多通过Jetty API的例子,这个教程在main方法里运行一个Helloworld的handler来实现一个服务,可以自己写或者复制以下代码: 

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.AbstractHandler;

public class HelloWorld extends AbstractHandler {
    @Override
    public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {
        // 声明response的编码和文件类型
        response.setContentType("text/html; charset=utf-8");

        // 声明返回状态码
        response.setStatus(HttpServletResponse.SC_OK);

        // 请求的返回值
        response.getWriter().println("<h1>Hello World</h1>");

        // 通知Jettyrequest使用此处理器处理请求
        baseRequest.setHandled(true);
    }

    public static void main(String[] args) throws Exception {
        //创建一个应用服务监听8080端口
        Server server = new Server(8080);
        server.setHandler(new HelloWorld());

        //启动应用服务并等待请求
        server.start();
        server.join();
    }
}
View Code

相关文章: