Ajax是进行网站请求的一种技术,属于js的内容,被jQuery发展;Ajax:异步JavaScript 和XML,可以在不重载整个网页的情况下,Ajax通过后台加载数据,并在网页上进行显示。
普通的请求方式:
浏览器发出请求,经过servlet处理后再通过转发或者重定向的方式返回个客户端,客户端需要重新加载/重新渲染页面;
Ajax的方式:
浏览器通过XmlHttpRequest对象发起请求,servlet只需要返回数据内容,不需要返回html页面,客户端通过Ajax对象接收返回的数据,通过js将数据显示到页面上,整个网页不需要重新加载。
异步:
客户端发出请求之后可以继续其他的操作,不需要等待服务器响应;
同步:
客户端发出请求之后必须等服务器响应之后才能继续操作。
普通请求:
①地址栏通过url发送普通请求;
②通过超链接发送普通请求;
③通过表单提交普通请求;
普通请求的响应内容:
服务器返回的是完整的html页面,所以浏览器需要重新加载整个页面,页面会刷新;
普通请求是同步处理方式,一个时间点,只能做一个处理。
Ajax请求(异步请求):
发送方式:
通过js对象XmlHttpRequest对象发起Ajax异步请求,可以发送post/get请求;
请求的响应内容:
浏览器对Ajax请求只需要返回数据内容,不需要返回html页面,客户端通过Ajax对象接收服务器返回的数据,用js的方式,将数据呈现到页面上;
Ajax请求是异步处理方式,同一时间段内,可以作多个处理;
Ajax请求是页面局部刷新。
- var xhr;
- function getTime(){
- //创建Ajax对象
- xhr = new XMLHttpRequest();
- //设置状态变化的回调函数
- xhr.onreadystatechange = function (){
- if(xhr.readyState==4&&xhr.status == 200){
- var myDiv = document.getElementById("mydiv")
- myDiv.innerHTML = xhr.responseText;
- }
- }
- //设置发送方式和请求地址 URL
- xhr.open("GET","${pageContext.request.contextPath}/AjaxServlet");
- //发送请求
- xhr.send();
- }
| 取值 | 说明 |
| 0 | 未初始化状态,此时创建了XMLHttpRequest对象但没有初始化 |
| 1 | 准备发送状态,此时已经调用了XmlHttpRequest对象的open()方法,已经准备好将Http请求发送到服务器端 |
| 2 | 已经发送状态,已经通过XmlHttpRequest对象的send()方法将请求发送到服务器端,但是没有收到响应 |
| 3 | 正在接收状态,此时已经接收到Http响应的头部信息,但是消息体部分还没有完全接收到 |
| 4 | 完全响应状态,此时已经完成了HttpResponse响应的接收 |
json是一种数据交换格式,采用 键值对 的文本格式来存储和表示数据,在系统交换数据的过程中常常被使用,是一种理想的数据交换语言。
- //js对象:
- var stu = {
- name : "张三",
- sex : "男",
- id : 1001
- }
- //json对象
- var stu = {
- "name" : "张三",
- "sex" : "男",
- "id" : 1001
- }
- //Json对象的字符串
- var stu2 = '{"name":"张三","sex":"男"}';
- //json字符串转为json对象
- var stu3 = JSON.parse(stu2);
- //json对象转json字符串
- var str = JSON.stringify(stu3)
fastjson,GSON,jackson,导入相应的jar包。
- Map map = new HashMap();
- map.put("id",1000);
- map.put("name","张三");
- map.put("sex","男");
-
- System.out.println(map);
- //Json字符串
- System.out.println(JSONObject.toJSONString(map));
- //json对象
- JSONObject jsonArray = new JSONObject(map);
- System.out.println(jsonArray.get("id"));

- $("#btn1").click(function (){
- $.get(
- "${pageContext.request.contextPath}/AjaxServlet",
- {name:"张三",sex:"男"},
- function (res) {
- console.log(res);
- var str = "姓名:"+res.name+" 性别:"+res.sex+" 学号:"+res.id;
- $("#mydiv").append("
"
+str+""); - },
- "json"
- );
- })

- $("#btn2").click(function (){
- $.post(
- "${pageContext.request.contextPath}/AjaxServlet",
- {name:"张三",sex:"男"},
- function (res) {
- console.log(res);
- var str = "姓名:"+res.name+" 性别:"+res.sex+" 学号:"+res.id;
- $("#mydiv").append("
"
+str+""); - },
- "json"
- );
- })

- $("#btn3").click(function (){
- $.ajax({
- url:"${pageContext.request.contextPath}/AjaxServlet",
- data:{},
- type:"post",
- dataType:"json",
- success:function (res){
- var str = "姓名:"+res.name+" 性别:"+res.sex+" 学号:"+res.id;
- $("#mydiv").append("
1"
+str+"") - },
- error:function (xhr,msg) {
- alert(msg);
- console.log(xhr)
- }
- })
- })