第12章Struts2对Ajax的支持
1、Ajax是Web2.0的核心技术,它采用了异步交互机制避免了用户对服务器相应的等待。Struts2框架也提供了Ajax技术,主要是通过Dojo框架和DWR框架来实现。其中Dojo提供了大量而丰富的组件和页面效果。
2、Ajax全称AsynchronousJjavaScript and XML,是有多项技术组合而成的。
使用XHTML和CSS来呈现数据
使用DOM实现动态显示和交互
使用XML和XSTL实现数据交换和操作
使用XMLHttpRequest呈现异步数据的发送和接收
使用JavaScript技术将XHTML、DOM、XML和XMLHttpRequest进行绑定
3、Ajax应用程序在用户和服务器之间引入了一个中间层--Ajax引擎,Ajax引擎允许用户与服务器的web程序之间的异步交互。
4、在创建XMLHttpRquest对象时,由于不同浏览器下的实现不同因此需要通过判断区分什么浏览器使用怎样的创建语句。如果是IE,那么久调用ActiceX插件来创建,如果不是IE,那么就通过JavaScript对象来创建。
5、XMLHttpRequest对象的方法与属性
abort()用于取消当前的请求。
getAllResponseHeaders()用于获取响应的所有HTTP头。使用格式:String getAllResponseHeaders()
getResponseHeader()该方法用于从响应信息指定的HTTP头。使用格式如下:String getResponseHeader(String header)该方法有一个参数header,用来表示希望得到哪一个首部值,并且会把这个值作为一个字符串返回。
open()该方法用于创建一个新的HTTP请求,并指定此请求的方法、URL以及验证信息。使用格式:void open(String method, String url, boolean asynch, String username, String password),其中method和url两个参数是必选的,其他为可选参数。Bolean asynch置为true表示异步处理。
Send()该方法用于发送请求到HTTO服务器并接收回应。Void send(String content)其中参数表示发送的内容,该参数可选。
setRequestHeader()用于单独指定请求的某个HTTP头 void setRequestHeader(String header, String value),header表示设置的首部;参数value表示用于首部中防止的值。在使用该方法之前必须调用open()方法创建一个新的HTTP请求。
6、可以将XML作为数据的载体,具体事例见eclipse。
7、JSON即JavaScript object Natation,他是一种轻量级的数据交换格式,非常适合于服务器与JavaScript的交互。由于json天生就是为JavaScript准备的,因此JSON的数据格式非常简单,可以传输一个简单的String,Number,Boolean也可以传递一个数组后者一个复杂的object对象。
1)对象用“{}”包含的一系列无序的键值对表示的,相当于java中的Map<String, Object>例如:
<script type=”text/javascript>
var user={“username”:”zhangsan”, “sex”:”男”};
document.getElementBById(“divid”).innerHTML=user.userName;
</script>
2)数组使用“[]”包含在内
<script type=”text/javascript>
var user={“wuhu”, “beijing”,”shanghai”};
</script>
3)值可以是双引号括起来的的字符串(string)、数值(number)、true、false、null、对象或者数组,这些可以嵌套。
4)字符串(string)是由双引号括起来的任意数量Unicode字符集合,使用反斜杠(\)转义
5)数值(number)与java中的数值非常相似,但不区分整型值和浮点型值,也不支持八进制和十六进制格式。
8、使用Dojo实现Ajax应用
9、Ajax输入校验:
10、Ajax主题中的标签:
(1)div:用来在页面中生成一个div元素,可以动态的从服务器获取数据。
(2)a:通过Ajax技术,更新和面中一个或者多个元素的内容
(3)Submit:通过Ajax技术,更新页面中一个或者多个元素的内容,或者提交一个表单。
(4)tabbedPanel:用来生成一个Tab页,Tab页中可以包含静态或者动态的div标签内容。
Autocompleter:用来生成一个带下拉安妮的单上文本框,页面加载时,生成下拉列表中的内容。