现在的位置: 首页 > 综合 > 正文

Ajax JS 小示例

2013年03月11日 ⁄ 综合 ⁄ 共 2644字 ⁄ 字号 评论关闭

HTML页面

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <script language="javascript" src="jquery.js"></script>
    <script language="javascript" src="xml.js"></script>

    <meta http-equiv=”Content-Language” content=”UTF-8” />
    <title>ajax实例 TEST</title>
</head>
<body>
    ajax实例 TEST <br/>

        <input type="text" id="username"name="username"/>
        <input type="button" value="ok" onclick="varify()">
        <div id="msg"></div>

</body>
</html>

 

JAVASCRIPT:

var xmlhttp;
function varify(){
    var username = document.getElementById("username").value;
    if(window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();
        if(xmlhttp.overrideMimeType ){
            xmlhttp.overrideMimeType("text/xml");
        }
    }else if(window.ActiveXObject) {
        var activexName = ["MSXML.XMLHTTP","Microsoft.XMLHTTP"];
        for(var i;i<activexName.length;i++){
            try{
                xmlhttp = new ActiveXObject(activexName[i]);
                break;
            }catch(e){
            }
        }
    }
    //注册回调函数时,只需要函数名,不要回括号
    xmlhttp.onreadystatechange=callback;
    /*
     * 第一个参数表示http的请求方式,支持所有http的请求方式,主要为get和post;
     * 第二个参数表示请求的url地址,get方式参数也在URL中;
     * 第三个参数表示采用异步还是同步方式交互,true 表示异步;
     */
   // xmlhttp.open("GET","AjaxServlet?name="+username,true);
   // xmlhttp.send(null);


    //post方式
    xmlhttp.open("POST","AjaxServlet",true);
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded") ;
    // 参数
    xmlhttp.send("name="+username);
}

// 回调函数
function callback() {

    //判断对象的状态是交互完成的
    if(xmlhttp.readyState == 4){
        if(xmlhttp.status==200){

         //  使用纯文本方式   out.println("用户名[" + name + "]已经存在,请使用其他用户名, ");
             var responseText = xmlhttp.responseText;
             alert(responseText) ;


             //使用XML   s.append("用户名[" + name + "]已经存在,请使用其他用户名, ").append("</message>");
             var domObj = xmlhttp.responseXML;
             var messageNode = domObj.getElementsByTagName("message");
             var responseMessage = messageNode[0].firstChild.nodeValue;

             alert(responseMessage) ;

             document.getElementById("msg").innerHTML=responseMessage;
        }
     }
}

 

==================

AjaxServlet

import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.*;

public class AjaxServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/xml;charset=utf-8");  //使用XML 为 text/xml
        PrintWriter out = response.getWriter();
        String name = request.getParameter("name");

        StringBuilder s= new StringBuilder();
        s.append("<message>");
        if(name==null||name.length()==0){
            s.append("用户不能为空").append("</message>");
        } else{

            if(name.equals("qq")) {
                s.append("用户名[" + name + "]已经存在,请使用其他用户名, ").append("</message>");
            } else{
                s.append("用户名[" + name + "]不存在,可以使用").append("</message>");
            }
            out.println(s.toString());
            System.out.println(s);
        }
    }
}

 

 

 

抱歉!评论已关闭.