| Blog信息 |
|
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7649188 建立时间:2006年5月29日 |

| |
|
[DWR(Ajax)]DWR1.1.1的基本应用 软件技术, 电脑与网络
lhwork 发表于 2006/7/8 18:27:30 |
| DWR(直接Web远程控制)项目是在Apache许可下的一个开源的解决方案,它供给那些想要以一种简单的方式使用AJAX和
XMLHttpRequest的开发者。它具有一套Javascript功能集,它们把从HTML页面调用应用服务器上的Java对象的方法简化了。它操
控不同类型的参数,并同时保持了HTML代码的可读性。DWR不是对一个设计的插入,也不强迫对象使用任何种类的继承结构。它和
servlet框架内的应用配合的很好。对缺少DHTML编程经验的开发者来说,DWR也提供了一个JavaScript库包含了经常使用的DHTML任
务,如组装表,用item填充select下拉框,改变HTML元素的内容,如<div>和<span>DWR网站是详尽的并且有大量的文档,这也是这篇文章的基础。一些例子用来展示DWR如何使用和用它的库可以完成什么样的工作。首先要加DWR的JAR包到你的CLASSPATH中或者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> <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> <init-param> <param-name>debug</param-name> //当DWR在调试模式时, <param-value>true</param-value> //你可以从HTMl网页中看到所有的可访问的Java对象 </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>现
在你必须让DWR知道通过XMLHttpRequest对象,什么对象将会接收请求。这个任务由叫做dwr.xml的配置文件来完成。在配置文件中,定义
了DWR允许你从网页中调用的对象。从设计上讲,DWR允许访问所有公布类的公共方法,但在我们的例子中,我们只允许访问几个方法。下面是我们示例的配置
文件:<dwr> //初始化一个转换器,在DWR的默认里面没有我们需要的转换的时候 可以用到 <init> <converter id="conver" class="com.xxx.util.*" /> </init> <allow> //创建一个JAVABEAN 转换为JAVASCRIPT 对象 因为DWR默认的不会转换普通bean //不带param 默认访问所有该BEAN的所有属性 <convert converter="bean" match="com.xxx.entity.Comments"> <param name="include" value="id,articleId,author,email,content,time,status" /> </convert> //新建一个存在的方法,默认访问该类所有的方法,加上include method就只访问列出的方法 <create creator="new" javascript="ApartmentDAO" class="dwr.sample.ApartmentDAO"> <include method="findApartments"/> <include method="countApartments"/> </create>//结合SPRING的BEAN <create creator="spring" javascript="pageGenerationService"> <param name="beanName" value="pageGenerationService" /> </create> </allow></dwr>配
置完成后,你就可以启动你的Web应用了,这时DWR会为从你的HTML或Java服务器端页面(JSP)上调用所需方法作好准备,并不需要你创建
JavaScript文件。在jsp文件中, 我们必须增加由DWR提供的JavaScript接口,还有DWR引擎,加入以下三行到我们的代码中:<script src='dwr/interface/ApartmentDAO.js'></script><script src='dwr/interface/pageGenerationService.js'></script> <script src='dwr/engine.js'></script> <script src='dwr/util.js'></script>然后你就可以在JAVASCRITP中调用了pageGenerationService.method();ApartmentDAO.findApartments();ApartmentDAO.countApartments();安全因素为
了保持示例的简要,ApartmentDAO类尽可能的保持简单,但这样的一个类通常有一组设置方法来操作数据,如insert(),
update()和delete()。DWR暴露了所有公共方法给所有的HTML页面调用。出于安全的原因,像这样暴露你的数据访问层是不明智的。开发者
可以创建一个门面来集中所有JavaScript函数与底层业务组件之间的通信,这样就限制了过多暴露的功能。 |
|
|