トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Javaの応用:簡易ウェブサーバ

簡易ウェブサーバ

 概要

  • 実行したらポート80番でHTTPリクエストを待つウェブサーバ。すべてのリクエストに対して、同じページしか返さない。
  • JavaSE6からクラスライブラリに含められるようになったHttpServerクラスを用いた簡易ウェブサーバ。そのため、JavaSE5以前ではクラスライブラリを用意しないと動作しない。

 ソース

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package sample.appilication;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;

import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;

public class SimpleWebServer {
    public static void main(String[] arguments) throws IOException {
        HttpServer server = HttpServer.create(new InetSocketAddress(80), 0);
        server.createContext("/", new HelloHttpHandler());
        server.start();
    }
    private static class HelloHttpHandler implements HttpHandler {
        public void handle(HttpExchange exchange) throws IOException {
            StringBuilder sb = new StringBuilder();
            sb.append("<html>\n"+
                    "<head>\n"+
                    "<title>sampleWebServer</title>\n"+
                    "</head>\n"+
                    "<body>\n");
            for(int i=1;i<6;i++) {
                sb.append("<h"+i+">Hello</h"+i+">\n");
            }
            sb.append("</body>\n"+
                    "</html>\n");

            byte[] response = sb.toString().getBytes();
            exchange.sendResponseHeaders(200, response.length);
            OutputStream output = exchange.getResponseBody();
            output.write(response);
            output.close();
        }
    }
}

 参考サイト

SimpleWebServer.java test.html

最終更新時間:2007年07月02日 12時00分55秒