思诚科技 seecen LOGO
咨询热线:0791-87557233
  首页 |   Java EE  
关于思诚
关注官方微信

面向Java程序员的Ajax:构建动态Java程序

来源:网络    更新时间:2014-12-3


  Ajax(即异步JavaScript和XML)是一种Web应用程序开发的手段,它采用客户端脚本与Web服务器交换数据。所以,不必采用会中断交互的完整页面刷新,就可以动态地更新Web页面。使用Ajax,可以创建更加丰富、更加动态的Web应用程序用户界面,其即时性与可用性甚至能够接近本机桌面应用程序。

  Ajax不是一项技术,而更像是一个模式——一种识别和描述有用的设计技术的方式。Ajax是新颖的,因为许多开发人员才刚刚开始知道它,但是所有实现Ajax应用程序的组件都已经存在若干年了。它目前受到重视是因为在2004和2005年出现了一些基于Ajax技术的非常棒的动态WebUI,最著名的就是Google的GMail和Maps应用程序,以及照片共享站点Flickr。这些用户界面具有足够的开创性,有些开发人员称之为“Web2.0”,因此对Ajax应用程序的兴趣飞速上升。

  在这个系列中,我将提供使用Ajax开发应用程序需要的全部工具。在第一篇文章中,我将解释Ajax背后的概念,演示为基于Java的Web应用程序创建Ajax界面的基本步骤。我将使用代码示例演示让Ajax应用程序如此动态的服务器端Java代码和客户端JavaScript。最后,我将指出Ajax方式的一些不足,以及在创建Ajax应用程序时应当考虑的一些更广的可用性和访问性问题。

  更好的购物车

  可以用Ajax增强传统的Web应用程序,通过消除页面装入从而简化交互。为了演示这一点,我采用一个简单的购物车示例,在向里面添加项目时,它会动态更新。这项技术如果整合到在线商店,那么用户可以持续地浏览和向购物车中添加项目,而不必在每次点击之后都等候完整的页面更新。虽然这篇文章中的有些代码特定于购物车示例,但是演示的技术可以应用于任何Ajax应用程序。清单1显示了购物车示例使用的有关HTML代码,整篇文章中都会使用这个HTML。

  清单1.购物车示例的有关片断

<!--Tableofproductsfromstore'scatalog,onerowperitem-->
<th>Name</th><th>Description</th><th>Price</th><th></th>
...
<tr>
<!--Itemdetails-->
<td>Hat</td><td>Stylishbowlerhat</td><td>$19.99</td>
<td>
<!--ClickbuttontoadditemtocartviaAjaxrequest-->
<buttononclick="addToCart('hat001')">AddtoCart</button>
</td>
</tr>
...

<!--Representationofshoppingcart,updatedasynchronously-->
<ulid="cart-contents">

<!--List-itemswillbeaddedhereforeachiteminthecart-->

</ul>

<!--Totalcostofitemsincartdisplayedinsidespanelement-->
Totalcost:<spanid="total">$0.00</span>
  Ajax往返过程

  Ajax交互开始于叫作XMLHttpRequest的JavaScript对象。顾名思义,它允许客户端脚本执行HTTP请求,并解析XML服务器响应。Ajax往返过程的第一步是创建XMLHttpRequest的实例。在XMLHttpRequest对象上设置请求使用的HTTP方法(GET或POST)以及目标URL。

  现在,您还记得Ajax的第一个a是代表异步(asynchronous)吗?在发送HTTP请求时,不想让浏览器挂着等候服务器响应。相反,您想让浏览器继续对用户与页面的交互进行响应,并在服务器响应到达时再进行处理。为了实现这个要求,可以在XMLHttpRequest上注册一个回调函数,然后异步地分派XMLHttpRequest。然后控制就会返回浏览器,当服务器响应到达时,会调用回调函数。

  在JavaWeb服务器上,请求同其他HttpServletRequest一样到达。在解析了请求参数之后,servlet调用必要的应用程序逻辑,把响应序列化成XML,并把XML写入HttpServletResponse。

  回到客户端时,现在调用注册在XMLHttpRequest上的回调函数,处理服务器返回的XML文档。最后,根据服务器返回的数据,用JavaScript操纵页面的HTMLDOM,把用户界面更新。图1是Ajax往返过程的顺序图。

  • 上一篇文章:

  • 下一篇文章:
  •  

    0791-87557233

    重视每个来电 珍惜您的时间
    思诚者开发沙龙
    江西思诚科技有限公司  赣ICP备17006097号  CopyRight©2014 - 2018