`

Jetty的简单使用示例

阅读更多
package cn.com.songjy.jetty;

import java.io.BufferedInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.NCSARequestLog;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.ContextHandlerCollection;
import org.mortbay.jetty.handler.DefaultHandler;
import org.mortbay.jetty.handler.HandlerCollection;
import org.mortbay.jetty.handler.RequestLogHandler;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.webapp.WebAppContext;
import org.mortbay.xml.XmlConfiguration;
import org.xml.sax.SAXException;

public class JettyDemo {

	private static final Log log = LogFactory.getLog(JettyDemo.class);

	private static final Properties config = new Properties();

	static {
		BufferedInputStream bufferedInputStream = null;
		try {
			bufferedInputStream = new BufferedInputStream(JettyDemo.class
					.getClassLoader().getResourceAsStream("jetty.properties"));
			
			config.load(bufferedInputStream);
			
		} catch (IOException e) {
			log.error(e.getMessage(), e);
		} finally {
			try {
				if(null != bufferedInputStream)
					bufferedInputStream.close();
			} catch (IOException e) {
				log.error(e.getMessage(), e);
			}
		}
	}

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

	public static void start_jetty() throws SAXException, IOException,
			FileNotFoundException, Exception {

		Server server = new Server();

		// 指定自定义的jetty.xml路径
		XmlConfiguration configuration = new XmlConfiguration(Server.class
				.getClassLoader().getResourceAsStream(
						config.getProperty("jetty.xml")));
		configuration.configure(server);

		server.start();
	}

	public static void jetty_start() {

		try {

			String jetty_home = "demo";// 这个就是你的项目发布时候的名字
			
			//用户访问记录
			HandlerCollection handlers = new HandlerCollection();
			ContextHandlerCollection contexts = new ContextHandlerCollection();
			RequestLogHandler requestLogHandler = new RequestLogHandler();
			handlers.setHandlers(new Handler[]{contexts,new DefaultHandler(),requestLogHandler});
			 
			NCSARequestLog requestLog = new NCSARequestLog("./target/jetty-yyyy_mm_dd.request.log");
			requestLog.setRetainDays(90);
			requestLog.setAppend(true);
			requestLog.setExtended(false);
			requestLog.setLogTimeZone("GMT");
			requestLogHandler.setRequestLog(requestLog);

			Server server = new Server();

			Connector connector = new SelectChannelConnector();
			connector
					.setPort(Integer.parseInt(config.getProperty("jetty.port")));

			server.setConnectors(new Connector[] { connector });

			WebAppContext webapp = new WebAppContext();
			webapp.setContextPath("/" + jetty_home);// 上下文路径 比如说/demo

			// webapp.setResourceBase("./WebRoot");// 你的资源文件所在的路径 一般都在这下面
			webapp.setResourceBase(config.getProperty("resourceBase"));

			// webapp.setDefaultsDescriptor("./WebRoot/etc/webdefault.xml");
			webapp.setDefaultsDescriptor(config.getProperty("webdefault.xml"));

			server.setHandler(webapp);
			
			server.addHandler(handlers);
			
			server.start();
			server.join();

		} catch (InterruptedException e) {
			log.error(e.getMessage(), e);
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		}
	}
}


项目结构图


主要代码来自:jetty的使用,在其基础上增加用户访问记录的代码

相关阅读:
Jetty Documentation
实站Jetty
Jetty 的工作原理以及与 Tomcat 的比较
jetty嵌入式配置总结
  • 描述: 项目结构图
  • 大小: 28.8 KB
  • jettydemo.zip (11.8 KB)
  • 描述: 完整代码(Maven项目)
  • 下载次数: 323
分享到:
评论

相关推荐

    gradle的jetty插件使用例子

    以下是一个简单的`build.gradle`示例: ```groovy plugins { id 'java' id 'war' id 'org.gradle.jetty.jetty-runner' version '9.4.38.v20210224' } dependencies { implementation 'javax.servlet:servlet-...

    jetty整合springmvc例子

    【标题】:“Jetty整合SpringMVC例子” 在Java Web开发中,Jetty是一个轻量级、高性能的HTTP服务器和Servlet容器,而SpringMVC是Spring框架的一部分,用于构建MVC模式的Web应用。将Jetty与SpringMVC整合可以实现...

    jetty 例子, 就一个demo 还有jar

    这个压缩包文件提供的可能是一个简单的Jetty使用示例,帮助初学者理解如何在Eclipse环境中配置和运行Jetty。 首先,让我们深入了解一下Jetty。Jetty是开源的,由Eclipse基金会维护,符合Java Servlet和JSP规范。它...

    Android-I-Jetty服务器部署例子代码

    下面是一个简单的示例代码,展示了如何在Android应用中启动Jetty服务器并加载`example-webapps`目录中的内容: ```java import org.eclipse.jetty.server.Server; import org.eclipse.jetty.webapp.WebAppContext; ...

    jetty各个版本下载

    下载后的Jetty压缩包,如`jetty-hightide-7.0.1.v20091125`,通常包含服务器运行所需的全部文件,包括Jetty服务器本身、配置文件、示例和文档。解压后,你可以根据提供的启动脚本来启动Jetty服务。 5. **配置与...

    基于jetty8 websocket的例子

    在本文中,我们将深入探讨如何使用Jetty 8实现WebSocket技术来构建一个实时通信的聊天工具。WebSocket协议是一种在客户端和服务器之间建立长连接的协议,它为双向通信提供了低延迟、高效的解决方案,特别适合实时...

    实战 Jetty--让你快速速学会jetty

    以下是一个简单的示例代码片段,展示了如何创建一个监听8080端口的Server对象,设置一个默认Handler,并使用XML配置文件(如`jetty.xml`)初始化和启动服务器: ```java public class JettyServer { public static...

    jetty 6 指南书

    - **jetty.xml示例剖析**:展示了如何通过XML配置Jetty的各种设置。 - **Jetty XML Configuration语法**:讲解XML配置文件的语法规则。 - **org.mortbay.xml.XmlConfiguration**:介绍使用该类来读取和应用XML...

    Jetty Demo

    在这个简单的Jetty入门示例中,你可能会学到如何创建一个简单的Servlet,如何处理HTTP GET和POST请求,以及如何通过Jetty API或配置文件来启动和停止服务器。此外,还会涉及如何使用Jetty的嵌入式模式,即直接在应用...

    maven集成jetty所需jar包maven-jetty-plugin,多版本

    - 使用旧版本的`maven-jetty-plugin`可能会导致某些新特性无法使用或与其他库冲突,因此保持插件更新是很重要的。 6. 结论: `maven-jetty-plugin`简化了Java Web应用的开发和测试过程,通过Maven的命令行即可...

    struts2+maven+jetty 示例

    在开发阶段,使用Jetty可以实现快速的迭代和调试,因为它可以直接运行在开发环境中,无需部署到专门的服务器上。 **Struts2 + Maven + Jetty 实例** 在Java Webapp开发中,结合Struts2、Maven和Jetty,可以实现高效...

    Jetty内嵌服务器实例

    7. **myJettyDemo**:这是一个可能的项目或演示文件,包含了一个内嵌Jetty服务器的示例。通过对这个文件的分析和运行,可以直观地学习到如何在实际项目中应用内嵌Jetty。 在实际操作中,你可能需要做以下步骤: 1....

    Android-I-Jetty服务器

    以下是一个简单的示例: ```java import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; public class ...

    应用服务器jetty8.0

    10. **社区支持**:Jetty有一个活跃的开源社区,提供了丰富的文档、示例和问题解答,有助于开发者快速解决问题。 在提供的压缩包中,"read-Me.text"可能包含了关于如何安装和使用Jetty 8.0的说明,包括配置、启动和...

    jetty嵌入项目实战

    本实战项目旨在帮助初学者快速掌握Jetty的嵌入式使用方法,通过实例化和配置Jetty服务器,实现Web应用的快速启动和运行。 1. **Jetty简介** - Jetty是一个开源的HTTP服务器和Servlet容器,它遵循Java Servlet和JSR...

    Jetty

    文档《Jetty6_指南书》可能包含了Jetty 6版本的详细使用教程、配置示例和常见问题解答。虽然Jetty已经发展到了更高版本,但早期版本的学习资料依然有价值,特别是对于理解Jetty的基础概念和核心原理。 总结来说,...

    用jetty8.0写的websocket实现的简单聊天程序

    在这个“用jetty8.0写的websocket实现的简单聊天程序”中,我们将深入探讨如何利用Jetty 8.0这个轻量级、高性能的Java Web服务器和Servlet容器来构建WebSocket应用。 Jetty是一个开源的HTTP服务器和Servlet容器,...

    eclipse中配置使用jetty调试web项目

    一个简单的例子如下: ```xml <groupId>org.mortbay.jetty <artifactId>maven-jetty-plugin <version>6.1.26 <scanIntervalSeconds>10 <contextPath>/your-context-path ``` 这段配置将...

    Jetty权威指南.pdf

    安装Jetty非常简单,只需要解压下载的压缩包即可。对于Windows用户,还可以选择使用Jetty的安装程序进行安装。 **2.3 使用java命令启动** - **2.3.1 快速启动**:可以通过执行`java -jar start.jar`来快速启动...

Global site tag (gtag.js) - Google Analytics