servlet 中响应 json 数据的最佳实践
经典 servlet 做法:
- 将普通实体直接作为响应字符串输出。
- 前端需要手动将字符串解析为 json。
改良版本:
- 构造一个 json 字符串,包含实体键值对。
- 前端无需手动解析,但依旧需要自己编写 json 解析逻辑。
然而,可以使用以下库在 servlet 中实现快速便捷的 json 响应:
- jackson
- gson
- fastjson
示例(使用 jackson):
import com.fasterxml.jackson.databind.ObjectMapper;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setHeader("Content-Type", "application/json");
ObjectMapper mapper = new ObjectMapper();
String id = request.getParameter("id");
if (id != null) {
Page resultPage = pageService.getById(Integer.valueOf(id));
String json = mapper.writeValueAsString(resultPage); // 将实体转换为 JSON
PrintWriter writer = response.getWriter();
writer.print(json);
writer.flush();
writer.close();
}
}前端接收:
无需手动解析,可以使用 javascript 的 json.parse() 方法直接将响应转换为 json 对象。










