将对象从servlet传递到客户端(javascript)

时间:2014-12-06 00:07:06

标签: java javascript json jsp servlets

我想知道将数据从servlet传递到js代码的最佳方法是什么。 我想到的唯一解决方案是将对象序列化为json字符串,然后将其作为请求属性传递给jsp页面,然后以js代码获取并反序列化。

有没有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:3)

您可以在JSP语法中的<script>标记中生成JSON对象,因此您可以使用内联javascript浏览器在页面加载时反序列化,而无需获取请求属性。它将类似于JSP页面中的以下内容。

...
<script>
<% 
out.println("myJSONObj = " + myJSONObject.toString()) 
%>
//other javascript stuff...
console.log(myJSONObj.key1);
</script>
...

所以你在浏览器上渲染输出/读取就像是(实际的JSON对象将取决于你序列化的内容 - 当然放入你的JSONObject):

...
<script>
myJSONObj = {key1:value1,array1:[val1,val2,val3]};
//other javascript stuff...
console.log(myJSONObj.key1);
</script>
...

另一个选择是使用AJAX简单地从servlet返回JSON字符串并接收返回类型为JSON(如果使用jquery ajax,则使用xhr响应中的JSON.parse(...))。