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
本文出自"lijingshou"博客,转载请务必保留此出处http://lijingshou.iteye.com/blog/2016207