Java HTTP Server
今日、教えていただいたのですが、Sunの*1JavaSE6には Java HTTP Server という組み込みHTTPサーバAPIがあります。これは、spiパッケージがあることから、プラグイン可能なHTTPサーバAPIのインタフェースになっていると思われます。以前作ったローカル用ブックマークはこれを使うと楽そうですね。
APIリファレンス→Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle
試しに簡単な処理を書いてみました。ブラウザからhttp://localhost:8888/にアクセスすると、"welcome"と表示されます。
import java.io.*; import java.net.*; import com.sun.net.httpserver.*; public final class MyHttpd { private static class Handler implements HttpHandler { public void handle(HttpExchange t) throws IOException { String response = "welcome"; t.sendResponseHeaders(200, response.length()); OutputStream os = t.getResponseBody(); try { os.write(response.getBytes()); } finally { os.close(); } } } public static void main(String[] args) { try { InetSocketAddress port = new InetSocketAddress(8888); HttpServer server = HttpServer.create(port, 0); server.createContext("/", new Handler()); server.setExecutor(null); server.start(); } catch (IOException e) { e.printStackTrace(); } } }
*1:com.sunのサブパッケージなので。どういう扱いなのかは不明。