例子一:用户检测,在输入用户名称的时候响应AJAX,检查是否存在用户,然后渲染页面
checkUser.jsp如下:页面的输入框值改变响应请求检验用户
<%@ page language="java" pageEncoding="utf-8"%>
<html>
<head>
<script type="text/javascript">
var xmlhttp;
function checkUser() {
clear();
var user = document.getElementById("id").value;
xmlhttp = createXML();
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4) {//readystate 为4即数据传输结束
if(xmlhttp.status == 200){
setResult(xmlhttp.responseText);
}
}
}
var url = "checkUser?username=" + user;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
function clear() {
document.getElementById("result").innerHTML = "";
}
function createXML() {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}
function setResult(result) {
var res = document.getElementById("result");
if(result == 'true') {
res.innerHTML = "<font color='black'>恭喜你该用户可以使用</font>";
}else {
res.innerHTML = "<font color='red'>对不起该用户已经存在</font>";
}
}
</script>
</head>
<body>
<input type="text" id="id" onchange="checkUser();"/><span id="result"></span>
</body>
</html>
checkUser.java代码如下:
package com.moom;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class checkUser extends HttpServlet {
private static List<String> users = new ArrayList<String>();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
String username = request.getParameter("username");
if(users.contains(username)) {
out.print("false");
}else {
out.print("true");
}
out.flush();
out.close();
}
public void init(ServletConfig arg0) throws ServletException {
users.add("100");
users.add("101");
users.add("102");
super.init(arg0);
}
}
例子二:动态加载查询用户,根据下拉列表选择的年份获取当年注册的用户
Userlist.jsp代码如下:
<%@ page language="java" pageEncoding="utf-8"%>
<html>
<head>
<script type="text/javascript">
var xmlhttp;
function getUsers() {
//每次在获取前先清除原有的数据
clear();
var year = document.getElementById("year").value;
xmlhttp = createXML();
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4) {//readystate 为4即数据传输结束
if(xmlhttp.status == 200){
setUsers(); //把获取到的用户设置到option中
}
}
}
var url = "getUsers?year=" + year;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
function clear() {
var users = document.getElementById("user");
//循环删除数据
while(users.childNodes.length) {
users.removeChild(users.childNodes[0]);
}
}
function createXML() {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}
function setUsers() {
//先添加一个Option子节点,在给option添加一个文本子节点
var users = xmlhttp.responseXML.getElementsByTagName("user");
var us = document.getElementById("user");
for(var i=0; i<users.length; i++) {
var u = document.createElement("<option>");
var text = document.createTextNode(users[i].firstChild.data);
u.appendChild(text);
us.appendChild(u);
}
}
</script>
</head>
<body>
<select id="year" name="year" onchange="getUsers();">
<option value="">请选择年份</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
</select>
<select id="user" name="user">
<option value="">请选择人员</option>
</select>
</body>
</html>
服务器端的JAVA代码如下:
package com.moom;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class getUsers extends HttpServlet {
private static List<String> years = new ArrayList<String>();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/xml");
response.setCharacterEncoding("utf-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
String year = request.getParameter("year");
out.print("<?xml version='1.0' encoding='UTF-8'?>");
out.print("<users>");
if(!years.contains(year)) {
out.print("<user>没有用户</user>");
}else {
if(year.equals("2005")) {
out.print("<user>张三</user>");
out.print("<user>李四</user>");
out.print("<user>王五</user>");
}else if(year.equals("2006")) {
out.print("<user>李好</user>");
out.print("<user>成周</user>");
out.print("<user>吴浩</user>");
}else if(year.equals("2007")) {
out.print("<user>生成</user>");
out.print("<user>雨果</user>");
out.print("<user>美如</user>");
}else if(year.equals("2008")) {
out.print("<user>张洁</user>");
out.print("<user>乘风</user>");
out.print("<user>可是</user>");
}
}
out.print("</users>");
out.flush();
out.close();
}
public void init(ServletConfig arg0) throws ServletException {
years.add("2005");
years.add("2006");
years.add("2007");
years.add("2008");
super.init(arg0);
}
}
例子三:动态刷新数据,在实际的应用中,很多时候页面只是一部分需要定时的刷新,在以前都是通过手动刷新的方式来刷新页面,显然不是很合理,速度也不是很快,有了AJAX,只需要对需要刷新的地方做一个定时器,每到时间就调用一次刷新函数,获取最新数据,在利用DOM把获取到的最新数据反映到HTML页面当中去。
JS中利用setTimeOut(“method”,time):来设置定时任务,只要设置要在给定的time时间下,就会调用method函数,Method函数等于就相当于发出响应,获取服务器最新数据,拿到数据利用DOM对象渲染页面。
例子四:进度条的制作
主要也是通过定时的发送请求给服务器,然后服务器返回任务完成比例的百分比,客户端通过JS和DOM再去渲染页面,表示结果,进度条的显示主要也是通过百分比去控制页面元素的颜色显示来动态的感觉到进度的变化。
例子五:调用WEB服务,利用AJAX可以去调用别的系统中的WEB服务,返回结果进行解析。
例子六:动态表单填写,在购物的时候,用户的购物信息一般是确定的,可以在用户填上用户名之后,就用AJAX调用后台查询出用户详细信息,利用JS DOM渲染 页面,把用户的详细信息填入相应的表单。
分享到:
相关推荐
ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础...
ajax 基础教程ajax 基础教程ajax 基础教程ajax 基础教程ajax 基础教程ajax 基础教程ajax 基础教程ajax 基础教程ajax 基础教程ajax 基础教程ajax 基础教程ajax 基础教程ajax 基础教程ajax 基础教程ajax 基础教程ajax ...
精通Ajax——基础概念、核心技术与典型案例 人民邮电出版社 本书主要介绍Ajax技术的组成元素,涉及JavaScript、CSS、DOM、XMLHTTP和XML等内容,其中详细介绍了JavaScript客户端语言,它是Ajax技术的核心组成,是...
ajaxjichu,ajax基础1
## **二、Ajax核心技术** 1. **XMLHttpRequest对象**:创建并使用XMLHttpRequest对象是Ajax的核心步骤,通过open()方法设置请求类型、URL和异步模式,send()方法发送请求。 2. **事件处理**:监听XMLHttpRequest...
对于Ajax有一个误解:能够实现这么酷的功能,JavaScript代码肯定是很难实现和维护...注意,Ajax是一 种JavaScript工具,因此当尝试理解Ajax类型的应用程序时,对JavaScript基础知识的掌握就尤为 重要.让我们从基础知识开始.
【Ajax 在线聊天室】 Ajax(Asynchronous JavaScript and XML)技术是现代网页开发中的关键组成部分,它使得网页可以在不刷新整个页面的情况下与服务器进行数据交换,显著提升了用户体验。"Ajax在线聊天室"就是一个...
**Ajax(Asynchronous JavaScript and XML)基础** Ajax 是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这种技术的核心是JavaScript,...
**Ajax基础入门简介** Ajax(Asynchronous JavaScript and XML)是一种用于创建快速、动态网页的技术,它使得网页可以在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容。这一技术的出现极大地提升...
**第二章 - JavaScript与Ajax** 这一章深入讲解JavaScript在Ajax中的角色。将学习如何使用JavaScript创建和发送Ajax请求,处理响应数据,以及如何处理可能出现的错误。同时,也会涉及JSON(JavaScript Object ...
原书名:Foundations of Ajax 原出版社: Apress 作者: (美)Ryan Asleson,Nathaniel T.Schutta 译者: 金灵 等 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:7115144818 上架时间:2006-2-14 ...
#### 二、AJAX的工作原理 - **核心对象**:`XMLHttpRequest`,用于在后台与服务器交换数据。 - **流程**: 1. 创建`XMLHttpRequest`对象。 2. 设置请求类型、URL及是否异步处理。 3. 发送HTTP请求到服务器。 4. ...
Ajax中文基础教程Ajax中文基础教程Ajax中文基础教程Ajax中文基础教程Ajax中文基础教程Ajax中文基础教程Ajax中文基础教程
**AJAX基础详解** 在现代Web开发中,AJAX(Asynchronous JavaScript and XML)是一种核心技术,它使得网页能够实现异步数据交换,无需刷新整个页面即可更新部分内容。本教程将深入探讨AJAX的基础知识,帮助你理解其...
Ajax.基础教程。包含Ajax的基本知识,是Ajax初学者必备的教材。
### 第二章:创建第一个Ajax请求 一个基本的Ajax请求通常涉及以下几个步骤: 1. 创建XMLHttpRequest对象。 2. 配置请求,如URL、方法(GET或POST)、同步/异步等。 3. 打开连接到服务器的请求。 4. 发送数据(如果...
本书重点介绍Ajax及相关的工具和技术,主要内容包括XMLHttpRequest对象及其属性和方法、发送请求和处理响应、构建完备的Ajax开发工具、使用JsUnit测试JavaScript、分析JavaScript调试工具和技术,以及Ajax开发模式和...
学习ajax基础知识,让自己的前端技术更上一层,学会与后台交互
《Ajax基础教程.chm》 Ajax技术可以提供高度交互的Web应用,给予用户更丰富的页面浏览体验。本书重点介绍Ajax及相关的工具和技术,主要内容包括XMLHttpRequest对象及其属性和方法、发送请求和处理响应、构建完备的...
Ajax中文基础教程2Ajax中文基础教程2Ajax中文基础教程2Ajax中文基础教程2Ajax中文基础教程2Ajax中文基础教程2