jquery - 在 Ajax 应用程序中将数据从 servlet 传递到 javascript 代码?

标签 jquery ajax jsp servlets

我有一个简单的 jsp/servlet 应用程序,我想向此应用程序添加 AJAX 功能。我使用 JQuery ,但使用什么 JavaScript 框架并不重要。这是我的代码:

<script type="text/javascript">

        function callbackFunction(data){
            $('#content').html(data);
        }
        $('document').ready(function(){

            $('#x').click(function() {
              $.post('/ajax_2/servlet',callbackFunction)

            });
        });
    </script>
    <body>
        <a href="#" id="x">Increase it</a>
        <div id="content"></div>

    </body>
</html>

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代码),但是如果我有一个复杂的结构,例如对象向量或像这样的事情,传输数据的最佳方式是什么? XML 文件、JSON 怎么样?是否有任何特殊 jsp/servlets 库可以将数据从 servlet 传输到 ajax 应用程序?如何在 callbackFunction 中解析这些数据?

最佳答案

最好的方法是使用 JSON 。有几个 Java 库可以将完整的 Java 对象转换为 JSON 字符串,反之亦然。可以在 Javascript 中以完全自然的方式访问更多 JSON,而无需以另一种格式来回转换/修改数据。

对于服务器端部分,我强烈建议选择Google Gson作为 JSON 序列化器。 Gson 是首选,因为它支持将复杂的 Javabean 和数组、集合和映射转换为 JSON,反之亦然,而无需编写一行代码。它甚至支持泛型。基本上您需要做的就是以下内容:

String json = new Gson().toJson(object);

检查user guide了解有关 Gson 强大功能的更多信息。

总而言之,服务器端的以下内容就足够了:

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));
}

关于jquery - 在 Ajax 应用程序中将数据从 servlet 传递到 javascript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2589047/

相关文章:

javascript - Select2 - 没有下拉的输入字段

java - 如何删除 URL 中的参数?

java - 如何从 JSP 页面加载 COM 对象?

javascript - 在整个网站上平滑滚动

jquery - 如何设置缓存: false in jQuery. get call

c# - 使用 HTML5 捕获签名并将其作为图像保存到数据库

javascript - JavaScript 中的“参数值”

javascript - 文件上传后 AJAX 不重定向到网页 - POST 方法

javascript - JQuery AJAX header 授权 POST

java - 是否可以在JSP中访问方法注释