将数据从servlet传递到Ajax应用程序中的javascript代码?
我有一个简单的jsp / servlet应用程序,我想为这个应用程序添加AJAXfunction。 我使用JQuery,但我使用的javascript框架并不重要。 这是我的代码:
function callbackFunction(data){ $('#content').html(data); } $('document').ready(function(){ $('#x').click(function() { $.post('/ajax_2/servlet',callbackFunction) }); }); Increase it
Servlet的
HttpSession session = request.getSession(); Integer myInteger = (Integer)session.getAttribute("myInteger"); if(myInteger == null) myInteger = new Integer(0); else myInteger = new Integer(myInteger+1); session.setAttribute("myInteger", myInteger); response.getWriter().println(myInteger);
问题:
我使用out.print将数据从servlet传输到javascript代码(ajax代码),但如果我有一个复杂的结构,如对象的Vector或类似的东西,那么传输数据的最佳方法是什么? 怎么样的XML文件, JSON ? 是否有任何特殊的 jsp / servlets库将数据从servlet传输到ajax应用程序? 如何在callbackFunction中解析这些数据?
最好的方法是使用JSON 。 有几个Java库可以将完全可用的Java对象转换为JSON字符串,反之亦然。 可以通过Javascript以完全自然的方式访问JSON,而无需以其他格式转换/按摩数据。
至于服务器端部分,我强烈建议选择Google Gson作为JSON序列化程序。 Gson是首选,因为它支持将复杂的Javabeans和数组,集合和映射转换为JSON,反之亦然,而不需要在一行代码中轻松完成。 它甚至支持generics。 基本上你需要做的就是以下几点:
String json = new Gson().toJson(object);
查看用户指南以了解有关Gsonfunction的更多信息。
总而言之,服务器端的以下内容就足够了:
public static void writeJson(HttpServletResponse response, Object object) throws IOException { response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); response.getWriter().write(new Gson().toJson(object)); }
- AJAX请求后重复滚动到顶部
- 如何在asp.net Ajax更新pannel中使AsyncPostback之后的JQuery masked-input插件工作?
- 仅在Firefox中的JQuery AJAXexception:“节点无法插入层次结构中的指定点”(HierarchyRequestError)
- 设置请求标头jQuery Ajax
- $ .get的jquery是异步的吗?
- 在长ajax查询上更新进度条的模式
- Symfony2,Twig JSON模板与json_encode:这种情况的正确性
- 如何修改PHP / Jquery / Ajax脚本以使多个表单字段为posst
- 我可以将图像表单数据传递给PHP函数进行上传吗?