无框架简易Java服务器后端

news/2025/2/27 18:20:48/

不使用像 Spring Boot 这样的框架,使用 Java 内置的HttpServer(从 Java 1.7 开始引入)来创建一个简单的 Web 后端,处理xxxx/test/query接口,接收 JSON 请求体并返回字符串响应。

示例代码:

java">import com.google.gson.Gson;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.HttpURLConnection;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;public class SimpleWebServer {public static void main(String[] args) throws IOException {HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);server.createContext("/test/query", new QueryHandler());server.setExecutor(null);server.start();System.out.println("Server started on port 8080");}static class QueryHandler implements HttpHandler {@Overridepublic void handle(HttpExchange exchange) throws IOException {if ("POST".equals(exchange.getRequestMethod())) {// 读取请求体BufferedReader reader = new BufferedReader(new InputStreamReader(exchange.getRequestBody(), StandardCharsets.UTF_8));StringBuilder requestBody = new StringBuilder();String line;while ((line = reader.readLine()) != null) {requestBody.append(line);}reader.close();// 这里可以对请求体进行处理,比如解析JSON数据// 目前只是简单打印请求体System.out.println("Received request body: " + requestBody.toString());// 构造响应String response = "这是接口的响应字符串";exchange.sendResponseHeaders(HttpURLConnection.HTTP_OK, response.length());OutputStream outputStream = exchange.getResponseBody();outputStream.write(response.getBytes(StandardCharsets.UTF_8));outputStream.close();} else {// 处理非POST请求exchange.sendResponseHeaders(HttpURLConnection.HTTP_METHOD_NOT_ALLOWED, 0);}}}
}

代码中:

  1. 主类SimpleWebServer启动一个 HTTP 服务器,监听在本地的 8080 端口。
  2. QueryHandler类实现了HttpHandler接口,处理/xxxx/test/query路径的请求。
  3. 当接收到 POST 请求时,读取请求体内容,目前只是简单打印请求体内容,然后构造一个字符串响应返回给客户端。
  4. 如果接收到的不是 POST 请求,则返回HTTP_METHOD_NOT_ALLOWED状态码。

上述代码使用了com.sun.net.httpserver包,这是 Java 内部的 API,在一些环境中可能有限制。另外,代码中使用了 Google 的 Gson 库来处理 JSON,需要在项目中引入 Gson 库。


http://www.ppmy.cn/news/1575299.html

相关文章

Amazon Outposts:构建混合云的安全堡垒,让数据安全“零距离”

在数字化转型的浪潮中,企业纷纷拥抱混合云架构以兼顾敏捷性与本地化需求。然而,如何确保数据在本地与云端的无缝流转中始终安全可控,成为企业面临的核心挑战。Amazon Outposts 作为AWS推出的混合云解决方案,不仅将原生AWS服务延伸…

【mysql中mvcc的含义和作用及原理】

MySQL中的MVCC(多版本并发控制)是一种用于提高数据库并发性能的机制,通过维护数据的多个版本,实现读写操作的无锁并发。以下是其核心要点: 1. MVCC的含义 全称:Multi-Version Concurrency Control&#xf…

几种AI模型在算法工作中的使用测评——Grok3,Deepseek,Chatgpt,Kimi,Claude(持续更新)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Grok3二、Deepseek-R1三、Chatgpt-4o四、Kimi五、Claude-3.5总结 前言 在工作中现在已经离不开这AI模型了。 于是我单开一个博客,记录在使用过…

跟着李沐老师学习深度学习(十四)

注意力机制(Attention) 引入 心理学角度 动物需要在复杂环境下有效关注值得注意的点心理学框架:人类根据随意线索和不随意线索选择注意力 注意力机制 之前所涉及到的卷积、全连接、池化层都只考虑不随意线索而注意力机制则显示的考虑随意…

04基于vs2022的c语言笔记——数据类型

目录 前言 4.数据类型 4-1数据类型初识 4-2数据类型之整型 4-3 sizeof的应用 4-4unsigned的应用 4-5实型/浮点型 4-6字符型 4-7转义字符 4-8字符串初识 4-9-1 输入之 整数的输入 提示: 本节代码部分 1.scanf的基本用法介绍 2.两个变量的输入 3.输…

Linux网络安全

Linux网络安全一直是IT行业中备受关注的话题,而红帽作为Linux操作系统的知名发行版,在网络安全领域也扮演着重要的角色。红帽公司一直致力于为用户提供安全可靠的Linux解决方案,以帮助用户建立强大的网络安全防护体系。 首先 红帽操作系统本…

DeepSeek等LLM对网络安全行业的影响

大家好,我是AI拉呱,一个专注于人工智领域与网络安全方面的博主,现任资深算法研究员一职,兼职硕士研究生导师;热爱机器学习和深度学习算法应用,深耕大语言模型微调、量化、私域部署。曾获多次获得AI竞赛大奖,拥有多项发明专利和学术论文。对于AI算法有自己独特见解和经验…

一文讲解Redis中的数据一致性问题

一文讲解Redis中的数据一致性问题 在技术派实战项目中,我们采用的是先写 MySQL,再删除 Redis 的方式来保证缓存和数据库的数据一致性。 我举例说明一下。 对于第一次查询,请求 B 查询到的缓存数据是 10,但 MySQL 被请求 A 更新为…