JSP的那些事儿(2)---- DWR2.0 的配置和使用

JSP的那些事儿(2)----DWR2.0 的配置和使用

分类: Web开发 JAVA 999人阅读 评论(0) 收藏 举报
 
 

      刚开始用JSP开发网站项目,发现下拉菜单级联不及ASP.NET那么便利,于是寻找JAVA中的AJAX框架,至于AJAX是什么,本文就不再叙述,而DWR是不得不说的一个亮点,在网络上找了很多资料,按照过程一步步的配置,结果发现还是没有显示,今天才终于获取成功,所以决定花点时间写本篇文章帮助“菜鸟一族”脱离不会配置和使用DWR的苦海。

如有什么意见可以提出。

      如有转载请注明:本文源自于blog.csdn.net/rocket5725

《DWR 2.0配置与使用》目录大致包括

1、DWR 2.0简介

2、DWR 2.0下载以及所需文件

3、DWR 2.0配置过程

4、DWR 2.0使用

5、DWR 2.0参考资料

********************************************************************

 

一、DWR 2.0简介

 

    DWR是一个可以允许你去创建AJAX WEB站点的JAVA开源库。它可以让你在浏览器中的Javascript代码调用Web服务器上的Java代码,就像在Java代码就在浏览器中一样。 DWR包含2个主要部分:
 一个运行在服务器端的Java Servlet,它处理请求并且向浏览器发回响应。
 运行在浏览器端的JavaScript,它发送请求而且还能动态更新网页。
DWR工作原理是通过动态把Java类生成为Javascript。它的代码就像Ajax魔法一样,你感觉调用就像发生在浏览器端,但是实际上代码调用发生在服务器端,DWR负责数据的传递和转换。这种从Java到JavaScript的远程调用功能的方式使DWR用起来有种非常像RMI或者SOAP的常规RPC机制,而且DWR的优点在于不需要任何的网页浏览器插件就能运行在网页上。 Java从根本上讲是同步机制,然而AJAX却是异步的。所以你调用远程方法时,当数据已经从网络上返回的时候,你要提供有反调 (callback) 功能的DWR。

这个图片显示了DWR如何选择一个下拉列表的内容作为JavaScript 的onclick事件的结果。

     DWR动态在JavaScript里生成一个AjaxService类,去匹配服务气端的代码。由eventHandler去调用它,然后DWR处理所有的远程细节,包括倒置 (converting) 所有的参数以及返回Javascript和Java之的值。在示例中,先在eventHandler方法里调用AjaxService的getOptions() 方法,然后通过反调 (callback) 方法populateList(data) 得到返回的数据,其中data就是String[]{"1", "2", "3"},最后再使用DWR utility 把data加入到下拉列表。 好了,DWR介绍完了,现在大家肯定很想知道如何做出第一个DWR吧!

 

二、DWR 2.0下载以及所需文件

 

目前dwr最高版本为Version 3.rc1,但其还不稳定,所以强力推荐使用DWR2.0或者更老版本1.0,具体下载的地址如下:

1、dwr2.0 jar包:https://dwr.dev.java.net/files/documents/2427/101132/dwr.jar

2、war事例:https://dwr.dev.java.net/files/documents/2427/101133/dwr.war

     war只是一个例子,直接放到tomcat/webapp下就可以使用,对于想立即感受dwr功能的用户可以直接下载使用。

3、dwr2.0必须文件commons-loggin.jar:commons-logging

     官网的原话是:From version 2.0, DWR also requires commons-logging.

     从2.0版本后必须使用该jar包,用户必须下载,否则无法正常使用,本人第一次配置失败就是没有认真阅读官方提供的文档。希望大家不要犯同样错误。

     把上面这些文件下载后,就可以开始进行配置工作了。

 

三、DWR 2.0配置过程

     先假设:http://localhost:8080/youproject/是一个在本机可以运行的应用程序。配置工作依次按照以下步骤操作:

    注意:以下的目录均为项目下的目录

    1、将dwr2.0 jar以及commons-loggin.jar拷贝到WEB-INF/lib下。

    2、修改WEB-INF/web.xml,在该文件添加以下内容:

    注意事项:要把<servlet>和其他<servlet>放在一起,<servlet-mapping>要和其他<servlet-mapping>放在一起 

  1. <servlet>  
  2.   <servlet-name>dwr-invoker</servlet-name>  
  3.   <display-name>DWR Servlet</display-name>  
  4.   <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>  
  5.   <init-param>  
  6.      <param-name>debug</param-name>  
  7.      <param-value>true</param-value>  
  8.   </init-param>  
  9. </servlet>  
  10.   
  11. <servlet-mapping>  
  12.   <servlet-name>dwr-invoker</servlet-name>  
  13.   <url-pattern>/dwr/*</url-pattern>  
  14. </servlet-mapping>  

<servlet> <servlet-name>dwr-invoker</servlet-name> <display-name>DWR Servlet</display-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-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>  

 

     3、在web.xml的目录下新建文件dwr.xml.添加内容如下:

  1. <?xml version="1.0" encoding="GBK"?>    
  2. <dwr>    
  3.     <allow>   
  4.     <create creator="new" javascript="JDate">   
  5.       <param name="class" value="java.util.Date"/>   
  6.     </create>   
  7.   </allow>   
  8. </dwr>  

<?xml version="1.0" encoding="GBK"?> <dwr> <allow> <create creator="new" javascript="JDate"> <param name="class" value="java.util.Date"/> </create> </allow> </dwr>    

 

      4、到此步为止,dwr的配置工作基本结束了,但是如果用户需要添加其他的class文件,直接在dwr.xml中添加即可。为方便测试,在此只添加java.util.Date类。    

    

四、DWR 2.0使用

 配置结束后,用户即可使用dwr2.0了,具体测试页面为:http://localhost:8080/youproject/dwr

 浏览页面如下: 

Classes known to DWR:

     JDate就是可以使用的类,用户点击它后可以进入测试页面进行测试该类中的所有方法。

Methods For: JDate (java.util.Date)

To use this class in your javascript you will need the following script includes:

  <script type='text/javascript' src='/app/dwr/interface/JDate.js'></script>
  <script type='text/javascript' src='/app/dwr/engine.js'></script>

In addition there is an optional utility script:

  <script type='text/javascript' src='/app/dwr/util.js'></script>

Replies from DWR are shown with a yellow background if they are simple or in an alert box otherwise.
The inputs are evaluated as Javascript so strings must be quoted before execution

 

    到此为止,dwr2.0测试成功。如果要在页面中使用dwr2.0,则必须注意上面的提示信息,需要添加几个js代码。

五、DWR 2.0参考资料

1、DWR官方网站:http://getahead.ltd.uk/dwr/
2、JavaScud Wiki:http://wiki.javascud.org/display/dwrcn/Home
3、IBM中国:http://www.ibm.com/developerworks/cn/

4、学习文章,推荐以下三篇文章,由林信良台湾的技术作家写的:
DWR 入門與應用(一):
http://blog.csdn.net/caterpillar_here/archive/2006/09/06/1186566.aspx
DWR 入門與應用(二):
http://blog.csdn.net/caterpillar_here/archive/2006/09/18/1239538.aspx
DWR 入門與應用(三):
http://blog.csdn.net/caterpillar_here/archive/2006/09/30/1311605.aspx

转载于:https://www.cnblogs.com/yuanmengnan/p/3565880.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DWR是Direct Web Remoting 的缩写。 DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单. DWR 是一个开放源码的使用 Apache 许可协议的解决方案,它包含服务器端 Java 库、一个 DWR servlet 以及 JavaScript 库。虽然 DWR 不是 Java 平台上唯一可用的 Ajax-RPC 工具包,但是它是最成熟的,而且提供了许多有用的功能。 从最简单的角度来说,DWR 是一个引擎,可以把服务器端 Java 对象的方法公开给 JavaScript 代码。使用 DWR 可以有效地从应用程序代码中把 Ajax 的全部请求-响应循环消除掉。这意味着客户端代码再也不需要直接处理 XMLHttpRequest 对象或者服务器的响应。不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成 XML。甚至不再需要编写 servlet 代码把 Ajax 请求调整成对 Java 域对象的调用。 DWR 是作为 Web 应用程序中的 servlet 部署的。把它看作一个黑盒子,这个 servlet 有两个主要作用:首先,对于公开的每个类,DWR 动态地生成包含在 Web 页面中的 JavaScript。生成的 JavaScript 包含存根函数,代表 Java 类上的对应方法并在幕后执行 XMLHttpRequest。这些请求被发送给 DWR,这时它的第二个作用就是把请求翻译成服务器端 Java 对象上的方法调用并把方法的返回值放在 servlet 响应中发送回客户端,编码成 JavaScriptDWR 还提供了帮助执行常见的用户界面任务的 JavaScript 工具函数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值