我希望在我的Java Swing应用程序中嵌入一个非常轻便的HTTP服务器,该服务器仅接受请求,执行一些操作并返回结果。
我可以在应用程序中使用一个非常轻便的Java类,该类在指定端口上侦听HTTP请求并让我处理请求吗?
请注意,我并不是在寻找独立的HTTP服务器,而只是在应用程序中可以使用的一个小型Java类。
从Java
6开始,JDK包含一个简单的HTTP服务器实现。
用法示例:
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.concurrent.Executors;
import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
public class HttpServerDemo {
public static void main(String[] args) throws IOException {
InetSocketAddress addr = new InetSocketAddress(8080);
HttpServer server = HttpServer.create(addr, 0);
server.createContext("/", new MyHandler());
server.setExecutor(Executors.newCachedThreadPool());
server.start();
System.out.println("Server is listening on port 8080" );
}
}
class MyHandler implements HttpHandler {
public void handle(HttpExchange exchange) throws IOException {
String requestMethod = exchange.getRequestMethod();
if (requestMethod.equalsIgnoreCase("GET")) {
Headers responseHeaders = exchange.getResponseHeaders();
responseHeaders.set("Content-Type", "text/plain");
exchange.sendResponseHeaders(200, 0);
OutputStream responseBody = exchange.getResponseBody();
Headers requestHeaders = exchange.getRequestHeaders();
Set<String> keySet = requestHeaders.keySet();
Iterator<String> iter = keySet.iterator();
while (iter.hasNext()) {
String key = iter.next();
List values = requestHeaders.get(key);
String s = key + " = " + values.toString() + "\n";
responseBody.write(s.getBytes());
}
responseBody.close();
}
}
}
或者,您可以将Jetty用于此目的。它非常轻巧,非常适合此目的。
我有一个很大的swing应用程序,我想把javafx嵌入其中。我多次尝试这样做(通过遵循oracle教程等),但只有在声明一个新的JFrame以使用JFXPanel组件时才成功。但是,我不想使用新的框架,我想将我的Javafx代码合并到swing应用程序的根JFrame中。 我们可以将javaFX组件嵌入到JPanel而不是JFrame中吗?如果答案是肯定的,为什么我没有成功?
但是所有的答案和评论对链接帖子的回应也没有太大帮助
我制作了一个非常基本的web应用程序,它只有一个html页面。我把它当作战争输出。 现在我创建了一个嵌入式jetty服务器。 } 我为这个嵌入式服务器创建了一个jar。但是当我试图通过嵌入式服务器运行我的web应用程序时,我得到以下错误。 C:\users\user>Java-jar C:\users\user\desktop\jetty\webserver.jar null 我使用过jetty
我想用Java创建一个非常简单的HTTP服务器应用程序。 例如,如果我在localhost端口8080上运行服务器,并且从浏览器发出以下调用,我希望获得一个带有字符串“hello world!”的Json数组: 我希望在服务器中有类似这样的东西(非常抽象的代码): 我想这个函数实际上不应该“返回”json,而是使用某种HTTP响应处理程序或类似的东西发送它... 最简单的方法是什么,而不需要熟悉许
我是编码和Java的新手,我已经创建了一个简单的客户端-服务器程序,客户端可以请求一个文件。它的内容将显示在浏览器页面中,还有一些细节,如数据类型和长度。我现在有一个问题,我不确定如何在浏览器中显示正确连接的服务器响应,如“HTTP/1.1 200 OK”和关闭的连接,如“Connection: close”。我有一个处理响应的方法,如下所示: 对我如何做到这一点有什么建议吗?非常感谢。
问题内容: 嗨:我想将i-jetty集成到Android应用程序中,而不要反过来。之前有人包括i-jetty并使其能够在Android 2.1或2.2下运行吗? 问题答案: 对于那些仍然希望这样做的人,我成功地将I-Jetty集成到了我的应用程序中。 所以基本上我要做的是下载i- jetty源代码并将其作为Eclipse中的Maven项目导入。然后,我在父pom.xml中添加了一个模块,该模块指向