【java项目实践】详解Ajax工作原理以及实现异步验证用户名是否存在+源码下载(java版)

一年前,从不知道Ajax是什么,伴随着不断的积累,到现在经常使用,逐渐有了深入的认识。今天,如果想开发一个更加人性化,友好,无刷新,交互性更强的网页,那您的目标一定是Ajax。

介绍

在详细讨论Ajax是什么之前,先让我们花一分钟了解一下Ajax做什么。如图所示:

如上图展示给我们的就是使用Ajax技术实现的效果。伴随着web应用的越来越强大而出现的是等待,等待服务器响应,等待浏览器刷新,等待请求返回和生成新的页面成为了程序员们的最最头疼的难题。随着Ajax的出现使web应用程序变得更完善,更友好。

好,还等什么呢?让我们来一起看看Ajax的强大功能。

1、什么是Ajax

Ajax的全称是:Asynchronous  JavaScript  +  XML=异步 JavaScript + XML

从Ajax的全称我们可以看出,Ajax不是一个技术,它是几种技术的结合体,每种技术都有其独特之处,合在一起就成为了功能强大的新技术,用于创建快速动态网页的技术。因此,Ajax也有一个时髦的术语“旧貌换新颜”。

2、Ajax包括:

1、HTML,用于建立web表单

2、DOM,用于动态显示和交互

3、XML,使用XML做数据交互和操作

4、XmlHttpRequest,进行异步数据接收

5、JavaScript,将它们紧密的结合在一起

相信您对上面的技术都很熟悉,最难是创建XMLHttpRequest对象,大家看我的一篇博文就好,里面详细介绍了它是什么,以及五步创建法,猛戳这里

Ajax工作原理

我们通过两张图以往传统的Web应用程序和使用Ajax应用程序的原理图,来解释一下Ajax的工作原理,如下图所示:

图1是以往传统的Web应用程序的原理图,由客户端向服务器提交页面请求,再由服务器通过HTTP传给客户端生成浏览页面。服务器端承担大量的工作,客户端只负责显示。

图1.传统的Web应用程序的原理图

图2使用Ajax应用程序的工作原理如下图,可见通过Ajax在浏览器与用户交互方面有了很大改进,用户不用为提交Form表单而长时间等待服务器响应,提高用户体验度,而且通过Ajax也可以开发出更加华丽的Web交互页面。客户端界面和Ajax引擎都是在客户端运行,这样大量的服务器工作可以在Ajax引擎处实现,减轻了服务器端的负担。

图2.使用Ajax应用程序的原理图

Ajax的优缺点:

Ajax给我们带来的好处,大家都有切身体会,在这里我只是简单的讲几点:

优点:

 

1.最大的一点是页面无刷新,用户的体验度更好。

2.异步与服务器交互,不需要打断用户操作,具有更快的响应能力。

3.减轻服务器和带宽的负担,节约空间和成本,ajax是“按需取数据”,可以最大程度的减轻对服务器造成的负担。

4.基于标准化的并被广泛应用的技术,不需要下载插件或者小程序。

Ajax具有很多的优点,正是这些优点也反应了它的缺点(当然这里缺点可以克服)。

缺点:

1.安全问题

2.对搜索引擎的支持比较弱。

3.破坏了程序的异常处理机制。

4.违背了url和资源定位的初衷。

实战

一个简单,但非常实用的例子:java版异步验证用户名是否存在

先给大家看一下实现的效果,下面给大家用代码实现:

JS部分的代码:

<script type="text/javascript">
	var xmlHttp;

	function createXMLHttpRequest() {
		//表示当前浏览器不是ie,如ns,firefox
		if(window.XMLHttpRequest) {
			xmlHttp = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	function validate(field) {
		if (trim(field.value).length != 0) {
			//创建Ajax核心对象XMLHttpRequest
			createXMLHttpRequest();

			var url = "user_validate.jsp?userId=" + trim(field.value) + "&time=" + new Date().getTime();

			//设置请求方式为GET,设置请求的URL,设置为异步提交
			xmlHttp.open("GET", url, true);

			//将方法地址复制给onreadystatechange属性
			//类似于电话号码
			xmlHttp.onreadystatechange=callback;

			//将设置信息发送到Ajax引擎
			xmlHttp.send(null);
		} else {
			document.getElementById("spanUserId").innerHTML = "";
		}
	}
	//回调函数
	function callback() {

		//Ajax引擎状态为成功
		if (xmlHttp.readyState == 4) {
			//HTTP协议状态为成功
			if (xmlHttp.status == 200) {
				if (trim(xmlHttp.responseText) != "") {
					document.getElementById("spanUserId").innerHTML = "<font color='red'>" + xmlHttp.responseText + "</font>"
				}else {
					document.getElementById("spanUserId").innerHTML = "";
				}
			}else {
				alert("请求失败,错误码=" + xmlHttp.status);
			}
		}
	}
</script>

提交到user_validate.jsp页面的代码:

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%@ page import="sysmgr.manager.*" %>

<%
	String userId = request.getParameter("userId");
	if (UserManager.getInstance().findUserById(userId) != null) {
		out.println("用户代码[" + userId + "]已经存在!");
	}
%>

访问数据库部分的代码,我们就不再这里展示了,大家可以到查看源码

总结

Web开发一直在追求界面友好,人性化,较高的用户体验度以及更加美观等等,我相信只要从点点滴滴做起,任何问题都不是问题。

【java项目实践】详解Ajax工作原理以及实现异步验证用户名是否存在+源码下载(java版)

时间: 2024-10-03 18:12:14

【java项目实践】详解Ajax工作原理以及实现异步验证用户名是否存在+源码下载(java版)的相关文章

【java项目实践】具体解释Ajax工作原理以及实现异步验证username是否存在+源代码下载(java版)

一年前,从不知道Ajax是什么,伴随着不断的积累,到如今常常使用,逐渐有了深入的认识. 今天,假设想开发一个更加人性化,友好,无刷新,交互性更强的网页,那您的目标一定是Ajax. 介绍 在具体讨论Ajax是什么之前,先让我们花一分钟了解一下Ajax做什么.如图所看到的: 如上图展示给我们的就是使用Ajax技术实现的效果.伴随着web应用的越来越强大而出现的是等待.等待server响应,等待浏览器刷新.等待请求返回和生成新的页面成为了程序猿们的最最头疼的难题.随着Ajax的出现使web应用程序变得

Cocos2d-x手机游戏开发与项目实践详解_随书代码

Cocos2d-x手机游戏开发与项目实战详解_随书代码 作者:沈大海  由于原作者共享的资源为UTF-8字符编码,下载后解压在win下显示乱码或还出现文件不全问题,现完整整理,解决所有乱码问题,供大家下载. 下载地址:http://download.csdn.net/detail/oyangyufu/7665049 Cocos2d-x手机游戏开发与项目实践详解_随书代码

h--5--菠菜源码下载java基础概念

1.第一个应用程序:Hello World!package my.xkyy.lsc;public class HelloWorld {public static void main(String[] args) { System.out.println("hello wrold!");}}2.数组:int[] a=new int[100];3.字节(byte):8位二进制数4.UTF-8编码:一个英文字符等于一个字节,h--5--菠菜源码下载QQ:2152876294 网址diguay

Java 详解 JVM 工作原理和流程

作为一名Java使用者,掌握JVM的体系结构也是必须的.说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应用程序接口(JavaAPI).它们的关系如下图所示: 运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执

(转)Java 详解 JVM 工作原理和流程

作为一名Java使用者,掌握JVM的体系结构也是必须的.说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应用程序接口(Java API).它们的关系如下图所示: 运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码

详解JVM工作原理和特点

在我们运行和调试Java程序的时候,经常会提到一个JVM的概念.本文将为大家讲解JVM工作原理和特点,希望对大家有所帮助. AD:网+线下沙龙 | 移动APP模式创新:给你一个做APP的理由>> JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例 4.调用JNIEnv实例装载并处理class类. 在我们运行和调

纯干货详解iptables工作原理以及使用方法

简介 网络中的防火墙,是一种将内部和外部网络分开的方法,是一种隔离技术.防火墙在内网与外网通信时进行访问控制,依据所设置的规则对数据包作出判断,最大限度地阻止网络中不法分子破坏企业网络,从而加强了企业网络安全. 防火墙的分类 硬件防火墙,如思科的ASA防火墙,H3C的Secpath防火墙等软件防火墙,如iptables.firewalld等 Linux包过滤防火墙简介 1.Linux操作系统中默认内置一个软件防火墙,即iptables防火墙2.netfilter位于Linux内核中的包过滤功能体

SSM框架 SSM项目源码 SSM源码 下载 java框架整合Springmvc+mybatis+shiro+bootstrap

获取[下载地址]  QQ: 313596790A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势D 集成安全权限框架shiro  Shir

《21个项目玩转深度学习:基于TensorFlow的实践详解》高清带标签PDF版本学习下载

1 写在前面 <21个项目玩转深度学习——基于TensorFlow的实践详解>以实践为导向,深入介绍了深度学习技术和TensorFlow框架编程内容. 通过本书,读者可以训练自己的图像识别模型.进行目标检测和人脸识别.完成一个风格迁移应用,还可以使用神经网络生成图像和文本,进行时间序列预测.搭建机器翻译引擎,训练机器玩游戏.全书共包含21个项目,分为深度卷积网络.RNN网络.深度强化学习三部分.读者可以在自己动手实践的过程中找到学习的乐趣,了解算法和编程框架的细节,让学习深度学习算法和Tens