《研磨struts2》第十四章 对Ajax的支持 之 14.1 Ajax基础

14.1  Ajax基础

14.1.1 Ajax概述

Ajax(Asynchronous JavaScript And XML)技术,通常翻译成“异步JavaScript和xml”,它能让应用程序以异步的方式连接到服务器,等待服务器处理后获取返回值,从而实现无需刷新页面就可以与后台通讯的方式。

       Ajax技术其实是一个非常老的技术,2000年左右就已经有了,只不过一直没有得到重视,直到Google把这个技术应用到Gmail和Google Maps里面,其异步的功能特性迅速走红,从而引起业界广泛的关注,得到更多的应用。到了web2.0的时代,Ajax成为了web2.0的核心技术之一。

       Ajax的核心技术包括:

  • XMLHttpRequest对象:用来实现异步通讯的组件对象,是Ajax的核心技术
  • Javascript:Ajax的编程脚本,可以通过Javascript来操作Ajax
  • Dom(Document Object Model)模型:Javascript通过Dom跟页面进行交互
  • XML:可扩展标记语言,用来封装交互的数据

虽然xml是Ajax的核心技术之一,但是完全可以不使用xml,而且现在在实际项目开发中,也大有使用JSON来代替xml的趋势。

14.1.2 XMLHttpRequest对象

这里简单的介绍一下Ajax的这个核心对象的基本用法:

1:如何初始化

要使用XMLHttpRequest对象,首先就是要初始化这个对象,示例代码如下:

 

java代码:
  1. <script language="javascript">  
  2.     var myReq;    
  3.     function t1(){  
  4.         //对于IE浏览器,第一种方式  
  5.         myReq = new ActiveXObject("Msxml2.XMLHTTP");  
  6.         //对于IE浏览器,第二种方式  
  7.         myReq = new ActiveXObject("Microsoft.XMLHTTP");  
  8.           
  9.         //对于Mozilla浏览器  
  10.         myReq = new XMLHttpRequest();  
  11.     }  
  12. </script>  

2:XMLHttpRequest对象的属性


3:XMLHttpRequest对象的方法


14.1.3 Ajax示例

虽然不详细去讲述Ajax的知识,还是通过一个基本的示例来看看如何使用Ajax技术。更多Ajax的知识,有需要的朋友请参阅相应的Ajax资料。

       使用Ajax来实现一个输入校验的功能,用户填写数据,当光标离开输入框后,自动到后台去校验输入是否正确,并给出相应的提示信息。

1:先来实现后台的功能

       为了演示的简洁性,直接就在jsp里面实现。功能也很简单,就是判断用户的输入是否重复了,如果不重复,提示用户“输入正确”;如果重复了,提示用户“输入不正确,请重新输入”。

后台文件的名称为server.jsp,示例代码如下:

 

java代码:
  1. <%@ page contentType="text/html; charset=gb2312"%>  
  2. <%@ page import="java.util.*"%>  
  3. <head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"></head>  
  4. <%  
  5.     String account = request.getParameter("account");  
  6.       
  7.     //准备已经注册的数据,测试使用  
  8.     Set<String> set = new HashSet<String>();  
  9.     set.add("account1");  
  10.     set.add("account2");  
  11.     set.add("account3");  
  12.       
  13.     if(set.contains(account)){  
  14.         out.print("输入不正确,请重新输入");  
  15.     }else{  
  16.         out.print("输入正确");  
  17.     }         
  18. %>  

2:实现前台页面的功能

       在页面上除了简单的输入框之外,就是要实现Ajax的功能,当帐号信息输入完毕,光标离开的时候,提交到后台进行校验。

文件的名称为client.jsp,示例代码如下:

 

java代码:
  1. <%@ page contentType="text/html; charset=gb2312"%>  
  2. <head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"></head>  
  3. <script language="javascript">  
  4.     var myRequest;  
  5.     function t1(){  
  6.         //准备向后台传输的数据  
  7.         var account = document.getElementById("account").value;   
  8.         //Ajax  
  9.         myRequest = new ActiveXObject("Msxml2.XMLHTTP");  
  10.         myRequest.onreadystatechange = t2;  
  11.         myRequest.open("GET","server.jsp?account="+account,true);  
  12.         myRequest.send(null);  
  13.     }     
  14.     function t2(){  
  15.         if(myRequest.readyState==4){  
  16.             var ret = myRequest.responseText;             
  17.             //后续处理  
  18.             document.all("myDiv").innerHTML = ret;    
  19.         }  
  20.     }     
  21. </script>  
  22. <form action="" medhot="post">  
  23.     <table>  
  24.         <tr>  
  25.             <td colspan=3 align=center>新用户注册</td>  
  26.         </tr>  
  27.         <tr>  
  28.             <td>用户帐号:</td>  
  29.             <td><input type="text" id="account" name="account" onblur="t1();"><font color=red>*</font></td>  
  30.             <td><div id="myDiv"></div></td>  
  31.         </tr>  
  32.         <tr>  
  33.             <td>用户密码:</td>  
  34.             <td colspan=2><input type="password" id=""password" name="password"></td>  
  35.         </tr>  
  36.         <tr>  
  37.             <td>重复密码:</td>  
  38.             <td colspan=2><input type="password" id=""password2" name="password2"></td>  
  39.         </tr>  
  40.         <tr>  
  41.             <td colspan=3 align=center><input type="submit" value="保存注册信息"></td>  
  42.         </tr>  
  43.     </table>  
  44. </form>  

3:运行测试一下

       先输入一个正确的,运行结果如下:

图14.1  Ajax示例一

再来输入一个重复的,比如“account1”之类的,运行结果如下:

图14.2  Ajax示例二

通过上面的示例,大家可以初步体会一下Ajax实现的方式,以及无需刷新页面即可与后台交互的实现。

 

私塾在线网站原创《研磨struts2》系列

转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4128.html

欢迎访问http://sishuok.com获取更多内容

猜你喜欢

转载自rubbing-struts2.iteye.com/blog/1547285