2014-12-07 68 views
0

对于所有HTTP请求(同步和异步),我希望我的Java servlet一致地向客户端返回JSON。通过这种方式,我可以将所有演示逻辑推送到客户端(html/css/js),并将HTML标记最小化。Java servlets在同步HTTP请求中返回JSON

我明白servlet如何处理Ajax请求。但我不确定返回JSON的最佳技术是什么,同步请求。所以我做了一个servlet如何在HTML中嵌入JSON的工作示例。

以下方法有缺点吗?这种方法如何改进?

  1. Servlet的JSON格式作为请求属性,它 届时可written to the HTML document by JSP保存数据。 JSON存储在HTML文档中的JavaScript变量 中。
  2. 发送给jsp(“forwarding to a view”)。
  3. 自定义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> 

回答

0

它是一个很长一段时间我都基于java servlet的工作,但我想,如果您将响应对象中的MIME类型设置为“application/json”,它应该可以工作。

我希望这篇文章对你有所帮助。

JSON response is returning as text