利用dom对象传递xml数据

1 新建一个servelt--- AjaxXMLServer.java , 并在web.xml 中配置

 

public class AjaxXMLServer extends HttpServlet {

    @Override

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

       // super.doGet(httpServletRequest, httpServletResponse);    //To change body of overridden methods use File | Settings | File Templates.

        try{

            request.setCharacterEncoding("GBK");

            //修改点1 content-Type 是“text/xml

            response.setContentType("text/xml;charset=GBK");

 

            PrintWriter out = response.getWriter();

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

 

            //修改点2 返回的数据拼装成xml格式

            StringBuilder builder = new StringBuilder();

            builder.append("<message>");

            if(name == null || name.trim().equals("")){

                       builder.append("用户名不能为空").append("</message>");

 

            }else if(name.equals("qq")){

                    builder.append("用户名已存在").append("</message>");

            }else{

                 builder.append("用户名不存在").append("</message>");

            }

            out.println(builder.toString());

        }catch(Exception e){

            e.printStackTrace();

        }

    }

 

    @Override

    protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {

        //super.doPost(httpServletRequest, httpServletResponse);    //To change body of overridden methods use File | Settings | File Templates.

        doGet(httpServletRequest,httpServletResponse);

    }

}

 

 

2 .verify.js

 

var xmlhttp;

//创建不同浏览器的xmlhttprequest对象

    function createXMLHttpRequest(){

        //针对fiefor,mozillar,opera,ie7,ie8

        if(window.XMLHttpRequest()){

            xmlhttp = new XMLHttpRequest();

           

        }else if(window.ActiveXObject()){

             //针对ie5,ie6

            //两个可以用于创建xmlhttprequest对象的控件名称,保存在一个js数组中

            //排在前面的版本较新

            var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];

            for(var i=0;i < activeName.length;i++){

                try{

                    //取出一个控件进行创建,创建成功就返回

                    xmlhttp = new ActiveXObject(activexName[i]);

                    break;

                }catch(e){

 

                }

            }

        }

 

    }

 

    function verify(){

        createXMLHttpRequest();

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

       // var url = "AjaxServer?name=" + userName + "&timestampt=" + new Date().getTime();

        //提交的方式,提交的地址,同步还是异步

      /* xmlhttp.open("GET",url,true);

        xmlhttp.onreadystatechange = callback;

        xmlhttp.send(null);*/

 

        //post方式提交

        var url = "AjaxXMLServer";

        xmlhttp.open("post",url,true);

        //设置头信息

        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        xmlhttp.onreadystatechange = callback;

        //异步方式。send这句话会立即执行

        xmlhttp.send("name=" + userName + "&timestampt=" + new Date().getTime());

    }

 

    /*function callback(){

       // alert(xmlhttp.readyState)  ;

        if(xmlhttp.readyState == 4){   //全部传完了

            if(xmlhttp.status == 200){ //传递的消息正确

                var resTextdiv = document.getElementById("result");

                resTextdiv.innerHTML = "<font color='red'>" + xmlhttp.responseText + "</font>";

            }else{

                alert("error");

            }

        }

    }*/

 

//传递的是xml形式的数据

 

 

 

    function callback(){

       // alert(xmlhttp.readyState)  ;

        if(xmlhttp.readyState == 4){   //全部传完了

            if(xmlhttp.status == 200){ //传递的消息正确

                //1 取得数据的dom 对象,使用responseXML的方式接收数据的dom对象

                 var domObj =   xmlhttp.responseXML;

                 if(domObj){

                //2 元素节点  返回的是一个数组

                         var messageNodes = domObj.getElementsByTagName("message");

                        if(messageNodes.length > 0){

                            //3 文本节点 message标签的文本在dom中是标签所对应的子节点

                            var textNode = messageNodes[0].firstChild;

 

                            //4 文本内容

                            var responseMessage = textNode.nodeValue;

 

                            var resXMLdiv = document.getElementById("result");

                            //5 设置元素节点的内容

                            resXMLdiv.innerHTML =  responseMessage;

                        }

                 }

 

            }else{

                alert("error");

            }

        }

    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值