Ajax入门-实现局部刷新
一.Ajax简介
- Ajax是一种用于创建快速动态网页的技术
- Ajax可以使网页实现异步更新
二.Ajax实现局部刷新(jQuery)
-
引入jQuery包
1
<script type = "text/javascript" src="..."></script>
-
登录按钮
1
<input type="button" value="登录" id="login">
-
js脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24<script type="text/javascript">
$("#login").click(function() {
// 单击登录按钮时触发ajax事件
$.ajax({
url: "<%=basePath%>/loginServlet",
type: "post",
data: {
username: $("input[name=username]").val(),
password: $ {
"input[name=password]"
}.val()
},
dataType: "json", // 指明Servlet给Ajax返回数据的数据格式
success: function(result) {
var flag = result.flag;
if (flag == true) {
// 登陆成功跳转页面
} else {
$(".tip").text("您输入的用户名或密码不正确");
}
}
})
})
</script> -
Servlet
1
2
3
4
5// 登录失败,则给ajax返回数据(要导入json的jar包)
JSONObject jsonObject = new JSONObject("{flag:false}");
// JSONObject(String source) - org.json.JSONObject
response.getOutputStream().write(jsonObject.toString().getBytes("utf-8"));
三.Ajax实现局部刷新(JavaScript)
-
点击按钮
1
2
3<input type="button" value="查看java课程" flag="1" onclick="showJava()">
<input type="button" value="查看C课程" flag="2" onclick="showC()">
<div style="width:400px,height:300px" id="div1"></div> -
JS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16function showJava() {
// 1.创建一个xmlhttpRequest对象
var xmlhttp = new XMLHttpRequest();
// 2.规定请求的类型,URL及是否异步处理请求
xmlhttp.open("GET", "<%=basePath%>/ListCourseServlet?flag=1", true);
// 这里的路径和WebServlet匹配,要加basepath
// 3.将请求发送到服务器
xmlhttp.send();
// 4.接收服务器端的响应(readyState=4表示已完成响应 status=200表示请求一切正常)
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
// responseText:表示的是服务器返回ajax的数据
document.getElementById("div1").innerHTML = xmlhttp.responseText;
}
}
} -
Servlet类
1
2
3
4
5
6
7
8
9
10
11
12
13// 1.获取ajax传递过来的参数信息
String flag = request.getParameter("flag");
// 2.需要返回的数据信息
String data="";
if("1".equals(flag)){
data = "Java从入门到放弃";
}else if("2".equals(flag)){
data="C语言入门到放弃";
}
// 3.将数据信息回写给ajax
response.getOutputStream().write(data.getBytes("utf-8"));
四.关于JSONObject
-
append方法
append 方法添加的是key , 每一个key对应的是一个json数组。
即,append(key,value) 会把 value 包装成一个数组
-
accumulate方法
添加一个key,对应一个值
1
2
3
4JSONObject jsonObject4 = new JSONObject();
// 添加键值对
jsonObject4.accumulate("flag1",flag1);
jsonObject4.accumulate("flag2",flag2); -
put方法(略)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 515code-实验室!
评论