`

Jetty实战之 嵌入式运行Jetty实现简单文件服务器

阅读更多

转载链接:http://blog.csdn.net/kongxx/article/details/7224423

对于嵌入式运行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”下的所有文件和目录了。

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

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

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

    jetty嵌入项目实战

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

    Jetty 学习资料汇总

    1. **部署应用**:讲解如何将WAR文件或自定义配置部署到Jetty服务器。 2. **性能调优**:提供性能监控和调优的策略,包括JMX工具的使用。 3. **热部署与自动重启**:了解如何实现代码变更后应用的热部署和自动重启...

    Android i-jetty开源项目.rar

    Android i-jetty开源项目是专为Android平台设计的一个轻量级HTTP服务器实现,其核心是嵌入式Jetty服务器。Jetty是一款广泛使用的Java Web服务器和Servlet容器,而Android i-jetty则是将Jetty的特性引入到Android应用...

    apache-jetty

    - **服务器**:Jetty服务器是整个框架的基础,负责管理组件和处理请求。 - **连接器**:连接器处理客户端的连接,如HTTP/HTTPS,并将请求转发给服务器。 - **Handler**:处理器负责处理请求和响应,可以是基本的...

    《SpringBoot实战》PDF

    2. **嵌入式Web服务器**:Spring Boot支持内嵌Tomcat、Jetty或Undertow等Web服务器,无需额外部署,简化了开发流程。 3. **健康检查与Actuator**:提供Actuator模块,用于监控和管理应用的运行状态,包括健康检查、...

    Spring Boot实战派(源码)

    - Spring Boot支持内嵌Tomcat、Jetty等Web服务器,无需额外部署,简化了开发流程。 4. **健康检查与Actuator** - Actuator提供了一组端点,用于监控和管理应用的健康状况、指标、日志等,是微服务治理的重要组件...

    课设毕设springboot毕业设计成绩管理系统的设计与实现-LW+源码可运行.zip

    2. **嵌入式Web服务器**:SpringBoot可以内嵌Tomcat或Jetty等Web服务器,使得部署更加简单。 3. **微服务架构**:SpringBoot适合构建独立的、小型的服务,方便实现微服务架构。 4. **starter依赖**:SpringBoot的...

    手写spring资料.zip

    三、Jetty服务器配置 Jetty是一款轻量级、高性能的嵌入式HTTP服务器,常被用于开发和测试环境中。在Spring应用中,我们可以直接将Jetty作为服务器,快速启动并运行我们的应用程序。了解Jetty的基本配置,包括端口...

    SpringBoot 整合 Netty 实战

    SpringBoot通过默认配置、嵌入式Servlet容器(如Tomcat或Jetty)以及自动配置特性,使得开发者能够快速地构建独立运行的、生产级别的Java应用程序。 Netty则是一个高性能、异步事件驱动的网络应用框架,用于快速...

    轻量级J2EE企业应用实战

    传统上,J2EE通常依赖于EJB(Enterprise JavaBeans)作为服务器端逻辑的实现方式,这使得应用的部署和运行成本高昂,开发和学习曲线陡峭。然而,随着时间的推移和开源框架的发展,轻量级J2EE应用成为了一种更受欢迎...

    springboot实战,javaee巅覆者

    3. **嵌入式Web服务器**:SpringBoot可以内嵌Tomcat或Jetty等Web服务器,无需额外部署步骤,大大简化了开发和测试流程。 4. **命令行接口(CLI)**:SpringBoot提供了一个强大的命令行工具,可以快速创建和运行...

    SpringBoot实战(第4版) 中文版

    3. **嵌入式Web服务器**:Spring Boot支持内嵌Tomcat或Jetty,允许开发者无需额外部署,直接运行主类启动应用,大大提高了开发效率。 4. **健康检查与Actuator**:Actuator是Spring Boot提供的监控和管理工具,用于...

    spring-boot实战PDF 完整版和随书源码.7z

    2. 嵌入式服务器:Spring Boot支持内嵌Tomcat、Jetty等Web服务器,无需额外部署,简化了开发和测试流程。 3. 零配置:Spring Boot推崇“约定优于配置”的原则,很多配置都有默认值,极大地减少了繁杂的配置工作。 ...

    SpringBoot实战

    2. **嵌入式Web服务器**:Spring Boot支持内嵌Tomcat、Jetty或Undertow,无需额外部署,即可直接运行jar包启动服务。 3. **自动配置(Auto Configuration)**:Spring Boot根据项目类路径下的jar包和配置文件,自动...

    springboot 实战项目教程.txt

    - **独立运行**:无需部署WAR包到Tomcat等容器中,内置Tomcat、Jetty或Undertow作为容器。 - **自动配置**:基于类路径中的条件来自动配置Bean。 - **简化依赖管理**:提供一个初始依赖设置,避免版本冲突。 - *...

    Spring Boot项目开发实战教程.zip

    嵌入式Web服务器如Tomcat或Jetty,让应用可以直接运行而不需额外部署到外部服务器。 接下来,你会学习如何创建一个基本的Spring Boot项目。通常,这需要使用Spring Initializr来初始化项目,选择所需的依赖并生成...

    基于SpringBoot的福聚苑社区团购项目实战(源码+说明+演示视频).zip

    SpringBoot的核心特性包括自动配置、嵌入式Web服务器、起步依赖和命令行工具等。 二、SpringBoot的优势 1. 快速启动:通过“起步依赖”(Starter POMs)可以快速添加所需的依赖,避免了传统Spring项目中复杂的配置...

    跟我学Shiro第13章Demo(RememberMe)

    Apache Shiro是一款强大的Java安全框架...同时,它也展示了如何在Jetty服务器上运行和测试Shiro应用。对于Java开发者来说,掌握这些知识将有助于提升你在安全领域的技能,使你能更好地为用户提供安全且便捷的登录体验。

    SpringBoot实战(第4版)清晰版

    而嵌入式Web服务器如Tomcat或Jetty,让应用可以直接运行而不需额外部署到外部服务器。 其次,书中会涵盖Spring Boot的启动器(Starters)和配置。启动器是Spring Boot快速上手的关键,它们是预配置的Maven或Gradle...

Global site tag (gtag.js) - Google Analytics