有人知道如何在Java中创建HTTP服务器,但为web设置默认文件夹,然后从中加载文件吗?我想用com.sun.net.httpserver
类。
例如,我有一个名为abc的文件夹在我的java文件旁边。java文件在8080端口下运行HTTP服务器。如果我打开地址http://123.123.123.123:8080/
,我想看到文件夹abc的文件列表。文件夹abc中有一些文件。 image.jpg 。所以我想在我的浏览器地址打开图像文件,如http://123.123.123.123:8080/image.jpg
。这样我就可以从文件夹abc打开所有其他文件(还有子文件夹,子文件夹中的文件等)。
- 是否可以创建此HTTP服务器?
- 是否有可能在文件夹中运行PHP文件?
非常感谢您的回答。
为什么不使用嵌入式Jetty?我很肯定,有了它,你可以完成你所寻找的。如果您想在Jetty中执行PHP,请参阅http://docs.codehaus.org/display/JETTY/Jetty+and+PHP
创建服务器对象后,需要为希望用户用来获取文档的路径注册一些处理程序。
HttpServer server = HttpServer.create(new InetSocketAddress("localhost",8080));
HttpHandler myDocsHandler = new MyDocsHandler();
server.createContext("/abc", myDocsHandler);
没有内置的默认处理程序,因此您需要编写MyDocsHandler类来实现HttpHandler接口,以处理通过http://localhost:8080/abc进入服务器的任何请求。
处理程序需要一个handle方法,该方法接受一个HttpExchange参数,该参数可以访问请求数据和响应流。在这一点上,做该做的事是你的责任。因此,如果您希望实际文件位于硬盘驱动器上的/usr/local/abc,则处理程序需要使用标准file io打开请求的文件并将其流式传输回用户。