对于嵌入式运行Jetty,可以通过简单的一些代码实现一个简单的文件服务器的功能,如下:
package com.google.code.garbagecan.jettystudy.sample3; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.DefaultHandler; import org.eclipse.jetty.server.handler.HandlerList; import org.eclipse.jetty.server.handler.ResourceHandler; public class FileServer { public static void main(String[] args) throws Exception { Server server = new Server(8080); ResourceHandler resourceHandler = new ResourceHandler(); resourceHandler.setDirectoriesListed(true); resourceHandler.setResourceBase("E:/share"); resourceHandler.setStylesheet(""); HandlerList handlers = new HandlerList(); handlers.setHandlers(new Handler[] { resourceHandler, new DefaultHandler() }); server.setHandler(handlers); server.start(); server.join(); } }
这里使用了Jetty自带的ResourceHandler类来处理所有的请求,这个类指定了资源路径,并且允许列出目录和文件,这里需要注意的是“resourceHandler.setStylesheet("");”,如果没有这一行代码的话,在请求资源的时候后台总是会不停的抛出NullPointerException。
运行FileServer类,访问http://localhost:8080/就可以看到“E:/share”下的所有文件和目录了。
上面是通过编码的方式实现了简单的文件服务器,其实Jetty也可以通过配置文件的方式实现文件服务器的功能,如下:
创建一个配置文件com/google/code/garbagecan/jettystudy/sample3/fileserver.xml,内容如下:
<?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> <Configure id="FileServer" class="org.eclipse.jetty.server.Server"> <Call name="addConnector"> <Arg> <New class="org.eclipse.jetty.server.nio.SelectChannelConnector"> <Set name="port">8080</Set> </New> </Arg> </Call> <Set name="handler"> <New class="org.eclipse.jetty.server.handler.HandlerList"> <Set name="handlers"> <Array type="org.eclipse.jetty.server.Handler"> <Item> <New class="org.eclipse.jetty.server.handler.ResourceHandler"> <Set name="directoriesListed">true</Set> <Set name="resourceBase">E:/share</Set> <Set name="stylesheet">.</Set> </New> </Item> <Item> <New class="org.eclipse.jetty.server.handler.DefaultHandler"> </New> </Item> </Array> </Set> </New> </Set> </Configure>
创建一个java类FileServerWithXml
package com.google.code.garbagecan.jettystudy.sample3; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.util.resource.Resource; import org.eclipse.jetty.xml.XmlConfiguration; public class FileServerWithXml { public static void main(String[] args) throws Exception { Resource resource = Resource.newClassPathResource("/com/google/code/garbagecan/jettystudy/sample3/fileserver.xml"); XmlConfiguration configuration = new XmlConfiguration(resource.getInputStream()); Server server = (Server) configuration.configure(); server.start(); server.join(); } }
运行FileServerWithXml类,访问http://localhost:8080/也可以看到“E:/share”下的所有文件和目录了。
相关推荐
以下是一个简单的示例代码片段,展示了如何创建一个监听8080端口的Server对象,设置一个默认Handler,并使用XML配置文件(如`jetty.xml`)初始化和启动服务器: ```java public class JettyServer { public static...
本实战项目旨在帮助初学者快速掌握Jetty的嵌入式使用方法,通过实例化和配置Jetty服务器,实现Web应用的快速启动和运行。 1. **Jetty简介** - Jetty是一个开源的HTTP服务器和Servlet容器,它遵循Java Servlet和JSR...
1. **部署应用**:讲解如何将WAR文件或自定义配置部署到Jetty服务器。 2. **性能调优**:提供性能监控和调优的策略,包括JMX工具的使用。 3. **热部署与自动重启**:了解如何实现代码变更后应用的热部署和自动重启...
使用Jetty部署Web应用程序非常简单,可以通过XML配置文件或代码动态配置。Jetty支持WAR包直接部署,也可以通过嵌入式方式在应用中启动。 5. **安全性** Jetty提供了安全模块,支持基本认证、摘要认证、SSL/TLS...
Android i-jetty开源项目是专为Android平台设计的一个轻量级HTTP服务器实现,其核心是嵌入式Jetty服务器。Jetty是一款广泛使用的Java Web服务器和Servlet容器,而Android i-jetty则是将Jetty的特性引入到Android应用...
3. **嵌入式Web服务器** - Spring Boot支持内嵌Tomcat、Jetty等Web服务器,无需额外部署,简化了开发流程。 4. **健康检查与Actuator** - Actuator提供了一组端点,用于监控和管理应用的健康状况、指标、日志等,...
2. 嵌入式服务器:Spring Boot支持内嵌Tomcat、Jetty等Web服务器,无需额外部署,简化了开发和测试流程。 3. 零配置:Spring Boot推崇“约定优于配置”的原则,很多配置都有默认值,极大地减少了繁杂的配置工作。 ...
2. **嵌入式Web服务器**:Spring Boot支持内嵌Tomcat、Jetty或Undertow等Web服务器,无需额外部署,简化了开发流程。 3. **健康检查与Actuator**:提供Actuator模块,用于监控和管理应用的运行状态,包括健康检查、...
3. **嵌入式Web服务器**:Spring Boot支持内嵌Tomcat或Jetty,允许开发者无需额外部署,直接运行主类启动应用,大大提高了开发效率。 4. **健康检查与Actuator**:Actuator是Spring Boot提供的监控和管理工具,用于...
SpringBoot通过默认配置、嵌入式Servlet容器(如Tomcat或Jetty)以及自动配置特性,使得开发者能够快速地构建独立运行的、生产级别的Java应用程序。 Netty则是一个高性能、异步事件驱动的网络应用框架,用于快速...
Tomcat是Apache软件基金会的一个项目,而Jetty则是一个更轻量级的选择,通常被用于嵌入式场景。 本书还涵盖了J2EE应用的架构模式,包括贫血模型(Thin Model),这是一种将业务逻辑层(BL)和数据访问层(DAL)分离...
3. **嵌入式Web服务器**:SpringBoot可以内嵌Tomcat或Jetty等Web服务器,无需额外部署步骤,大大简化了开发和测试流程。 4. **命令行接口(CLI)**:SpringBoot提供了一个强大的命令行工具,可以快速创建和运行...
2. **嵌入式Web服务器**:Spring Boot支持内嵌Tomcat、Jetty或Undertow,无需额外部署,即可直接运行jar包启动服务。 3. **自动配置(Auto Configuration)**:Spring Boot根据项目类路径下的jar包和配置文件,自动...
- **嵌入式Web服务器**:Spring Boot支持内嵌Tomcat、Jetty或Undertow,无需单独部署WAR文件,简化了开发流程。 - **自动配置**:Spring Boot会根据类路径中的存在项自动配置Bean,极大地减少了配置文件的数量和...
SpringBoot的核心特性包括自动配置、嵌入式Web服务器、起步依赖和命令行工具等。 二、SpringBoot的优势 1. 快速启动:通过“起步依赖”(Starter POMs)可以快速添加所需的依赖,避免了传统Spring项目中复杂的配置...
3. 嵌入式容器:Servlet3.0允许在没有web服务器的情况下运行应用,例如使用Jetty或Tomcat的嵌入式版本,简化了开发和测试流程。 4. pluggable deployment:不再强制依赖web.xml,可以使用自定义的部署描述符或者...
而嵌入式Web服务器如Tomcat或Jetty,让应用可以直接运行而不需额外部署到外部服务器。 其次,书中会涵盖Spring Boot的启动器(Starters)和配置。启动器是Spring Boot快速上手的关键,它们是预配置的Maven或Gradle...
### Spring Boot实战项目教程知识点概览 #### 一、Spring Boot简介 - **定义**:Spring Boot是由Pivotal团队提供的全新框架,其设计目标是简化新Spring应用的初始搭建以及开发过程。 - **特点**: - **独立运行**...
3. Jetty官方文档:学习Jetty服务器的配置和使用。 总的来说,手写Spring是一个深度学习和理解Spring框架的好方法。通过实际操作,我们可以更好地掌握Spring的内在机制,提升我们的开发技能。在实践中遇到问题时,...