天天看点

ajax/dwr/struts实例开发(转)

2005是Ajax最火爆的年份,以gmail为先驱的Ajax应用已经逐渐深入人心了。也许这就是所谓的轮回吧,计算机界面的设计从最初瘦到胖再到瘦,如今又要开始胖了。不过,在web界面的胖与之前的胖还是有很多区别的,web界面的胖主要依赖于DHML和Javascript来实现。这也是本文的来由了,相信很多OO的开发人员都不愿与页面层的效果打交道,尤其是Javascript的这样的开发语言,我也是其中之一了,非常不喜欢 Javascript,语法松散,结构复杂。反正是不喜欢了,但是在web时代,既然流行胖子,想不用Javascript是不可能的了,那么怎么样来简化Ajax的开发呢?DWR由此延生了,他封装了XMLHttpRequest,直接调用服务端的方法,省了好多Javascript啊^_^

Struts虽然已经开始开下陡路,但底子厚,将DWR与Struts结合依然会是大多数开发者的选择。

本文分两部分:框架介绍和实例开发。先来:

第一部分 框架介绍

一、Ajax介绍

Ajax--Asynchronous JavaScript and XML,异步JavaScript和XML。

名字中已经包含Ajax的组成部分:异步处理XMLHttpRequest,JavaScript,XML。

其中:

1、XMLHttpRequest是Ajax的关键部分,正是由于他的存在,才使得胖子越来越吃香了。

2、JavaScript是Ajax的必备部分,没有他还玩个屁

3、XML是Ajax数据格式的推荐方式,但也可以不用

当然还少不了CSS,有了CSS使得在Ajax中更容易修改用户的界面

Ajax的细节和样例使用就不多说了,N多的资源,自己找吧。

二、DWR介绍

DWR-Direct Web Remote,翻译过来应该是直接远程网页访问。(这个Web一直找不到好的词语来表达,这里就用网页吧)

如名字所述,DWR的主要特点就是可以在Ajax中直接调用服务器上的方法,很奇妙吧。就是说,不需要通过URL来告诉服务来处理,而是直接在Javascript中调用类的方法,并返回数据。

DWR简化了Ajax的开发:

1、封装了Ajax中的使用,不再需要直接使用XMLHttpRequest了,这可是非常重要的,减少了好多Javascript呀

2、通过回调函数的方式,简化了错误处理及返回数据的处理。

3、直接调用服务器类的方法,不再需要通过URL方式,也省了不少的事。

DWR的主要部件有:dwr.xml/engine.js/util.js,前者是DWR的Servlet使用的配置文件,后两者DWR替我们封装的Ajax的代码,当然也提供了其他有用的功能。

三、Struts介绍

Struts还用介绍吗?没听说过?那就不用往下看,休息休息吧^_^

这里就说一下在DWR如何调用Struts中Action的方法吧,说白了,是不可能的。这不是白说吗#[email protected][email protected]%@#

实际上是这样的,虽然DWR支持方法的调用,但ActionForward/ActionForm/ActionMap这些东西如何在DWR调用方法前生成呢?我也不知道,所以DWR对Struts的支持实际上就是要重构Action中的方法,去掉上面的东西,然后就可以了(这是DWR说的,可不是我说的 ^_^)。

看了上面的一小通介绍,不知道大家有没有什么感觉,我也觉得写得太少了,可能看了跟没看差不多。不过这里主要是想大家对这些概念有个了解。接下来的第二部分,将会以实例开发的方式来写,这样就更容易依样画葫芦了(我也比较喜欢这样的方式)。

继续阅读