在HttpServer处理程序中使用if语句

时间:2014-08-12 18:49:57

标签: java httphandler httpserver

我希望当用户想要显示http://localhost:8000/a I am A response消息时(并正确显示)

但我希望在使用时{} {}显示http://localhost:8000/b消息。

如何在I am B response中使用if语句?

httpServer handler

它只显示public class httpServerTest { public static void main(String[] args) throws Exception { HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0); server.createContext("/a", new MyHandler()); server.createContext("/b", new MyHandler()); server.setExecutor(null); // creates a default executor server.start(); } public static class MyHandler implements HttpHandler { @Override public void handle(HttpExchange t) throws IOException { // How use if here? String aResponse = "I am A response"; String bResponse = "I am B response"; t.sendResponseHeaders(200, aResponse.getBytes().length); OutputStream os = t.getResponseBody(); os.write(aResponse.getBytes()); os.close(); } } } 消息。

2 个答案:

答案 0 :(得分:1)

HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("/a", new MyHandler("A"));
server.createContext("/b", new MyHandler("B"));

public static class MyHandler implements HttpHandler {

    private String identity;

    public MyHandler(String identity) {
        this.identity = identity;
    }

    @Override
    public void handle(HttpExchange t) throws IOException { // How use if here?
        String response = "I am " + identity + " response";
        t.sendResponseHeaders(200, response.getBytes().length);
        OutputStream os = t.getResponseBody();
        os.write(response.getBytes());
        os.close();
    }
}

答案 1 :(得分:0)

看起来您正在引用com.sun.*私有类,因此将来可能无法运行。话虽如此,看起来你想要getRequestURI

然后你可以说if (t.getRequestURI().getPath().startsWith("/a")) { ... } else {... }

相关问题