如何将数字数组从servlet发送到javascript
实际上,我希望服务器向客户机发送一个数字列表,并希望客户机在其机器上运行>javascript并将结果发送到服务器,服务器将验证>是否正确。我们怎么做?-请帮忙 这是jsp代码如何将数字数组从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
<%@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>