表2-1 标准XMLHttpRequest操作
方 法
|
描 述
|
abort()
|
停止当前请求
|
getAllResponseHeaders()
|
把HTTP请求的所有响应首部作为键/值对返回
|
getResponseHeader("header")
|
返回指定首部的串值
|
open("method", "url")
|
建立对服务器的调用。method参数可以是GET、POST或PUT。url参数可以是相对URL或绝对URL。这个方法还包括3个可选的参数
|
send(content)
|
向服务器发送请求
|
setRequestHeader("header", "value")
|
把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()
|
表2-2 标准XMLHttpRequest属性
属 性
|
描 述
|
onreadystatechange
|
每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数
|
readyState
|
请求的状态。有5个可取值:0 = 未初始化,1 = 正在加载,2 = 已加载,3 = 交互中,4 = 完成
|
responseText
|
服务器的响应,表示为一个串
|
responseXML
|
服务器的响应,表示为XML。这个对象可以解析为一个DOM对象
|
status
|
服务器的HTTP状态码(200对应OK,404对应Not Found(未找到),等等)
|
statusText
|
HTTP状态码的相应文本(OK或Not Found(未找到)等等)
|
1 用于处理XML文档的DOM元素属性
属性名
|
描述
|
childNodes
|
返回当前元素所有子元素的数组
|
firstChild
|
返回当前元素的第一个下级子元素
|
lastChild
|
返回当前元素的最后一个子元素
|
nextSibling
|
返回紧跟在当前元素后面的元素
|
nodeValue
|
指定表示元素值的读/写属性
|
parentNode
|
返回元素的父节点
|
previousSibling
|
返回紧邻当前元素之前的元素
|
表3-2 用于遍历XML文档的DOM元素方法
方法名
|
描述
|
getElementById(id) (document)
|
获取有指定惟一ID属性值文档中的元素
|
getElementsByTagName(name)
|
返回当前元素中有指定标记名的子元素的数组
|
hasChildNodes()
|
返回一个布尔值,指示元素是否有子元素
|
getAttribute(name)
|
返回元素的属性值,属性由name指定
|
动态创建内容时所用的W3C DOM属性和方法
属性/方法
|
描述
|
document.createElement(tagName)
|
文档对象上的createElement方法可以创建由tagName指定的元素。如果以串div作为方法参数,就会生成一个div元素
|
document.createTextNode(text)
|
文档对象的createTextNode方法会创建一个包含静态文本的节点
|
<element>.appendChild(childNode)
|
appendChild方法将指定的节点增加到当前元素的子节点列表(作为一个新的子节点)。例如,可以增加一个option元素,作为select元素的子节点
|
<element>.getAttribute(name)
<element>.setAttribute(name, value)
|
这些方法分别获得和设置元素中name属性的值
|
<element>.insertBefore(newNode, targetNode)
|
这个方法将节点newNode作为当前元素的子节点插到targetNode元素前面
|
<element>.removeAttribute(name)
|
这个方法从元素中删除属性name
|
<element>.removeChild(childNode)
|
这个方法从元素中删除子元素childNode
|
<element>.replaceChild(newNode, oldNode)
|
这个方法将节点oldNode替换为节点newNode
|
<element>.hasChildnodes()
|
这个方法返回一个布尔值,指示元素是否有子元素
|
var xmlhttp;
function verify(){
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=["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对象创建失败");
return;
}else{
}
//2注册回调函数我们需要将函数名注册上如果加上括号就会把函数的返回值注册上
xmlhttp.onreadystatechange=callback;
//3设置连接信息
//xmlhttp.open("Get","AJAXServer?name="+ userName,true);
xmlhttp.open("post","AJAXXMLServer",true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
//4发送数据和服务器端进行交互
//同步方式下send这句话会在服务器端数据回来后才执行完
//异步方式下send这句话会立即执行完
xmlhttp.send("name="+userName);
//xmlhttp.send(null);
}
function callback(){
//接受响应数据
//判断对象的状态是交互完成
if(xmlhttp.readyState==4){
//判断http的交互是否成功
if(xmlhttp.status==200){
//获取服务器的数据
var domObj=xmlhttp.responseXML;
var messageNode=domObj.getElementsByTagName("message");
if(messageNode.length>0){
var messageNodevalue=messageNode[0].childNodes[0].nodeValue;
//将数据显示在页面上
var divNode=document.getElementById("result");
divNode.innerHTML=messageNodevalue;
}else{
alert("读取xml数据出错元数据为"+xmlhttp.responseText);
}
}else{
alert("出错了")
}
}
}
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;
/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2009-3-17
* Time: 13:55:25
* To change this template use File | Settings | File Templates.
*/
public class AJAXXMLServer extends HttpServlet{
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
response.setContentType("text/xml;charset=GB2312");
PrintWriter out=response.getWriter();
String old=request.getParameter("name");
StringBuilder builder=new StringBuilder();
builder.append("<message>");
if(old==null||old.length()==0){
builder.append("用户名不能为空").append("</message>");
}else{
String name=new String(old.getBytes("ISO8859-1")) ;
if(name.equals("yf")){
builder.append("用户名["+name+"]已经存在").append("</message>");
}else{
builder.append("用户名["+name+"]尚未存在").append("</message>");
}
}
out.println(builder.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
【Asp+Ajax检测用户名并注册Access版】是基于经典的Web开发技术组合——ASP(Active Server Pages)和AJAX(Asynchronous JavaScript and XML)实现的一个用户注册系统,它利用Access数据库进行数据存储。...
该标题提到的是一个基于Ajax的简单登录验证示例,它不仅可以用于验证用户登录,还可以扩展为检查用户名是否存在。这表明我们将探讨如何使用Ajax技术来实现客户端与服务器之间的异步数据交换,特别是在用户认证场景中...
1. **表单验证**:用户在填写信息时,如注册、登录或购买商品,可以使用AJAX即时验证输入的数据,如邮箱格式、用户名唯一性等,避免用户提交无效信息导致的页面重载。 2. **商品浏览**:用户滚动页面时,使用AJAX...
- **Prototype**:另一个流行的JavaScript库,提供Ajax支持。 - **AngularJS**、**React**、**Vue.js**:现代Web开发框架,内置对Ajax的支持,简化复杂应用的开发。 #### 结论 Ajax作为Web开发的革新者,极大地...
4. **Web服务或API**:后端可能提供了一个Web服务(如ASMX或Web API),用于接收和处理Ajax请求,进行用户注册的业务逻辑,如检查用户名是否已存在。 5. **数据访问层**:在用户注册过程中,需要与数据库交互,检查...
此“ASP.NET源码——[聊天留言]简易AJAX留言板.zip”是一个示例项目,展示了如何使用ASP.NET技术创建一个基于AJAX的聊天留言系统。AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下...
jQuery是一个轻量级的JavaScript库,提供了丰富的API来简化DOM操作、事件处理以及Ajax交互。在这个基础实例中,我们将学习如何使用jQuery进行简单的用户名校验。 ### 一、jQuery简介 jQuery是由John Resig于2006年...
1. **页面结构**:首先,我们需要设计一个简单的HTML页面,包含留言表单,如用户名、留言内容等输入字段,以及一个提交按钮。Dojo的`dijit`模块可以帮助我们创建美观且响应式的表单组件。 2. **Ajax请求**:当用户...
根据题目描述,接下来我们来看一个具体的示例——实现用户名的即时验证。 1. **任务一:验证用户名不可重复** - 当用户在表单中输入用户名并离开输入框时,通过AJAX向服务器发送请求检查该用户名是否已经被注册。 ...
**示例场景**:假设我们需要实现一个用户登录验证功能,当用户输入用户名时,立即验证该用户名是否存在。为了提升用户体验,要求在验证过程中不刷新页面,也不中断用户的操作。 **非AJAX方法**:传统的做法是在用户...
#### 引言:AJAX——革新Web应用体验的关键技术 随着互联网技术的不断进步,用户体验成为了评价Web应用的重要标准之一。传统的Web应用基于同步交互模式,用户发起请求后必须等待服务器响应并返回完整的HTML页面,...
本文将深入探讨无状态聊天系统的设计与实现,以及涉及的主要技术——Ajax、Java和无状态特性。 一、无状态聊天系统的概念 无状态聊天系统意味着服务器不会在会话之间保留任何特定用户的信息。每次请求都被视为独立...
1. **获取XMLHttpRequest对象**:首先需要创建一个XMLHttpRequest对象实例。 2. **设置回调函数**:定义一个函数,用于处理服务器返回的数据。 3. **设置请求方式**:使用`open()`方法来指定请求类型(GET或POST)和...
4. **用户名验证**:限制特殊字符和长度: ```javascript function validateUsername(username) { var regex = /^[a-zA-Z0-9_]{5,20}$/; return regex.test(username); } ``` 5. **服务条款同意**:检查复选框是否...
1. 登录表单:这是用户输入用户名和密码的地方,通常包含两个文本框(username和password)和一个提交按钮。在HTML代码中,这些控件可能被赋予特定的ID以便在后台代码中引用。 2. AJAX调用:当用户点击登录按钮时,...
在本资源中,"网页模板——javascript模拟逼真的QQ登录界面特效.zip" 是一个包含JavaScript实现的网页模板,用于创建一个与QQ登录界面高度相似的交互体验。这个模板主要是通过JavaScript技术来模拟QQ登录页面的各种...
网页模板——jQuery实现的微信联系人二维码生成器源码是一个基于JavaScript库jQuery开发的工具,用于生成微信联系人的二维码图片。这个源码可以帮助开发者在网页上集成一个功能,让用户能够轻松地分享自己的微信...
在本文中,我们将深入探讨jQuery库中的一个强大功能——jQuery Validate插件,它是一个用于创建高效、用户友好的表单验证的工具。标题"jQuery表单验证例子(demo)"指向了一个实际的应用示例,而描述则表明我们可以...
在留言本应用中,每条留言可以被表示为XML文档的一个节点,包含用户名、留言内容、时间戳等属性。ASP可以通过DOM(Document Object Model)或XPath等方法来读取、修改和写入XML数据。 多风格留言本意味着这个系统...
jQuery 是一个流行的JavaScript库,简化了DOM操作、事件处理、动画效果和Ajax交互。在注册界面中,jQuery 可能被用来实现以下功能: - 验证用户输入:例如,检查用户名是否为空,密码是否符合复杂性要求,邮箱格式...