Java Web Ajax技术

Ajax技术

Ajax(Asynchronous JavaScript and XML)是运用JavaScript和扩展语言(XML)实现浏览器与服务器通信的一种技术。

Ajax技术简介

Ajax实现浏览器与服务器异步交互技术 ,用户请求不需要刷新整个页面只需刷新局部页面,就能实现数据交互。主要设计以下几种技术。

  • 使用XHTML(HTML)和CSS构建标准化的展示层
  • 使用DOM进行动态显示和交互
  • 使用XML和XSLT进行数据交换和操作
  • 使用XMLHttpRequest异步获取数据
  • 使用JavaScript将所有元素绑定。

XMLHttpRequest对象

XMLHttpRequest对象是Ajax技术的核心技术之一。这个对象需要用JavaScript来创建

XMLHttpRequest对象的创建

不同的浏览器创建方式不同

	var xmlHttpRequest = null //声名XMLHttpRequest对象
	if(window.XMLHttpRequest){ //Mozilla,Safari,Opera,IE7等浏览器创建
		xmlHttpReqeust = new XMLHttpRequest();
	}else if(window.ActiveXObject){
				try{
					xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");//IE较新版本创建
				}catch(e){
					try{
						xmlHttpRequest = new ActiveObject("Microsoft.XMLHTTP");//IE较老版本
					}catch(e){}
				}
			}

XMLHttpRequest的方法和属性

  1. open(String request-type,String url,Boolean asynch,String name,String password):用于建立到服务器的连接。
  • request-type:发送请求的类型。get或post
  • url:要连接的服务器URL
  • asynch:若使用异步连接则为true,否则为false。默认true。
  • name:若需要身份验证,则指定用户名。
  • password:若需要密码,则指定密码。
  • 通常使用前三个参数
  1. send(String content):向服务器发送请求。
  • context:发送的内容
  1. setRequestHeader(String label,String value):发送请求前设置请求头。
  • label:若open()方法发送的请求类型为POST,则等于:“Content-type”。
  • value:若open()方法发送的请求类型为POST,则等于:“application/x-www-form-urlencoded”)。
  1. readyState属性:返回HTML的就绪状态。
  • 0:请求没有建立,open()方法没有调用。
  • 1:请求已经建立,open()方法已调用,但请求没有发送,send()方法没有调用。
  • 2:请求已发送,send()方法已经调用,但请求正在处理中。这里可以从响应得到内容的头部。
  • 3:请求已经处理,但服务器还没有响应。
  • 4:响应已经完成。
  1. status属性:返回服务器响应的状态码。
  • 200:一些顺利。
  • 404:页面不存在。
  • 403/401:所访问的数据受到保护或者禁止访问。
  1. onreadystatechange属性:用于指定XMLHTTPRequest对象的状态改变函数。
  2. responseText和responseXML属性:XMLHTTPRequest对成功返回的信息。
  • responseText:服务器返回的请求响应为文本,可将传回的信息当作字符串处理。
  • responseXML:服务器返回的XML类型的响应,可将传回的信息当XML文档使用。

XMLHttpRequest对象的运行周期

  1. Ajax应用从XMLHTTPRequest对象的创建开始。
  2. XMLHttpRequest对象发送完成。服务器有没有响应,需通过readyState属性判断。当readyState属性发生改变时,可onreadystatechange属性指定事件处理函数,这个函数称为回调函数。
  3. readyState=4&&status=200时,则表示服务器响应完成,且是正确的响应。

Ajax使用思路

  1. 创建XMLHttpRequest对象
  2. 指定响应处理函数
  3. 发送HTTP请求
  4. 处理服务器返回的信息

JavaScript创建Ajax技术

  1. Java Web 根目录 WebRoot目录下新建一个JS文件夹,创建一个Ajax.js文件,并且写下如下代码。
//声名XMLHttpRequest对象
var xmlHttpRequest = null;
//创建XMLHttpRequest对象函数
function createXHR(){
	try{
		xmlHttpRequest = new XMLHttpRequest();
	}catch(e1){
		var msxmlhttp=new Array("Msxml2.XMLHTTP.6.0",
								"Msxml2.XMLHTTP.5.0",
								"Msxml2.XMLHTTP.4.0",
								"Msxml2.XMLHTTP.3.0",
								"Msxml2.XMLHTTP",
								"Microsoft.XMLHTTP");
		for(var i=0;i<msxmlhttp.length;i++){
			try{
				xmlHttpRequest = new ActiveObject(msxmlhtt[i]);
				if(xmlHttpRequest!=null){break;}
			}catch(e2){}
		}
	}
	if(xmlHttpRequest==null){
		alert("不能创建Ajax对象");
	}
}
//发送客户端的请求函数
//url:请求的服务器地址
//param:需要传递的参数
//method:请求的方式(get/post)
//handler:回调函数
function sendRequest(url,param,method,handler){
	createXHR();
	if(!xmlHttpRequest) return false;
	xmlHttpRequest.onreadystatechange=handler;
	if(method=="GET"){
//GET方式,可以直接传递参数,且不需要修改请求头。
		xmlHttpRequest.open(method,url+'?'+params,true);
		xmlHttpRequest.send(null);
	}
	if(method=="POST"){
//POST方式,需要修改请求头,且在send()方法中传递参数。
		xmlHttpRequest.open(method,url,true);
		xmlHttpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		xmlHttpRequest.send(params);
	}
}

案例——异步表单验证用户名及其密码

index.jsp
在这里插入图片描述在这里插入图片描述
Servlet:FormCheck.java
在这里插入图片描述

案例——实现级联列表

业务处理Servlet:List.java
接受传递过来的省份,返回城市列表在这里插入图片描述

视图页面JSP:select.jsp
选择省份传递后台:
在这里插入图片描述
内嵌JS函数:
在这里插入图片描述

@syl 2021/06/30 15:48 晴 25° 抽烟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。所以各大互联网厂商都瞄准移动互联网这个潮流进行各大布局,经过多年的大浪淘沙,各种移动操作系统的不断面世,而目前市场占有率最高的就是微信小程序,本次开发一套基于微信小程序的生签到系统,有管理员,教师,学生三个角色。管理员功能有个人中心,学生管理,教师管理,签到管理,学生签到管理,班课信息管理,加入班课管理,请假信息管理,审批信息管理,销假信息管理,系统管理。教师和学生都可以在微信端注册和登录,教师可以管理签到信息,管理班课信息,审批请假信息,查看学生签到,查看加入班级,查看审批信息和销假信息。学生可以查看教师发布的学生签到信息,可以自己选择加入班课信息,添加请假信息,查看审批信息,进行销假操作。基于微信小程序的生签到系统服务端用Java开发的网站后台,接收并且处理微信小程序端传入的json数据,数据库用到了MySQL数据库作为数据的存储。这样就让用户用着方便快捷,都通过同一个后台进行业务处理,而后台又可以根据并发量做好部署,用硬件和软件进行协作,满足于数据的交互式处理,让用户的数据存储更安全,得到数据更方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值