如何将数字数组从servlet发送到javascript

如何将数字数组从servlet发送到javascript,java,ajax,jsp,servlets,networking,Java,Ajax,Jsp,Servlets,Networking,实际上,我希望服务器向客户机发送一个数字列表,并希望客户机在其机器上运行>javascript并将结果发送到服务器,服务器将验证>是否正确。我们怎么做?-请帮忙 这是jsp代码 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" con

实际上,我希望服务器向客户机发送一个数字列表,并希望客户机在其机器上运行>javascript并将结果发送到服务器,服务器将验证>是否正确。我们怎么做?-请帮忙

这是jsp代码

 <%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
        <script>

    var list=[];

    function myFun() {
        alert("fun called");
        var obj = new XMLHttpRequest();
        var j=0;
        obj.open("POST", "NewServlet", true);
        obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        obj.onreadystatechange = function() {
            if(obj.readyState===4 && obj.status===200) {
                alert(obj.responseText);//alert("response received from server- "+obj.responseText);

                var str = obj.responseText;
                var arr = str.split("#");
                alert(arr);
                var j=0;
                for(var i=0; i<arr.length-1; i++) {
                    j+=parseInt(arr[i]);
                }
                alert(j);
                myFun1(j);
        }            
        };
         obj.send("type=first");
        //obj.send("sum="+j);

    }


    function myFun1(j) {

        var obj = new XMLHttpRequest();
        obj.open("POST", "NewServlet", true);
        obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

        obj.onreadystatechange = function() {
            if(obj.readyState===4 && obj.status===200) {
                alert("sum sent to server");
                }
            };


        obj.send("sum="+j+"&type=second");

    }
    </script>

</head>
<body>
    <h1>Hello World!</h1>


    <input type="submit" onclick="javascript:myFun()" value="click here to get list of Numbers" />

    <!--
    <form method="post" action="NewServlet">
        <input type="text" name="text1"><input type="submit" name="sub">
    </form>
    -->
</body>

JSP页面
var列表=[];
函数myFun(){
警觉(“趣味呼叫”);
var obj=新的XMLHttpRequest();
var j=0;
obj.open(“POST”,“NewServlet”,true);
obj.setRequestHeader(“内容类型”、“应用程序/x-www-form-urlencoded”);
obj.onreadystatechange=函数(){
如果(对象readyState==4&&obj.status==200){
警报(obj.responseText);//警报(“从服务器收到的响应-”+obj.responseText);
var str=obj.responseText;
var arr=str.split(“#”);
警报(arr);
var j=0;
对于(var i=0;i

在您的情况下,使用servlet是合适的。我认为唯一的障碍是将您的数字下放到视图中,因为您已经使用了AJAX。这样做您只需要从
processRequest
方法中的
response
参数中检索一个Writer。我会在servlet中使用JSON符号:
[1,2,4,56,78]
您只需将数组附加到responses Writer,客户端就会从其AJAX请求中接收到数组

当这个字符串到达客户端时,JavaScript会更喜欢它,因为可以使用
JSON.parse([1,2,4,56,78])


应该是这样的…

您需要为form.submit()编写代码在您的javascript中,以便将值返回到服务器。我不会使用servlet来编写html内容。为什么不使用jsp来代替呢?请研究使用AJAX进行页面和服务器通信。我使用AJAX实现了相同的功能,但在代码中,我将从servlet向jsp发送一个数字字符串,然后将总和发送到serv退一步..但是servlet无法接收sum变量,我已经更新了相同的代码..请检查一下
 <%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
        <script>

    var list=[];

    function myFun() {
        alert("fun called");
        var obj = new XMLHttpRequest();
        var j=0;
        obj.open("POST", "NewServlet", true);
        obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        obj.onreadystatechange = function() {
            if(obj.readyState===4 && obj.status===200) {
                alert(obj.responseText);//alert("response received from server- "+obj.responseText);

                var str = obj.responseText;
                var arr = str.split("#");
                alert(arr);
                var j=0;
                for(var i=0; i<arr.length-1; i++) {
                    j+=parseInt(arr[i]);
                }
                alert(j);
                myFun1(j);
        }            
        };
         obj.send("type=first");
        //obj.send("sum="+j);

    }


    function myFun1(j) {

        var obj = new XMLHttpRequest();
        obj.open("POST", "NewServlet", true);
        obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

        obj.onreadystatechange = function() {
            if(obj.readyState===4 && obj.status===200) {
                alert("sum sent to server");
                }
            };


        obj.send("sum="+j+"&type=second");

    }
    </script>

</head>
<body>
    <h1>Hello World!</h1>


    <input type="submit" onclick="javascript:myFun()" value="click here to get list of Numbers" />

    <!--
    <form method="post" action="NewServlet">
        <input type="text" name="text1"><input type="submit" name="sub">
    </form>
    -->
</body>