• ajax,json


    Ajax操作

    创建XMLHttpRequest对象

    var xt = null;
      //第一步得到ajax引擎对象
      if(window.XMLHttpRequest){//根据浏览器的版本来创建ajax对象
    xt = new XMLHttpRequest();//新版本的创建方式
      }else{
    xt = new ActiveXObject("Microsoft.XMLHTTP"); //老版本的创建方式
      }

    将状态触发器绑定到一个函数

     //第二步 绑定监听
      xt.onreadystatechange = call;//这里给力一个回调函数

    使用open方法建立与服务器的连接

     //第三步 绑定地址
      xt.open("GET","/AjaxTest/AjaxServlet?name=Colin",true);
        //第一个参数指的是请求方式  第二个参数指得是路径 第三个参数指的是不是异步true    false同步
      xt.open("POST","/AjaxTest/AjaxServlet",true);
        post请求方式
    xt.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        还需要多添加一个请求头
        含义是表示客户端提交给服务器文本内容的编码方式 是URL编码

    向服务器端发送数据

    get请求方式
    xt.send();
        
    
    post请求方式
    xt.send("username="+name);

    在回调函数中对返回数据进行处理

       //创建一个回调函数
    没有判断状态前
          function call(){
         var text =  xt.responseText;
         alert(text);
          }
    状态判断依据
        // HTTP状态编码 【200_服务器响应正常;400_错误请求【例如:语法请求】;403_没有访问权限;404_访问资源不存在;500_服务器内部错误】
        //5 XMLHttpRequest对象的属性readystate响应状态码有5中 【0_XMLHttpRequest没有完成初始化;1_XMLHttpRequest对象开始发送请求; 2_XMLHttpRequest对象请求发送完成;3_XMLHttpRequest对象开始读取响应;4_XMLHttpRequest对象读取响应结束】
    判断状态后
          function call(){
          if(xt.readyState ==4 && xt.status == 200){
         var text =  xt.responseText;
         alert(text);
          }
          }

    代码示例

     <input type="button"   value="get请求" onclick="test()"></button>
      <script>
          var xt = null;
          var a = 0;
        function test() {
    
            if (window.XMLHttpRequest){
                xt = new XMLHttpRequest();
    
    
            } else {
                xt = new ActiveXObject("Microsoft.XMHTTP");
            }
    
            ////5 XMLHttpRequest对象的属性readystate响应状态码有5中
            // 【0_XMLHttpRequest没有完成初始化;
            // 1_XMLHttpRequest对象开始发送请求;
            // 2_XMLHttpRequest对象请求发送完成;
            // 3_XMLHttpRequest对象开始读取响应;
            // 4_XMLHttpRequest对象读取响应结束】
            // 状态的改变触发onreadystatechange方法
    
            xt.onreadystatechange = call;
    
            xt.open("GET","/upload?name=zym",true)
            xt.send()
    
    
        }
    
        function call() {
          if(xt.readyState==4&xt.status==200){
              //加上这个判断条件一定可以取到值
              var responseText = xt.responseText;
              // console.log(responseText);
              alert( +responseText)
          }
    
        }
    
    
    
    
      </script>

    json

    导入jar包

    commons-beanutils.jar提供对java反射的包
    commons-collections.jar集合类扩展包
    commons-lang.jar增强工具包
    commons-logging.jar提供了对日志实现的包装
    ezmorph-1.0.4.jar
    json-lib-2.2.2-jdk15.jar

    把pserson对象转成json串

    public static String objectToJson(Person p){
    String str = null;
    JSONObject jo = JSONObject.fromObject(p);
    str = jo.toString();//转成字符串
    return str;
    }

    将json串转换成对象

    public static Person jsonToPerson(String str){
    //先把字符串转换成json串
    JSONObject object = JSONObject.fromObject(str);
    //在将json串转成person对象  toBean();
    Person p = (Person) JSONObject.toBean(object,Person.class);
    return p;
    }

    将集合转换成json数组

    public static String listToJson(List<Person> li){
    String str = null;
    JSONArray ja = JSONArray.fromObject(li);
    str = ja.toString();
    return str;
    }

    将json数组转换成集合

    public static List<Person> jsonToList(String str){
    List<Person> list = new ArrayList<Person>();//得到一个新的集合对象
    JSONArray ja = JSONArray.fromObject(str);//现将字符串转换成jsonarray
    JSONObject jo = null;
    for (int i = 0; i < ja.size(); i++) {//遍历JSONArray
    jo = ja.getJSONObject(i);//在JSONArray中得到每一个JSONObject
    list.add((Person) JSONObject.toBean(jo,Person.class));//在将每一个JSONObject扎UN转换成对象添加到集合中
    }
    return list;
    }

    将json数组转换成数组

    public static Person[] jsonToArray(String str){
    JSONArray ja = JSONArray.fromObject(str);
    Person[] p  = (Person[]) JSONArray.toArray(ja, Person.class);
    return p;
    }

    将map集合转换成json串

    public static String mapToJson(Map<Integer,Person> m){
    return JSONArray.fromObject(m).toString();
    }

     

  • 相关阅读:
    Jquery练手 DEMO 全选 取消 反选 复选框 的实现
    ValidateTemplate(Label lb2, boolean iflag) {
    Android中更新UI的三种方式
    Doodle Android图片涂鸦,具有撤消、缩放、移动、添加文字,贴图等功能。还是一个功能强大,可自定义和可扩展的涂鸦框架、多功能画板。
    怎么用 javascript 实现拖拽
    System.Attribute 类的使用
    javascript 操作Cookie
    导航全局滑动JavaScript
    Sql server DATEADD() 函数
    类序列化
  • 原文地址:https://www.cnblogs.com/taozizainali/p/11105506.html
Copyright © 2020-2023  润新知