Jetty实战(3)之嵌入式简单文件服务器
来源:互联网 发布:java中的 invoke 编辑:程序博客网 时间:2024/05/18 02:37
对于嵌入式运行Jetty,可以通过简单的一些代码实现一个简单的文件服务器的功能,如下:这里使用了Jetty自带的ResourceHandler类来处理所有的请求,这个类指定了资源路径,并且允许列出目录和文件,这里需要注意的是“resourceHandler.setStylesheet("");”,如果没有这一行代码的话,在请求资源的时候后台总是会不停的抛出NullPointerException。创建一个java类FileServerWithXml运行FileServerWithXml类,访问http://localhost:8080/也可以看到“E:/share”下的所有文件和目录了。
- 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();
- }
- }
运行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>
- 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();
- }
- }
0 0
- Jetty实战(3)之嵌入式简单文件服务器
- Jetty实战之 嵌入式运行Jetty实现简单文件服务器
- Jetty实战之 嵌入式运行Jetty实现简单文件服务器
- Jetty实战之 嵌入式运行Jetty实现简单文件服务器
- Jetty实战之 嵌入式运行Jetty实现简单文件服务器
- Jetty实战之 嵌入式运行Jetty
- Jetty实战之 嵌入式Jetty运行Servlet
- Jetty实战之 嵌入式Jetty运行Servlet
- Jetty实战之 嵌入式Jetty运行Servlet
- Jetty实战之 嵌入式运行Jetty
- Jetty实战之 嵌入式Jetty运行Servlet
- Jetty实战之 嵌入式Jetty运行Servlet
- Jetty实战之 嵌入式Jetty运行Servlet
- Jetty实战之 嵌入式运行Jetty
- Jetty实战之 嵌入式Jetty运行Servlet
- Jetty实战(1)之嵌入式运行Jetty
- Jetty实战之 嵌入式Jetty运行Servlet
- Jetty实战之 嵌入式运行Jetty多Connector
- ICA
- python学习日志3
- 电信手机数据连接的那些问题
- 【matlab】从图片中截取矩形区域(手工选取/标记在原图上/截取矩形区域并保存)
- 响应式设计之媒体查询一
- Jetty实战(3)之嵌入式简单文件服务器
- Arm汇编 位置无关代码 adr 指令
- 公用Foot和友情链接模块代码模板
- caffe的python接口学习(8):caffemodel中的参数及特征的抽取
- Html学习笔记(3)
- View 常见的两种布局方式
- 网站站长必备的六款网页负载、网速性能测试工具
- Ubuntu下安装nvidia显卡驱动
- 深圳靠谱网站建设公司有哪些特征?