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(); } }