|
|
|
@ -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();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|