如何在没有Spring、JavaEE等web框架的情况下使用Java创建HTTP API?
HTTP的基础相当简单。打开一个ServerSocket
,监听传入的请求。建立连接后,启动一个新线程并发送响应。可能看起来,
public static void main(String[] args) {
try {
ServerSocket ss = ServerSocketFactory.getDefault().createServerSocket(8080, 10);
StringBuilder body = new StringBuilder();
body.append("<html><body><h1>Hello, World!</h1></body></html>");
while (true) {
Socket s = ss.accept();
Thread t = new Thread(new HttpReply(s, body));
t.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
然后,要真正发送响应,您将从套接字
获得一个输出流
,然后写入所需的HTTP头和正文。喜欢
class HttpReply implements Runnable {
private Socket s;
private StringBuilder body;
private HttpReply(Socket s, StringBuilder body) {
this.s = s;
this.body = body;
}
public void run() {
try {
PrintStream ps = new PrintStream(s.getOutputStream());
ps.println("HTTP/1.1 200 OK");
ps.println("Date: Mon, 27 Jul 2009 12:28:53 GMT");
ps.println("Server: Java");
ps.println("Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT");
ps.println("Content-Length: " + body.length());
ps.println("Content-Type: text/html");
ps.println("Connection: Closed");
ps.println();
ps.println(body);
} catch (IOException e) {
e.printStackTrace();
}
}
}
这将监听端口8080
您的机器的请求,并回复一个基本的你好世界网页。
如何创建一个HTTP API使用Java没有任何Web框架,如Spring,JavaEE?
我正在玩grpc 有人成功使用进行生产吗?我们需要包括特使在内的所有依赖项吗?
问题内容: 我刚刚开始使用Python,我想知道如何在不需要框架的情况下对Web应用程序进行编程。我是一位经验丰富的PHP开发人员,但是我有尝试Python的冲动,而且我通常喜欢从头开始编写,而没有受到flask和django等框架的限制。 问题答案: WSGI是Web服务器接口的Python标准。如果要创建自己的框架或在没有框架的情况下运行,则应进行研究。特别是,我发现Ian Bicking的D
我正在尝试使用Poc为我们的项目创建一个侦探应用程序,以便使用Spring mvc(即没有Spring Boot)进行日志记录。我无法在网络上找到我的mvc文档/材料。 那么,如何创建Tracer、spanbean并注入记录器以进行日志记录呢?
< sub >(我已经知道了答案,但是因为我经常发现自己在重新寻找答案,所以我把它贴在这里作为自己和他人的文档。这是Stackoverflow上鼓励的。) 许多 Servlet 开发人员都读过《Head First Serlet》一书 在Servlet 2.4及更低版本中,web.xml用于完全配置Web应用程序。但是更高版本似乎有其他方法来配置Web应用程序,无需触及web.xml和注释。例如,
我正在遵循Oracle的教程在JavaFX中创建TableView。在这个截图中,我复制并粘贴了代码,发现了几个错误,教程中没有提到这些错误。 TableView上的警告显示: TableView是原始类型。对泛型类型TableView的引用 表列上的警告说: 表列是一个原始类型。对泛型类型TableCol列的引用 addAll方法上的警告是: 类型安全:方法addAll(Object…)属于原始