博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用XML传递数据
阅读量:5264 次
发布时间:2019-06-14

本文共 5236 字,大约阅读时间需要 17 分钟。

HTML

1  2  3  4     
5 itcast.cn 用户名校验ajax实例 6 7 8 9 10 itcast.cn 用户名校验的ajax实例,请输入用户名:
11
12 13
14
15
16 17

 

Servlet

package org.zln.ajax.servlet;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;/** * Created by coolkid on 2015/6/7 0007. */public class AjaxServer extends HttpServlet {    @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doGet(request,response);    }    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        try{            /*使用xml处理*/            response.setContentType("text/xml;charset=UTF-8");            request.setCharacterEncoding("UTF-8");            PrintWriter out = response.getWriter();            //取参数信息            String name = request.getParameter("name");            //输入校验            StringBuilder stringBuilder = new StringBuilder();            stringBuilder.append("
"); if(name == null || name.length() == 0){ stringBuilder.append("用户名不能为空").append("
"); } else{ //逻辑校验与业务处理 if(name.equals("wangxingkui")){ stringBuilder.append("用户名[" + name + "]已经存在,请使用其他用户名").append(""); } else{ stringBuilder.append("用户名[" + name + "]尚未存在,可以使用该用户名注册").append(""); } out.println(stringBuilder.toString()); } } catch(Exception e){ e.printStackTrace(); } //返回更新数据(而不是跳转到新的视图) }}

js

/** * Created by coolkid on 2015/6/7 0007. */var xmlHttp = null;function verifyNew(id) {    /*获取待打算数据*/    var username = document.getElementById(id).value;    /*创建XMLHttpRequest对象*/    if (window.XMLHttpRequest) {        /*针对FireFox Mozillar Opera Safair IE7+*/        xmlHttp = new XMLHttpRequest();        /*针对某些版本的Mozillar浏览器的bug修正*/        if (xmlHttp.overrideMimeType) {            xmlHttp.overrideMimeType('text/xml');        }    } else if (window.ActiveXObject) {        /*针对IE6 IE5.5 IE5*/        var activexName = [            'MSXML2.XMLHTTP',            'Microsoft.XMLHTTP'        ];        for (var i = 0; i < activexName.length; i++) {            try {                /*取出一个空间名进行创建,如果创建成功,就终止循环*/                xmlHttp = new ActiveXObject(activexName[i]);                break;            } catch (e) {            }        }    }    if (!xmlHttp) {        alert('XMLHttpRequest对象创建失败');    } else {        /*注册回调函数*/        xmlHttp.onreadystatechange = callback;        /*设置连接 true表示异步交互 */        xmlHttp.open('GET', '/Lesson5_AJAX_Demo1/AjaxServletDo.do?name=' + username, true);        /*如果采用POST的方式,需要自己设置请求头*/        /*        xmlHttp.open("POST","/Lesson5_AJAX_Demo1/AjaxServletDo.do"+username,true);        xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");        xmlHttp.send("name="+username);        */        /*发送数据*/        xmlHttp.send(null); /*因为发送的数据已经在url中,所以这里的发送数据参数设置为null*/    }}function callback() {    if (xmlHttp.readyState == 4) { /*交互完成*/        //判断http的交互是否成功        if (xmlHttp.status == 200) {            //使用responseXML的方式来接收XML数据对象的DOM对象            var domObj = xmlHttp.responseXML;            if (domObj) {                //
123123123
//dom中利用getElementsByTagName可以根据标签名来获取元素节点,返回的是一个数组 var messageNodes = domObj.getElementsByTagName('message'); if (messageNodes.length > 0) { //获取message节点中的文本内容 //message标签中的文本在dom中是message标签所对应的元素节点的字节点,firstChild可以获取到当前节点的第一个子节点 //通过以下方式就可以获取到文本内容所对应的节点 var textNode = messageNodes[0].firstChild; //对于文本节点来说,可以通过nodeValue的方式返回文本节点的文本内容 var responseMessage = textNode.nodeValue; //将数据显示在页面上 //通过dom的方式找到div标签所对应的元素节点 var divNode = document.getElementById('result'); //设置元素节点中的html内容 divNode.innerHTML = responseMessage; } else { alert('XML数据格式错误,原始文本内容为:' + xmlHttp.responseText); } } else { alert('XML数据格式错误,原始文本内容为:' + xmlHttp.responseText); } } else { alert('出错了!!!'); } }}

 


 

使用jQuery的方式改写js代码

 

1 function verify(id){ 2     var jqueryObj = $("#"+id); 3     var username = jqueryObj.val(); 4     $.ajax({ 5         type:"POST",/*请求方式*/ 6         url:"/Lesson5_AJAX_Demo1/AjaxServletDo.do",/*请求地址*/ 7         data:"name="+username,/*请求数据*/ 8         dataType:"xml",/*接收返回数据格式*/ 9         success:function(data){
/*请求成功调用函数*/10 var jqueryObj = $(data);11 var message = jqueryObj.children();12 var text = message.text();13 $("#result").html(text);14 }15 });16 };

 

转载于:https://www.cnblogs.com/sherrykid/p/4574465.html

你可能感兴趣的文章
设计模式之工厂方法模式
查看>>
妙趣横生算法 6:希尔排序
查看>>
[导入][幻想情侣][2008热播韩剧][全16集+OST][韩语中字]
查看>>
Divide Two Integers
查看>>
Top K Frequent Words
查看>>
Qt 从菜单栏打开文件
查看>>
linux下fms2流媒体服务器搭建
查看>>
目前为止用过的最好的Json互转工具类ConvertJson
查看>>
Pass的通用指令开关
查看>>
[Linux内存]linux内存学习(二)——分段和分页
查看>>
XHTML学习要点
查看>>
JavaScript的学习要点
查看>>
我用到的 Linq 扩展方法
查看>>
18.1 线程简介
查看>>
C# 命令行解析
查看>>
Day13
查看>>
[leedcode 08]String to Integer (atoi)
查看>>
[leedcode 99] Recover Binary Search Tree
查看>>
日志组件logback的介绍及配置使用方法
查看>>
C# 模拟鼠标移动与点击
查看>>