加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

初学DWR开源框架

发布时间:2020-12-16 01:58:32 所属栏目:百科 来源:网络整理
导读:该程序的完整代码下载地址: http://download.csdn.net/detail/yanglun1/8779629 首先来说明一些什么是DWR,它能用来做什么? DWR(Direct Web Remoting)是一个用于改善Web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含Ajax技术的

该程序的完整代码下载地址: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文件中的一个方法。


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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读