ajax技术在2005年的时候就开始流行起来,这种技术能给用户带来更好的浏览体验,它开启了web2.0时代,现在许多的网站几乎都使用了ajax技术。
首先我们简单对ajax作一个介绍,ajax是什么?ajax是Asynchronous JavaScript and XML(以及 DHTML 等)的缩写。在Ajax之前,Web站点强制用户必须提交/等待/重新显示,用户的动作总是与服务器的“思考时间”同步。Ajax提供与服务器异步通信的能力,从而使用户从请求/响应的循环中解脱出来。借助于Ajax技术,可以在用户点击按钮时,向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用JavaScript和CSS来相应地更新页面,而不是刷新整个页面。最重要的是,用户甚至不知道浏览器正在与服务器通信,Web站点看起来就像是即时响应的。
Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应。
下面是一个ajax的简单例子,这个例子主要是模拟一下在各大网站或论坛使用的注册时检测用户名是否被占用的问题,当注册用户名被占用,在不刷新页面的情况下给出“该用户名被占用,请另选一个用户名”的提示,没有被占用就给出“该用户名可以注册”的提示。
按照如下的步骤进行:
1、编写一个html页面,在这个页面中有一个表单,但我们的表单没有提交按钮,当用户填写了“用户名”之后,在用户名之后会自动显示该用户名是否被占用。下面是该html页面的完整代码:register.html
<html> <head> <script language="javascript"> var xmlHttp = null ; function showHint(str) { if (str.length==0) { document.getElementById("txtHint").innerHTML=""; return; } xmlHttp = GetXmlHttpObject(); if (xmlHttp==null) { alert ("您的浏览器不支持AJAX!"); return; } xmlHttp.onreadystatechange = stateChanged; xmlHttp.open("GET",'gethint.jsp?search=' + str,true); xmlHttp.send(null); } function stateChanged() { if (xmlHttp.readyState==4) { document.getElementById("txtHint").innerHTML = xmlHttp.responseText; } } function GetXmlHttpObject() { try { //Firefox, Opera 8.0+, Safari xmlHttp = new XMLHttpRequest(); } catch (e) { //Internet Explorer try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; } </script> </head> <body> <form> 用户名: <input type="text" id="txt1" onkeyup="showHint(this.value)"> *: <span id="txtHint"></span></p> </form> </body> </html>
2、编写一个jsp页面,该jsp页面负责处理对用户名是否被占用的检测,在这里为了简单起见,因为只是模拟一 下这个过程,所以没有使用数据库,没有从数据库中去检测用户名,而是使用一个数组,预先在数组中定义一些用户名(要连接数据库原理都一样,就只要查询一遍数据库)。其代码如下:gethint.jsp
<%@ page contentType="text/html;charset=gbk"%> <% String[] a = new String[10] ; a[0]="ylj" ; a[1]="hnylj" ; a[2]="wjh" ; a[3]="yang" ; a[4]="sheng" ; a[5]="chen" ; a[6]="zhang" ; a[7]="ming" ; a[8]="liming" ; a[9]="wuhua" ; String q = request.getParameter("search") ; String hint1 = null ; String hint2 = null ; if (q.length()>0) { for (int i=0;i<a.length;i++) { if (!q.equals(a[i])) { hint1 = "该用户名可以注册" ; } else { hint2 = "该用户名被占用,请另选一个用户名" ; } } } if (hint2!=null) out.println(hint2) ; else out.println(hint1) ; %>
3、在tomcat的webapp目录下建立一个ajax文件夹,在该文件夹下再建立一个WEB-INF文件夹,在这个WEB-INF文件夹下再建立一个web.xml文件,这个文件可以怎么都不配,只需一个schema声明,其代码如下:
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> </web-app>
4、将上面编写好的ajax.html文件和time.jsp文件复制到ajax目录下,然后启动tomcat,打开浏览器,在浏览器的地址栏输入:http://localhost:8080/ajax/register.html 即可看到一个表单页面,当我们在填写“用户名”时,在表单后面将自动显示出该用户名是否被占用的信息。
这个例子程序非常的简单,旨在模拟一下这个过程,说明一下ajax的原理,初学者可以参考参考。
一个Java技术交流群,一起交流,共同进步,扣扣群号:513086638
相关推荐
$('#result').html('用户名已被占用'); } }, error: function() { alert('验证失败,请稍后重试'); } }); }); }); ``` 这里的`check_username.php`是服务器端的处理程序,可以是PHP、Python、Node.js等任何...
总结来说,Ajax验证用户名或昵称是否已被注册涉及到前端JavaScript的事件处理、XMLHttpRequest对象的使用,以及后端服务器的响应。通过这种方式,我们可以提供更好的用户体验,让用户在输入时即时得到反馈,而无需...
本实例教程详细介绍了如何利用PHP和Ajax技术实现在注册过程中检测用户名或电子邮件地址是否已被其他用户占用的功能。该功能在开发论坛、会员系统等用户交互网站时非常关键,它可以提升用户体验,防止用户在输入已...
而在Web开发中,用户名验证是一个常见的需求,用于确保用户提交的用户名是否唯一,未被其他用户占用。 在本例中,Ajax用于实现一个表单验证功能,具体来说就是检查用户输入的用户名是否已存在于服务器端数据库中。...
在本示例中,我们看到一个完整的Ajax应用,用于实现一个模拟的注册页面功能,用户输入用户名后,程序会异步地检查该用户名是否已被占用。** **一、Ajax基础** 1. **异步通信**:Ajax的核心特性是异步,即在不打断...
`show1`方法接收输入框的值作为参数,然后模拟了一个异步请求来检查用户名是否已被占用。在实际应用中,这通常会涉及到向服务器发送AJAX请求,查询数据库中是否存在该用户名。 4. **数据更新**:在`show1`方法内部...
5. 唯一性验证逻辑:在前端,根据从后端返回的数据,使用parseInt()函数解析数据,并根据解析结果判断邮箱地址是否已被占用。如果返回的数据是0,则表示邮箱未被占用,提示用户“邮箱可以使用”;如果返回的是非0值...
如果未被占用,服务器返回一个确认信息,前端则可以显示相应的提示,这样可以即时告知用户,无需等待整个表单提交后才得知结果。 再来看“使用JQuery向服务器请求,实现省市联动的效果”。jQuery是一个轻量级的...
本 WebIM 系统采用 B/S 模式,使用浏览器 ajax 实现即时聊天。 服务器端采用 MC 设计模式,Controler 分为组包拆包模块(编码子模块、加密解密子模块、序列化/反序列化子模块)和主处理模块(包含:Manager、DAO);...
当用户在`form.html`中输入用户名并失去焦点时,会显示相应的提示信息,告知用户该用户名是否已经被占用。 总结起来,这个示例展示了如何使用PHP和Ajax实现一个简单的唯一性校验功能,帮助用户在注册时检查用户名的...
- **实时验证**:如注册时检查用户名是否已被占用,登录时验证用户名和密码。 - **动态更新**:如在页面上删除数据项,无需刷新即可从服务器删除并同步更新界面。 - **局部刷新**:仅更新页面的一部分,提高页面性能...
此外,JavaScript还可以提供即时反馈,比如在用户输入时检查用户名是否已被占用。 5. **Ajax**:使用Ajax,我们可以实现无刷新页面更新,提高用户体验。在登录注册场景中,用户提交表单时,Ajax可以发送异步请求到...
这就需要结合后端技术与前端技术进行交互,确保用户输入的用户名没有被他人占用。本文介绍的技术组合是Struts2框架与jQuery库,两者结合可以高效实现对注册用户存在的验证。 首先,Struts2是一个基于MVC架构的Web...
反Ajax推送,也称为长轮询(Long Polling),是实现服务器到客户端实时数据传输的一种技术,它通过延迟浏览器端的HTTP响应来模拟服务器端的事件驱动推送。 首先,我们需要一个HTML页面作为用户界面,即入口文件`...
此外,许多网站使用AJAX异步加载数据,使得抓取变得更加困难。 在提供的“抓取网页密码VC6-1217”文件中,可能包含了实现上述过程的源代码示例。分析这个代码,你可以学习如何在VC6环境中实际操作HTTP请求,理解和...