【发布时间】:2015-02-04 23:48:26
【问题描述】:
对于所有 HTTP 请求(同步和异步),我希望我的 Java servlet 将 JSON 一致地返回到客户端。通过这种方式,我可以将我所有的表示逻辑推送到客户端(html/css/js)并最小化我的 HTML 上的 JSP 标签。
我了解 servlet 如何处理 Ajax 请求。但我不确定在 同步 请求中返回 JSON 的最佳技术是什么。所以我做了一个 servlet 如何在 HTML 中嵌入 JSON 的工作示例。
以下方法有缺点吗?如何改进这种方法?
- Servlet 将 JSON 格式的数据保存为请求属性, 然后将是written to the HTML document by JSP。 JSON存储在 HTML 文档上的 JavaScript 变量。
- 分派到 jsp (“forwarding to a view”)。
- 自定义 JavaScript 从 HTML 文档中嵌入的 JSON 中获取数据并显示出来。
工作示例
Servlet(在 doGet 方法体中)
req.setAttribute("json", gson.toJson(article));
RequestDispatcher view = req.getRequestDispatcher("/WEB-INF/show.jsp");
view.forward(req, resp);
JSP
<script>
var json = ${json};
alert(JSON.stringify(json));
</script>
【问题讨论】: