Java http服务器和web文件夹


Java http server and web folder

有人知道如何在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打开所有其他文件(还有子文件夹,子文件夹中的文件等)。

  1. 是否可以创建此HTTP服务器?
  2. 是否有可能在文件夹中运行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打开请求的文件并将其流式传输回用户。