jetty使用说明

       Jetty 是一个用 Java 实现、开源、基于标准的,并且具有丰富功能的Http 服务器和Web 容器,可以免费的用于商业行为。Jetty这个项目成立于1995 年,现在已经有非常多的成功产品基于Jetty,比如Apache Geromino, JBoss, IBM Tivoli,Cisco SESM 等。Jetty 可以用来作为一个传统的Web 服务器,也可以作为一个动态的内容服务器,并且Jetty 可以非常容易的嵌入到Java 应用程序当中。

         在很多开源项目发布的时候都会用jetty来作为服务器,我们把它用来做 demo、开发、调试的服务器还是很不错的,下面简要介绍jetty的两种应用方式。

         项目目录结构如下:

直接上代码:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.webapp.WebAppContext;
import org.mortbay.xml.XmlConfiguration;
import org.xml.sax.SAXException;

public class JettyTest {

	public static void main(String[] args) throws Exception {
		startJettyMethodT();
	}

	public static void startJettyMethodT() 
              throws SAXException, IOException, FileNotFoundException, Exception {
		Server server = new Server();
		// 指定自定义的jetty.xml路径
		XmlConfiguration configuration = new XmlConfiguration(
                     new FileInputStream("e:/hadoopws/jettytest/WebRoot/etc/jetty.xml")); 
		configuration.configure(server);
		server.start();
	}

	public static void startJettyMethodO() {
		// 这个就是你的项目发布时候的名字
		String jetty_home = "jettytest";
		try {
			Server server = new Server();
			Connector connector = new SelectChannelConnector();
			connector.setPort(9991);
			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();
		}
	}
}

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">
				<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>  


调用页面:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值