jetty的施用
jetty的使用jetty的使用?之前都用tomcat的童鞋是不是觉得tomcat很方便啊?但是还有个更方便的web服务器叫je
jetty的使用
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代码??

- <?xml?version="1.0"?>????
- <!DOCTYPE?Configure?PUBLIC?"-//Mort?Bay?Consulting//DTD?Configure//EN"?"http://jetty.mortbay.org/configure.dtd">????
- <Configure?id="Server"?class="org.mortbay.jetty.Server">????
- ????<Set?name="ThreadPool">????
- ??????<New?class="org.mortbay.thread.QueuedThreadPool">????
- ????????<Set?name="minThreads">10</Set>????
- ????????<Set?name="maxThreads">200</Set>????
- ????????<Set?name="lowThreads">20</Set>????
- ????????<Set?name="SpawnOrShrinkAt">2</Set>????
- ??????</New>????
- ????</Set>????
- ????<Call?name="addConnector">????
- ??????<Arg>????
- ??????????<New?class="org.mortbay.jetty.nio.SelectChannelConnector">????
- ???????????<!--你的IP-->????
- ????????????<Set?name="host"><SystemProperty?name="jetty.host"?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"?class="org.mortbay.jetty.handler.HandlerCollection">????
- ????????<Set?name="handlers">????
- ?????????<Array?type="org.mortbay.jetty.Handler">????
- ???????????<Item>????
- ?????????????<New?id="RequestLog"?class="org.mortbay.jetty.handler.RequestLogHandler"/>????
- ???????????</Item>????
- ???????<Item>????
- ???????????<New?class="org.mortbay.jetty.webapp.WebAppContext">??????
- ??????????????<Set?name="contextPath">/jettytest</Set>??????
- ??????????????????????????<Set?name="war">./WebRoot</Set>??<!--你的web应用根目录-->????
- ?????????????????</New>??????
- ??????????</Item>????
- ?????????</Array>????
- ????????</Set>????
- ??????</New>????
- ????</Set>????
- ????<Ref?id="RequestLog">????
- ??????<Set?name="requestLog">????
- ????????<New?id="RequestLogImpl"?class="org.mortbay.jetty.NCSARequestLog">????
- ??????????<Set?name="filename"><SystemProperty?name="jetty.logs"???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先来:
Java代码??

- 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:
?
Java代码??

- 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,则加上?
-Djetty.home=D:/devworkspace/jetty-6.1.11?
?
- jettytest.rar?(5.6 MB)
- 下载次数: 152