码迷,mamicode.com
首页 > 其他好文 > 详细

初学DWR开源框架

时间:2015-06-07 09:46:34      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:dwr   jquery   

      该程序的完整代码下载地址:http://download.csdn.net/detail/yanglun1/8779629


      首先来说明一些什么是DWR,它能用来做什么?


      DWR(Direct Web Remoting)是一个用于改善Web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含Ajax技术的网站。它可以允许在浏览器里的代码调用运行在Web服务器上的java方法,就像它就在浏览器里一眼。它包含两个主要部分:一部分允许JavaScript从Web服务器上一个遵循了Ajax原则的Servlet或Action中获取数据;另一部分是一个JavaScript库可以帮助网站开发人员 轻松地利用获取的数据来动态改变网页的内容。


      比较一下jQuery和DWR:首先要说的就是jQuery是一个.js文件,DWR则是一个.jar文件;再有就是它们的主要功能肯定是不相同的,jQuery的特点是前端功能强大、灵活,对页面中的DOM控制自如,但在MVC或是JSP+JAVABEAN+SERVLET模式中,前端页面的JavaScript如果要读取后台Java类中的方法或属性,此时jQuery就显得有点苍白无力。不过还好,DWR可以帮助我们解决这一问题。将jQuery和DWR配合起来实现struts的Ajax是不是会很完美,的确是这样的。因为DWR有强大的Java类属性读取功能,而jQuery有灵活、强大的前台DOM操作功能,也就是DWR负责实现在JavaScript中调用远程java方法,而获取的数据则交给jQuery显示出来。


      下面就针对DWR框架来做我们第一个小程序。


      首先我们需要的是两个.jar包,一个是commons-logging-1.0.4.jar,该包是日志控制文件,如果没有该jar包,控制台会报告日志控制方面的错误,一个则是我们的核心jar包dwr.jar。


      还是像以往项目博客一样,先看整体目录结构:

技术分享

      其中要解释一点,其中的ajaxserver.jsp和index2.jsp是我之前写的东西,在此不涉及,我也不想在项目中删除,还请忽略。


      再接下来要做的就是配置DWR框架,就像web.xml文件一样,我们需要在WEB-INF下创建dwr.xml配置文件。dwr.xml的配置信息如下:

<dwr>

   <allow>

      <!-- javascript指定在Javascript代码中访问对象时使用的名称 -->

      <create creator="new" javascript="Hello">

         <param name="class" value="com.dwr.HelloWorldAction"></param>

      </create>

   </allow>

</dwr>

      下面是配置文件中常用的一些标签及解释:

      <dwr>标签用来包含DWR所有的配置信息,处于最顶层。在其下还有以下标签:

      <allow>标签中可以暴露给JavaScript访问的东西

      <create>指定JavaScript中可以访问的java类,并定义DWR应当如何获得要进行远程的类的实例。creator="new"属性指定Java类实例的生成方式,new意味着DWR应当调用类的默认构造函数来获得实例。JavaScript="testClass"属性指定JavaScript代码访问对象时使用的名字。

      <param>指定要公开给JavaScript访问的东西

      <include>指定要公开给JavaScript的方法。不指定的话就是公开所有方法。

      <exclude>与<include>标签相对,该标签指定被禁止访问的方法。

      <convertor>负责这些方法的参数和返回类型。

      <convertor>下还有两个重要的属性,分别是converter和match,其作用是时converter="bean"属性指定转换的方式采用JavaBean命名规范,match="com.dwr.TestBean"属性指定要转换的JavaBean的名称。


      然后我们再看web.xml中的配置:

<welcome-file-list>

   <welcome-file>index.jsp</welcome-file>

 </welcome-file-list>

 <servlet>

  <servlet-name>dwr-invoker</servlet-name>

  <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

 </servlet>

 <servlet-mapping>

  <servlet-name>dwr-invoker</servlet-name>

  <url-pattern>/dwr/*</url-pattern>

 </servlet-mapping>

 <filter>

  <filter-name>strutsDemo01</filter-name>

  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

  <init-param>

     <param-name>debug</param-name>

     <param-value>true</param-value>

  </init-param>

 </filter>

 <filter-mapping>

  <filter-name>strutsDemo01</filter-name>

  <url-pattern>/*</url-pattern>

  </filter-mapping>


      最后我们在看一下显示界面index.jsp中的代码:

技术分享

      在此还需要解释一点就是,就像你们看到的,我用了两种方式去显示我的界面。第一种是使用了DWR的方式去设置页面的属性,value等,第二种方式则是用jQuery的方式,我比较推荐使用这一种,毕竟在页面展现方面jQuery更强大一些。但是不管你页面是怎么展示出来的,其中获取数据都是通过DWR来获取的,这是毋庸置疑的。此处的Hello对应的是你在dwr.xml配置文件中配置的名字,而sayHello则是我们java文件中的一个方法。


     到此这个小程序就结束了,实现的功能也很简单,就是在一个文本框里输入一些数字,然后单击按钮,在当前页面显示出你输入的文字。对于大神来说的确有点简单了,但对于初学者来说还是可以作为入门基础来看的。

初学DWR开源框架

标签:dwr   jquery   

原文地址:http://blog.csdn.net/yanglun1/article/details/46390431

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!