【问题标题】:get json array from servlet using ajax使用ajax从servlet获取json数组
【发布时间】:2013-09-13 17:45:02
【问题描述】:

我必须在我的 servlet 中创建 json 数组。

我想获取 json 数组值并使用 ajax 打印到 jsp 页面。

下面是代码

JSONArray  htags = new JSONArray();
        htags.add("#abc");
        htags.add("#xyz");
        htags.add("#emc");
        htags.add("#netapp");


        //top trends
        JSONArray trends = new JSONArray();
        trends.add("pass");
        trends.add("horiz");
        trends.add("software");
        trends.add("banana");

jsp

我在这里收到错误消息。

$.ajax({

            url : "SerlvetToJsp",
            dataType : 'json',
            error : function() {

                alert("Error");
            },
            success : function(data) {
                alert(data);

            }
    });

【问题讨论】:

  • 错误信息是什么?
  • 出现“错误”对话框。在我的 servlet 中,我只写了上面的代码。请帮忙
  • 你是如何传回结果的?你能添加你的JSP代码吗...
  • 您的浏览器控制台在说什么??
  • 网址似乎不正确,您在 firebug 或任何控制台上看到了什么?

标签: java jquery ajax json jsp


【解决方案1】:

看,如果你想将它从 servlet 传递给 jsp,你不需要创建 request (ajax),因为 servlet 和 jsp 都存在于服务器端。你只需将该 json 数组设置为请求属性或会话属性,并在 jsp 中获取并显示(带循环)。没有那里需要 ajax。

如果需要同步调用获取数据:

在小服务程序中

   PrintWriter out = response.getWriter();
   out.println(htags);

我不会用另一个完整的例子来混淆 SO,请参阅这个 SO 帖子:How to send JSON array from server to client, i.e. (java to AJAX/Javascript)?

【讨论】:

  • 我根据要求必须使用 ajax。你能解释一下怎么做吗?
【解决方案2】:

试试这个

servlet 代码

JSONArray  htags = new JSONArray();
        htags.add("#abc");
        htags.add("#xyz");
        htags.add("#emc");
        htags.add("#netapp");


        //top trends
        JSONArray trends = new JSONArray();
        trends.add("pass");
        trends.add("horiz");
        trends.add("software");
        trends.add("banana");
response.setContentType("application/json"); 
response.setCharacterEncoding("utf-8"); 
String jsons = "["+htags+","+trends+"]"; //Put both objects in an array of 2 elements
out.print(jsons);

在你的jsp页面上

$.ajax({

            url : "SerlvetToJsp",
            dataType : 'json',
            contentType:"application/json",
            error : function() {

                alert("Error");
            },
            success : function(data) {
                var data1=data[0],
                var data2=data[2],
               alert(data1[0]);

            }
    });

【讨论】:

    【解决方案3】:

    Servlet 可以使用它向客户端发送 json 数组或 json 对象。

    JSONArray jsonArray = [{:}, {:}];
    
    response.getWriter.write(jsonArray.toString());
    

    在JSP页面中,该方法调用请求JSON到Servlet,并通过匿名函数(JSON.parse用于将字符串转换为json对象或json数组)方法捕获json数组或json对象。

    $("button").click(function(){
      $.get("ServletToJSP",function(data,status){
        alert("Data: " + JSON.parse(data) + "\nStatus: " + status);
      });
    });
    

    【讨论】:

      【解决方案4】:

      在 servlet 中:

      String uri = request.getRequestURI();
              if (uri.equalsIgnoreCase(uri)) {
                          response.setContentType("application/json");
                          /*   get the json array      */
                          response.getWriter().write(array.toJSONString());
                      }
      

      jquery:

          $('#buttonid').on('click', function() {
                 var url="your url";
              $.ajax({
                      type : 'POST',
                      url : url,
                      data : null,
                      error : function(xhr, status, error) {
                          alert("error");
                      },
                      success : function(data) {
                          alert("success");
                          $.each(data, function(key, val) {
                          console.log(val);
                      }
                  });
          });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-02
        • 1970-01-01
        • 2015-07-04
        • 1970-01-01
        • 2017-09-22
        • 1970-01-01
        • 2011-11-03
        • 2016-05-17
        相关资源
        最近更新 更多