zoukankan      html  css  js  c++  java
  • XMLHttpRequest前后交互

    js内部代码:

    //定义json数据

    var userjson={
    u_name : in_value
    };

    //将userjson转字符串

    var json=JSON.stringify(userjson);

    //定义XMLHttpRequest对象
    var myajax=new XMLHttpRequest();

    //打开连接 请求方式  路径  异步或同步
    myajax.open("post","../Test",true);

    //设置请求头
    myajax.setRequestHeader('content-type', 'application/json');

    //发送数据
    myajax.send(json);

    servlet服务器端处理,用的gson:

    //利用流的方式进行读取请求

    BufferedReader reader = request.getReader();
    StringBuffer sb =new StringBuffer();
    String line=null;
    while((line=reader.readLine())!=null) {
    sb.append(line);
    }

    //创建gson对象
    Gson gson =new Gson();

    //将数据与类绑定,或者将字符串进行截取用map集合添加
    Uit fromJson = gson.fromJson(sb.toString(), Uit.class);

    //显示数据

    System.out.println(fromJson.getU_name());

    servlet服务器用json写回前端

    Map<String, String> map=new HashMap<String, String>();
    map.put("name", "zhangsan1");

    //将map转化为json字符串
    String json = gson.toJson(map);
    System.out.println(json);

    //写回
    response.getWriter().print(json);

    js读取servlet写回的数据:

    onload:响应完成

    myajax.onload=function (){

    //将字符串转为json对象
    var json=eval("("+myajax.responseText+")");

    //显示
    alert(json.name);

    注意:

    遇到多层的需要一层一层转,最后只剩一层才能点

    数据:

    {"key0":{"d_id":-1,"d_name":"","d_tel":-1,"d_massage":"","d_up":-1}}

    代码:

    myajax.onload=function (){  
    var obj=eval("("+myajax.responseText+")");

    //拨开了第一层
    var json=eval("("+JSON.stringify(obj.key0)+")");
    alert(json.d_id);
    }

    复杂点的:

    {"key1":{"d_id":2345,"d_name":"cc","d_tel":1111,"d_massage":"无","d_up":0},"key2":{"d_id":23455,"d_name":"bb","d_tel":23456,"d_massage":"无","d_up":0},"key0":{"d_id":1234,"d_name":"aa","d_tel":123456,"d_massage":"无","d_up":0}}

    var obj=eval("("+myajax.responseText+")");
    for(var i in obj){
    var json=eval("("+JSON.stringify(obj[i])+")");

    alert(json.d_id);

    数组的话[]可以直接用eval转化不需要加()

  • 相关阅读:
    maven 项目 spring mvc + jdbc 配置文件
    (BUG已修改,最优化)安卓ListView异步加载网络图片与缓存软引用图片,线程池,只加载当前屏之说明
    listview图片错位
    Android在线更新 远程安装程序
    Android中Socket大文件断点上传
    如何用JAVA生成注册序列号
    php学习随记3
    Chrome改动浏览器User Agent
    andoid电阻触摸移植
    【有奖征资源,分享有内涵】贡献你的CSDN博文和下载资源,不断更新中
  • 原文地址:https://www.cnblogs.com/2393920029-qq/p/12246685.html
Copyright © 2011-2022 走看看