繁体   English   中英

如何区分JavaScript中的servlet响应?

[英]How to differentiate between servlet responses in javascript?

在我的网站中,我正在使用ajax将信息发布到Java servlet,并使用以下javascript代码读取响应:

            $.ajax({
            url : 'myfirstservlet',
            async: false,
            data : {
                       //send info..
                   },

            success : function(responseText) {

                //receive response..
            }
        });

在我的servlet中,我返回了多个响应。 例如:

    String response1 = "response1";
    int response2 = "5";
    out.println(response1);
    out.println(response2);

那么,如何获取这两个不同响应的值并将它们放在单独的javascript变量中?

例如

$var response1 = ['response1'];
$var response2 = ['response2'];

谢谢 :)

如果响应outout则输出为

response1
5

一种更好的方法是创建一个JSON对象而不是纯文本。

{
    "res1":"response1",
    "res2":"5"
}

您要在单个响应中使用两个不同的数据进行响应。 根据HTTP,您不能有两个响应。

您可以通过使用Json或适当地对数据定界来实现。

  • 如果此响应是简单的字符串,则请使用delimation方法如果该字符串甚至在远端可能包含逗号,则不要使用','作为修饰符。 可以使用具有多个carractor的Delimator。 '#Delem#'
  • 如果数据很复杂,即带有凝集和构成的对象结构,则使用JSON。

我认为我们对此过于复杂。

HTTP中不存在对请求的多个响应。 客户端发出请求,服务器发送回响应。 您显示的代码不会发送多个响应。 它发送一个仅包含2条有趣数据的响应。

由于您使用的是println ,因此根据定义,您的输出是行分隔的。 因此,在您的客户端代码中,在CRLF上拆分响应。

var parts = response.split(/\r?\n/);
var part1 = parts[0];
var part2 = parts[1];

如果您要传输的数据如此简单并且不太可能增长,那很好。 如果您想要更可扩展的解决方案,我建议使用JSON。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM