`
BradyZhu
  • 浏览: 246944 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

最简单的Ajax应用,异步验证用户名

 
阅读更多

Ajax异步交互技术在现在网页制作方面非常的流行,这里先介绍一下使用jQuery完成Ajax的异步验证用户名的做法,

然后再深入剖析,使用纯JS创建XMLHttpRequest对象,完成jQuery底层封装的内容,下面先演示jQuery的实现,其实

非常简单。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>ajax.html</title>
	<script type="text/javascript" src="/Ajax/js/jquery-1.7.2.js"></script>
	<script type="text/javascript">
		function test(){
			//1.获取文本框中的值
			var value = $("#userName").val();
			//2.将文本框中的内容发送给后台服务器
			//使用jQuery的XMLHTTPRequest的方法的封装
			$.get("/Ajax/servlet/AjaxServlet?name="+value,null,callback);
		}
		
		function callback(data){//回调函数
			//3.接受服务器的返回的数据
			//alert(data);
			//4.将结果显示在页面中
			$("#div1").html(data);
		}
	</script>
  </head>
  
  <body>
    用户名:<input type="text" id="userName" onblur="test();"/><span id="div1" style="color: red"></span>
	<br/>
    密码:<input type="password" id="password" /><br/>
    邮箱:<input type="text" id="mail" />
  </body>
</html>

大部分讲解都已经写在了代码的注释上面,其实不需要解释什么,这个是使用get方面后缀数据传递给后台服务器的。


当然,后台服务器代码如下

package com.bird.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AjaxServlet extends HttpServlet {

	/**
	 * 获取前台传递过来的参数
	 */
	private static final long serialVersionUID = 1L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		String name = request.getParameter("name");
		name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
		PrintWriter out = response.getWriter();
		if(name.equals("bird")){
			out.println("用户名"+name+"已经存在");
			
		}else{
			out.println("用户名不存在,可以使用");
		}
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);

	}

}

然后下面是使用纯JS完成创建XMLHttpRequest对象和交互的效果,后台代码是一样的,你会发现jQuery帮助我们很

多.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>ajax1.html</title>
	<script type="text/javascript">
		var xmlhttp;
		function verify(){//这个方法使用XMLHttpRequest对象来进行Ajax异步交互数据
			//1.使用dom的方式获取文本框的内容
			var userName = document.getElementById("userName").value;
			//2.创建XMLHTTPRequest对象
			if(window.XMLHttpRequest){
				xmlhttp = new XMLHttpRequest();
			}else if(window.ActiveXObject){
				//针对ie6以下版本
				var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
				//两个可以用来创建XMLHTTPRequest对象的控件,进行尝试创建
				for(var i=0; i < activexName.length; i++){
					try{
						xmlhttp = new ActiveXObject(activexName[i]);
						break;
					}catch(e){
						
					}
				}
			}
			
			//最后 确认xmlhttprequest对象创建成功
			if(!xmlhttp){
				alert("请更换更新版本的浏览器");
				return;
			}else{
				//2.注册回调函数,只需要函数名不需要加括号
				xmlhttp.onreadystatechange = callback;
				//3.设置连接信息
				xmlhttp.open("GET","/Ajax/servlet/AjaxServlet?name="+userName, true);
				//4.发送数据,开始和服务器端进行交互
				xmlhttp.send(null);
			}
		}
		
		//回调函数
		function callback(){
			//判断对象交互完成
			if(xmlhttp.readyState==4){
				//判断http交互是否成功
				if(xmlhttp.status==200){
					//获取服务器的数据
					//获取纯文本的数据
					var responseText = xmlhttp.responseText;
					document.getElementById("div1").innerHTML=responseText;
				}
			}
		}
	</script>
  </head>
  
  <body>
   用户名:<input type="text" id="userName" onblur="verify();"/><span id="div1" style="color: red"></span>
	<br/>
    密码:<input type="password" id="password" /><br/>
    邮箱:<input type="text" id="mail" />
  </body>
</html>


分享到:
评论

相关推荐

    Ajax实现异步用户名验证功能

    检验的方法如下:首先创建XMLHTTPRequest对象,然后将需要验证的信息(用户名)发送到服务器端进行验证,最后根据服务器返回状态判断用户名是否可用。 function checkAccount(){ var xmlhttp; var name = document....

    超实用的jQuery代码段

    8.5 使用AJAX异步验证用户名和密码 8.6 页面滚动时加载新的网页内容 8.7 打造自己的站内搜索引擎 8.8 异步加载并解析XML文件 8.9 动态加载HTML内容到标签页中 8.10 使用AJAX刷新异步提交表单 8.11 使用AJAX刷新上传...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java开源包8

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包1

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包11

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包2

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包3

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包6

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包5

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包10

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包4

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包7

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包9

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包101

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    Java资源包01

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    JAVA上百实例源码以及开源项目源代码

    2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。...

    java面试宝典

    165、AJAX应用和传统Web应用有什么不同? 38 166、如何用JQuery进行表单验证? 39 167、Prototype如何实现页面局部定时刷新? 40 168、Prototype如何为一个Ajax添加一个参数? 40 169、Ajax请求总共有多少种Callback...

    千方百计笔试题大全

    165、AJAX应用和传统Web应用有什么不同? 38 166、如何用JQuery进行表单验证? 39 167、Prototype如何实现页面局部定时刷新? 40 168、Prototype如何为一个Ajax添加一个参数? 40 169、Ajax请求总共有多少种Callback...

Global site tag (gtag.js) - Google Analytics