用Java创建简单的HTTP服务器最简单的方法是什么?commons中是否有任何库可以方便此操作?我只需对GET/POST
做出响应,且不能使用应用服务器。
实现这个的最简单方法是什么?
用Java创建简单的HTTP服务器最简单的方法是什么?commons中是否有任何库可以方便此操作?我只需对GET/POST
做出响应,且不能使用应用服务器。
实现这个的最简单方法是什么?
使用Jetty。这里是嵌入Jetty的官方示例。(这里是一个过时的教程。)
Jetty相当轻巧,但确实提供了servlet容器,这可能与您反对使用“应用服务器”的要求相矛盾。
您可以将Jetty服务器嵌入到您的应用程序中。Jetty允许嵌入式或servlet容器选项。
ServerSocket
(可能在端口80上)。ServerSocket
可用以继续监听并接受其他连接)。Content-Type
等)和HTML进行回复。最简单的是 Simple ,这里有一个教程,没有WEB-INF、Servlet API和依赖项。只需使用一个简单的轻量级HTTP服务器即可在单个JAR包中完成。
我很惊讶这个例子不在这里:
编辑 >> 上述链接无法访问。以下是POST示例摘录,后跟HTTP示例链接。
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
conn.bind(socket);
}
BasicHttpEntityEnclosingRequest request = new
BasicHttpEntityEnclosingRequest("POST",
"/servlets‐examples/servlet/RequestInfoExample");
request.setEntity(requestBodies[i]);
System.out.println(">> Request URI: " + request.getRequestLine().getUri());
httpexecutor.preProcess(request, httpproc, coreContext);
HttpResponse response = httpexecutor.execute(request, conn, coreContext);
httpexecutor.postProcess(response, httpproc, coreContext);
System.out.println("<< Response: " + response.getStatusLine());
System.out.println(EntityUtils.toString(response.getEntity()));
System.out.println("==============");
if (!connStrategy.keepAlive(response, coreContext)) {
conn.close();
} else {
System.out.println("Connection kept alive...");
}
http://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/
我之前写了一篇教程,讲解如何用Java编写一个简单的HTTP服务器。随着教程的进行,逐步解释代码的作用以及为什么要这样编写服务器。可能会有帮助。http://kcd.sytes.net/articles/simple_web_server.php