0

誰もJavaでHTTPサーバーを作成する方法を知っていますが、Webのデフォルトフォルダーを設定し、そこからファイルをロードしますか? com.sun.net.httpserverクラスを使いたい。

たとえば、Java ファイルの横にabcという名前のフォルダーがあります。java ファイルは、ポート 8080 で HTTP サーバーを実行します。また、アドレスを開くと、フォルダーabchttp://123.123.123.123:8080/からファイルのリストを表示したいと考えています。フォルダー abc には、いくつかのファイルがあります。画像.jpg . だから私はブラウザのアドレスで画像ファイルを開きたい. このようにして、フォルダーabcから他のすべてのファイル(サブフォルダー、サブフォルダー内のファイルなど) を開くことができます。http://123.123.123.123:8080/image.jpg

  1. この HTTP サーバーを作成することは可能ですか?
  2. フォルダー内の PHP ファイルを実行することは何とか可能でしょうか?

回答ありがとうございます。

4

2 に答える 2

2

組み込みの Jetty を使用しないのはなぜですか? それを使えば、あなたが探しているものを達成できると確信しています。Jetty 内から PHP を実行する場合は、http://docs.codehaus.org/display/JETTY/Jetty+and+PHP を参照してください

于 2013-01-06T10:50:12.493 に答える
1

サーバー オブジェクトを作成したら、ユーザーがドキュメントを取得するために使用するパスのハンドラーをいくつか登録する必要があります。

HttpServer server = HttpServer.create(new InetSocketAddress("localhost",8080));
HttpHandler myDocsHandler = new MyDocsHandler();
server.createContext("/abc", myDocsHandler);

デフォルトのハンドラーは組み込まれていないため、 http://localhost:8080/abcでサーバーに着信するすべての要求を処理するために、 HttpHandlerインターフェースを実装するMyDocsHandlerクラスを作成する必要があります。

ハンドラーには、要求データと応答ストリームへのアクセスを提供するHttpExchange引数を取る単一のハンドルメソッドが必要です。この時点で、必要なことを行うのはあなたの責任です。したがって、実際のファイルをハード ドライバーの/usr/local/abcに配置したい場合、ハンドラーは標準ファイル io を使用して要求されたファイルを開き、それをユーザーにストリーミングする必要があります。

于 2013-01-06T15:17:59.270 に答える