[加入收藏]
[设为首页]
 
  首 页 | 文档集锦 | 精品荟萃 | 专 栏 | 搜 索 | 论 坛 2024.04.19  
  枫林在线 >> DWR让Ajax如此简单(1) 本文已被浏览8983  
 
DWR让Ajax如此简单(1) [转载]
(2005-12-17 11:22:04) 转载:渺小
http://searchwebservices.techtarget.com.cn/tips/261/2183761.shtml 

DWR让Ajax如此简单

【2005-11-07 14:10】【】【Matrix】  

Ajax,或者说是异步JavaScript和XML,描述了一种使用混合了HTML(或XHTML)和
层叠样
式表作为表达信息,来创建交互式的Web应用的开发技术;文档对象模型(DOM),Ja
vaScrip
t,动态地显示和与表达信息进行交互;并且,XMLHttpRequest对象与Web服务器异
步地交
换和处理数据。

  因特网上许多例子展示了在一个HTML文件内部使用XMLHttpRequest与服务器
端进行
交互的必要的步骤。当手工地编写和维护XMLHttpRequest代码时,开发者必须处
理许多
潜在的问题,特别是类似于跨浏览器的DOM实现的兼容性这样的问题。这将会导致
在编码
和调试Javascript代码上面花费数不清的时间,这显然对开发者来说很不友好。


  DWR(直接Web远程控制)项目是在Apache许可下的一个开源的解决方案,它供
给那些
想要以一种简单的方式使用Ajax和XMLHttpRequest的开发者。它具有一套Javasc
ript功
能集,它们把从HTML页面调用应用服务器上的Java对象的方法简化了。它操控不
同类型
的参数,并同时保持了HTML代码的可读性。

  DWR不是对一个设计的插入,也不强迫对象使用任何种类的继承结构。它和s
ervlet
框架内的应用配合的很好。对缺少DHTML编程经验的开发者来说,DWR也提供了一
个JavaS
cript库包含了经常使用的DHTML任务,如组装表,用item填充select下拉框,改
变HTML
元素的内容,如<div>和<span> 


  DWR网站是详尽的并且有大量的文档,这也是这篇文章的基础。一些例子用来
展示DW
R如何使用和用它的库可以完成什么样的工作。

  这篇文章让读者看到了一个使用了DWR的Web应用是如何一步步建立的。我会
展示创
建这个简单的示例应用的必要的细节,这个应用是可下载的并且可以在你的环境
中布署
来看看DWR如何工作。

  注意:找到有关Ajax的信息并不困难;网页上有几篇文章和博客的条目涵盖了
这个主
题,每一个都试图指出和评论这个概念的不同的方面。在资源部分,你会找到一
些有趣
的指向示例和文章的链接,来学习Ajax的更多的内容。

  示例应用

  这篇文章使用的示例应用模拟了多伦多的一个公寓出租搜索引擎。用户可以
在搜索
前选择一组搜索标准。为了提高交互性,Ajax中以下两种情况下使用:

  ·应用通告用户配合他的选择会返回多少搜索结果。这个数字是实时更新的
-使用Aj
ax-当用户选择的卧室和浴室的数量,或者价格范围变化时。当符合标准的搜索结
果没有
或太多时,用户就没有必要点击搜索按纽。

  ·数据库查询并取回结果是由Ajax完成的。当用户按下显示结果按钮时,数
据库执
行搜索。这样,应用看起来更具响应了,而整个页面不需要重载来显示结果。

  数据库

  我们使用的数据库是HSQL,它是一种占用资源很小的Java SQL数据库引擎,
可以不
需要安装和配置的与Web应用捆绑在一起。一个SQL文件被用来在Web应用的上下文
启动时
创建一个内存中的表并添加一些记录。

  Java类

  应用包含了两个主要的类叫Apartment和ApartmentDAO。Apartment.java类是
一个有
着属性和getter/setter方法的简单的Java类。ApartmentDAO.java是数据访问类
,用来
查询数据库并基于用户的搜索标准来返回信息。ApartmentDAO类的实现的直接了
当的;它
直接使用了Java数据库联接调用来得到公寓的总数和符合用户请求的可用公寓的
列表。

  DWR配置和使用

  设置DWR的使用是简单的:将DWR的jar文件拷入Web应用的WEB-INF/lib目录中
,在web
.xml中增加一个servlet声明,并创建DWR的配置文件。DWR的分发中需要使用一个
单独的
jar文件。你必须将DWR servlet加到应用的WEB-INF/web.xml中布署描述段中去。


    <servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <display-name>DWR Servlet</display-name>
        <description>Direct Web Remoter Servlet</description&
gt;
        <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servle
t-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>

========== * * * * * ==========
已有0人发表评论
相关评论】 【关闭窗口
关于我们 - 联系我们 - 隐私保护 - 帮助信息
枫林在线 版权所有
Copyright © 2003-2012 www.FengLin.info, All rights reserved.