您的位置:首页 > 理论基础 > 计算机网络

[学习笔记]XMLHttpRequest实现局部刷新

2016-04-16 13:22 375 查看
<html>

<head>

<title>TODO supply a title</title>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width">

</head>

<body>

<input type="text" id="name"/>

<input type="button" name="submit" value="验证用户名是否已经存在" onclick="submit()">

<div id="message"></div>

<script type="text/javascript">

var xmlhttp;

function submit(){

if(window.XMLHttpRequest){

xmlhttp = new XMLHttpRequest();

if(xmlhttp.overrideMineType){

xmlhttp.overrideMineType("text/xml");

}

}else if (window.AciveXObject){

var MSXML=['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'];

for(var n=0;n<MSXML.length;n++){

try{

xmlhttp = new ActiveXObject(MSXML
);

break;

}catch(e){}

}

}else{

alert("不能建立XMLHttpRequest对象");

return false;

}

var name=document.getElementById("name").value;

if(name == null || name == ""){

alert("用户名不能为空");

}

xmlhttp.open("GET","AJAX?name=" + name,true);

xmlhttp.onreadystatechange=callback;

xmlhttp.send(null);

}

//回调函数

function callback(){

//http响应已完成接收

if(xmlhttp.readyState == 4){

//由服务器返回信息成功

if(xmlhttp.status == 200){

var messageNode=document.getElementById("message");

messageNode.innerHTML=xmlhttp.responseText;

}

}

}

</script>

</body>

</html>

服务器端代码:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

try {

String old=request.getParameter("name");

if(old==null){

out.println("用户名不能为空");

}else{

//String name=new String(old.getBytes("ISO8859-1"),"gb2312");

String name=URLDecoder.decode(old,"utf-8");

System.out.println(name);

if(name.equals("zhangxiao")){

out.println("用户名[" + name + "]已经存在,请使用其他用户名");

}else{

out.println("用户名[" + name + "]尚未存在,可以使用该用户名");

}

}

}finally{

out.close();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: