Servlet获取ajax数组

Posted Don1911

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet获取ajax数组相关的知识,希望对你有一定的参考价值。

首先使用setInterval()函数每隔10秒调用函数,以改动“最新价格”,原数据如下:

1、ajax发送请求,并发送数组数据:  

var url="test/goldPriceProcess.action";
var data="city=ld&city=tw&city=dj";  //json数组
myXmlHttpRequest.open("post",url,true);
myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
myXmlHttpRequest.onreadystatechange=manage;
myXmlHttpRequest.send(data);

2、Servlet接收数据,处理后返回json数组数据:

String[] cities = request.getParameterValues("city");  
PrintWriter out = response.getWriter();
StringBuilder sb = new StringBuilder();
sb.append("["); 
Random ran = new Random();
for(int i=0; i<cities.length; i++){
    if(i==cities.length-1){
        sb.append("{\\""+cities[i]+"\\":"+(ran.nextInt(1000)+500)+"}]");
    }else{
        sb.append("{\\""+cities[i]+"\\":"+(ran.nextInt(1000)+500)+"},");
    }
}
out.println(sb.toString());    //如[{"ld":1459},{"tw":1392},{"dj":864}]  

3、ajax处理返回的数据:

function manage(){
        if(myXmlHttpRequest.readyState==4 && myXmlHttpRequest.status==200){
            //得到json对象
            var res_obj=eval("("+myXmlHttpRequest.responseText+")");
            for(var i in res_obj){
                var res=res_obj[i];
                for(var key in res){
                    $(key).innerText=res[key];   //替换“最新价格”
                }
            }
        }
    }

最终效果如下:

table的内容如下:

<table border=1 >
    <tr><td>市场</td><td>最新价格$</td><td>价格涨跌</td></tr>
    <tr><td>伦敦</td><td id="ld">788.7</td><td><img src="/pic/down.jpg" />211.3</td></tr>
    <tr><td>台湾</td><td id="tw">854.0</td><td><img src="/pic/down.jpg" />146.0</td></tr>
    <tr><td>东京</td><td id="dj">1791.0</td><td><img src="/pic/up.jpg" />791.0</td></tr>
</table>

以上是关于Servlet获取ajax数组的主要内容,如果未能解决你的问题,请参考以下文章

ajax怎样从后台获取数据进行局部刷新

Ajax 将带有两个数组的 JSON 对象发送到一个 servlet 并在没有 jQuery 的情况下在 java servlet 中解析

jsp中,用ajax获取数据

使用 Ajax 从 Servlet 中的 doGet 获取参数

jQuery Ajax传值给Servlet,在Servlet里接受参数乱码的解决方法

从 servlet 获取数据到 JSP 并通过 ajax 再次将该数据发送到另一个 servlet