jetty的使用
? 之前都用tomcat的童鞋是不是觉得tomcat很方便啊?但是还有个更方便的web服务器叫jetty,而且它的体积很小,只有几百KB,所以在项目中使用是很方便的。
? 下面来介绍下jetty所必需的一些东西:请注意看他的包结构
?
?
这些包都是必需的。你可以去网上下个jetty-7.2版本的类似于tomecat的东西。
其实运用jetty的方法比较多。我们一一来分析。
方法1:
?看到jetty.xml和webdefault.xml这2玩意了吗?
?webdefault.xml官方的解释是The default descriptor is a web.xml format file that is applied to the context before the standard WEB-INF/web.xml 你可以理解为在web.xml加载之前先加载的jetty所需的一个容器的配置文件。
你可以去你下载的jetty里面拿出来 比如说你的路径D:\jetty-hightide-7.2.1.v20101111\etc 去这里拽个出来放在你项目里面。内容基本上不要改。
然后我们来看下jetty.xml 这是一个负责告诉jetty容器要运行的你的工程是什么。
咱们可以先看下它的内容:
<?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> <Configure id="Server" default="localhost"/></Set> <!--你的端口--> <Set name="port"><SystemProperty name="jetty.port" default="9090"/></Set> <Set name="maxIdleTime">30000</Set> <Set name="Acceptors">2</Set> <Set name="statsOn">false</Set> <Set name="confidentialPort">8443</Set> <Set name="lowResourcesConnections">5000</Set> <Set name="lowResourcesMaxIdleTime">5000</Set> </New> </Arg> </Call> <Set name="handler"> <New id="Handlers" default="./WebRoot/logs" />/yyyy_mm_dd.request.log</Set> <Set name="filenameDateFormat">yyyy_MM_dd</Set> <Set name="retainDays">90</Set> <Set name="append">true</Set> <Set name="extended">true</Set> <Set name="logCookies">false</Set> <Set name="LogTimeZone">GMT</Set> </New> </Set> </Ref> <Set name="stopAtShutdown">true</Set> <Set name="sendServerVersion">true</Set> <Set name="sendDateHeader">true</Set> <Set name="gracefulShutdown">1000</Set> </Configure>
?
字面就很好理解吧?看完了上面的你啥类都可以先不写,可以进入debug配置里面 如下图
?
右击new 一个如下图来配置
?
?
?
到这里方法1就基本完成了,保存配置 run debug!http://localhost:9090/jettytest 直接去访问吧。
?
方法2和方法3 都是用java代码来call jetty。
方法2先来:
public static void startJettyMethodO() {String jetty_home = "jettytest";//这个就是你的项目发布时候的名字 try { Server server = new Server(); Connector connector = new SelectChannelConnector(); connector.setPort(9999); server.setConnectors(new Connector[] { connector }); WebAppContext webapp = new WebAppContext(); webapp.setContextPath("/"+jetty_home);//上下文路径 比如说/jettytest webapp.setResourceBase("./WebRoot");//你的资源文件所在的路径 一般都在这下面 webapp.setDefaultsDescriptor("./WebRoot/etc/webdefault.xml"); server.setHandler(webapp); server.start(); server.join(); } catch (Exception e) { e.printStackTrace(); }}?
? 方法3:
?
FileNotFoundException, Exception {Server server = new Server(); XmlConfiguration configuration = new XmlConfiguration( new FileInputStream( "D:\\teamwork\\jettytest\\WebRoot\\etc\\jetty.xml")); //指定自定义的jetty.xml路径 configuration.configure(server); server.start();
?
附:官方apihttp://jetty.codehaus.org/jetty/jetty-6/apidocs/index.html
其他我也没啥好说的了。如果还有其他方法的话我会更新的。多谢支持~!
需要在启动程序配置中加上vm参数,如果是jetty.home,则加上?