Jetty可以作为嵌入式服务器,让我们可以直接用Java代码启动关闭服务器,也可以直接运行Servlet
为什么Jetty8:
按照官方的说法,Jetty 9开始需要JDK1.7, 所以安装JDK1.6的,只能使用Jetty8了,之前使用的Jar包是jetty-all-9.0.0.rc1.jar,运行程序后会出现如下错误:
- Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/jetty/start/Main : Unsupported major.minor version 51.0
所以1.6的只能使用Jetty8的Jar包比如jetty-all-8.1.2.v20120308.jar,除此之外还需要servlet-api.jar
以下是HelloWorld的代码:
- package com.jingshou.jetty;
- 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.setContentType("text/html;charset=utf-8");
- response.setStatus(HttpServletResponse.SC_OK);
- baseRequest.setHandled(true);
- response.getWriter().println("<h1>Hello World</h1>");
- }
- public static void main(String[] args) throws Exception {
- Server server = new Server(8888);
- server.setHandler(new HelloWorld());
- server.start();
- server.join();
- }
- }
运行后请求http://localhost:8888,将会输出HelloWorld
意义:
- 多了一种启动,部署web服务器的方式,而且是以Java代码的方式
- 在测试活动中可以使用嵌入式Jetty服务器做桩,感觉对做前端的同学应该会有用
更多学习资料:
- Jetty实战:http://blog.csdn.net/column/details/jettyinaction.html 基本都是学官方的例子....
- 官方文档: http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty