Jetty是Eclipse基金会下面的一个开源项目, 是一个Web服务器和Servlet容器, 同时支持HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS功能. Jetty可以作为web服务器非常容易的嵌入到应用代码中, 包括Android的app.
Jetty除了嵌入到应用代码中外, 也可以像Tomcat那样独立运行, 通过部署WAR包的方式提供服务. 理论上来说, Tomcat下面运行的WAR包可以直接在Jetty下运行, 这一点我没有验证过. 有需要的同学可以自行验证. 接下来的博客中主要介绍嵌入运行方式.
接下来通过一个简单的例子来看看Jetty是如何开发的.
package com.lqp.test;import org.apache.logging.log4j.LogManager;import org.eclipse.jetty.server.Server;import org.eclipse.jetty.server.handler.ContextHandler;import org.eclipse.jetty.server.handler.ResourceHandler;public class TestJettyServer {public static void main(String[] args) {Server server = new Server(8080);ResourceHandler resource_handler = new ResourceHandler();resource_handler.setDirectoriesListed(true);ContextHandler resHanler = new ContextHandler();resHanler.setHandler(resource_handler);resHanler.setResourceBase(".");resHanler.setContextPath("/");server.setHandler(resHanler);try {server.start();} catch (Exception e) {LogManager.getLogger().catching(e);}}}
启动一个JettyWeb服务器就是这么简单. 启动后, 就可以在浏览器里浏览和查看当前目录下的文件了. 效果如下图:
Handler是Jetty服务器的业务功能实现地, 如果要扩展web服务器的功能, 只需要添加自己实现的handler就行, 还是很容易理解的.
1. 如何引用jetty的jar包
- 下载jar包, 添加jar引用, 这里是下载地址
- Maven依赖引用, 推荐这种方式.
```xml
org.eclipse.jetty jetty-server 9.4.2.v20170220
