7.1 异步请求和同步请求
ajax简单的说就是
1.使用JavaScript发起一个http请求
2.请求返回之前,不影响页面使用,不需要等待返回,这就是异步的意义
3.根据返回的结果,修改页面的内容、样式,或者跳转页面
这和普通的发起提交请求,然后更新页面的区别就在于第2点:网页可以继续浏览、点击,不需要刷新页面。ajax是Web2.0的基础,强调网页极强的交互性和访问的流畅性。
接下来,我们将使用jQuery(一个JavaScript框架),发起一个ajax请求。
jQuery的版本不断迭代,我们这里使用的是1.10.2版本。
首先,需要下载js文件,右键点击这里另存为
下面是一个登陆函数,使用ajax方式登录,随便填入账号、密码后点击登录,就会调用JavaScript函数send,将账号、密码发送到目标页面test.jsp。
function send(){
//取得id为name的元素的值,这里会取到账号
var usr=$("#name").val();
//取得id为name的元素的值,这里会取到密码
var pass=$("#pass").val();
$.ajax({
//type是http的发送数据方式,get或者post;url是指定要发送的目标页面,data是要发送的数据,这里发送了两个数据,id:usr的意思是名字为id,值是变量usr的值
type:"GET",
url:"test.jsp",
data:{
id:usr,
psw:pass
},
beforeSend:function(xmlHttp){
xmlHttp.setRequestHeader("If-Modified-Since",
"0");
xmlHttp.setRequestHeader("Cache-Control",
"no-cache");
},
//发送http请求成功后,msg就是test.jsp的应答内容
success:function(info){
//将info的内容,显示在id为msg的元素内
$("#msg").html(info);
}
}
接下来我们看看test.jsp怎么接收数据和应答
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% String name=request.getParameter( "id" ); String pass=request.getParameter( "psw" ); out.println(name + "登陆成功" );%>