diff --git a/IDEA/src/main/java/com/example/api/utils/ResponseUtil.java b/IDEA/src/main/java/com/example/api/utils/ResponseUtil.java new file mode 100644 index 00000000..431caa60 --- /dev/null +++ b/IDEA/src/main/java/com/example/api/utils/ResponseUtil.java @@ -0,0 +1,44 @@ +package com.example.api.utils; + +import com.alibaba.fastjson.JSON; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +/** + * ResponseUtil 类提供向 HTTP 响应中写入 JSON 数据的工具方法。 + */ +public final class ResponseUtil { + + /** + * 向 HttpServletResponse 中写入 JSON 数据。 + * @param response HttpServletResponse 对象,用于设置响应头和写入响应体。 + * @param o 要写入响应体的对象,将被转换为 JSON 字符串。 + */ + public static void writeJson(HttpServletResponse response, Object o) { + // 设置跨域资源共享(CORS)相关的响应头,允许跨域请求 + response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Allow-Credentials", "true"); + response.setHeader("Access-Control-Allow-Methods", "POST, GET, PATCH, DELETE, PUT"); + response.setHeader("Access-Control-Max-Age", "3600"); + response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); + // 设置响应内容类型为 JSON 格式,并指定字符集为 utf-8 + response.setContentType("application/json;charset=utf-8"); + // 设置 HTTP 响应状态码为 200(OK) + response.setStatus(200); + try { + // 获取 PrintWriter 对象,用于向客户端写入数据 + PrintWriter writer = response.getWriter(); + // 将对象转换为 JSON 字符串 + writer.write(JSON.toJSONString(o)); + // 清空缓冲区,确保所有数据都写入输出流 + writer.flush(); + // 关闭 PrintWriter 对象 + writer.close(); + } catch (IOException e) { + // 如果发生 IO 异常,打印堆栈跟踪信息 + e.printStackTrace(); + } + } +}