1、实现方式:有两种方式
JS
JQuery
2、分别介绍
(1)js的实现方式:
它是通过XMLHTTPRequest对象进行操作,其他部分方法有:
open(提交方式(get|post),服务器地址(servlet的地址),与服务端的连接)
send():get请求:send(null)
post请求:send(参数值)
setRequestHander(hander,value)
:get请求—不需要此方法
post请求:需要设置
a、如果是请求包含文件上传,setRequestHeader(“content-Type”,“multrpart/form-data”)
b、如果是请求包含文件上传,setRequestHeader(“content-Type”,“application/x-www-form-urlencoded”)
XMLHTTPRequest对象属性:readyState:4(正常)
status:200(正常)
responseText:String
responseXML:xml
代码:
var xhr=new XMLHttpRequest();
function checkUser(username){
if(username==""){
alert("用户名不能为空");
return false;
}else{
doAjax("validata?name=" + username);
}
}
//处理ajax
function doAjax(url){
//设置回调函数
xhr.onreadystatechange=process;
//2、发送请求
xhr.open("POST", url, true);
//设置头字段
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-type", "text/html;charset=utf-8");
xhr.send(null);
}
function process(){
var mess=document.getElementById("mess");
if(xhr.readyState==4&&xhr.status==200){
if(xhr.responseText=="true"){
mess.innerHTML="<font color='green'>该用户可用</font>";
}else if(xhr.responseText=="false"){
mess.innerHTML="<font color='red'>该用户不存在</font>";
}
}
}
2、jQuery:
a、
function check(){
var $name = $("#name").val();
$.ajax({
url:"TestServlet",
请求方式:"post",
data:"name="+$name,
success:function(result,testStatus){
if(result == "true"){
alert("已存在!注册失败!");
}else{
alert("注册成功!");
}
},
error:function(xhr,errorMessage,e){
alert("系统异常!");
}
});
b、
```
function check(){
var $name = $("#name").val();
$("#tip").load("TestServlet", "name="+$name);
c:
function check(){
var $name = $("#name").val();
$.getJSON(
"TestServlet",
{"name":"zs","age":"23"},
function (result){
//js需要通过eval()函数 将返回值 转为一个js能够识别的json对象
var jsonStudent = eval(result.stu1) ;
alert(jsonStudent.name +"---"+ jsonStudent.age) ;
}
);
D:
/* json中有多对象的情况*/
function testJson()
{
$.getJSON(
"JsonServlet",
{"name":"zs", "age":24},
function (result){
// result: {"stu1":stu1, "stu2":stu2,"stu3":stu3 }
//js需要通过eval()函数 将返回值 转为一个js能够识别的json对象
var json = eval(result) ;
$.each( json, function(i,element){
alert( this.name +"---"+ this.age );
} );
}
);
}
在servlet中:
String mobile = request.getParameter("mobile") ;
//假设此时 数据库中 只有一个号码:18888888888
PrintWriter out = response.getWriter();
if("18888888888".equals(mobile)) {
//如果客户端是getJSON(),则需要以json格式返回
out.print( "{\"msg\":\"true\"}" );// {"\"msg\":\"true\""}
}else {
out.print( "{\"msg\":\"false\"}" );// "\"msg\":\"false\""
}
out.close();