我希望当用户想要显示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();
}
}
}
消息。
答案 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 {... }