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();
}

 

猜你喜欢

转载自www.cnblogs.com/taozizainali/p/11105506.html