DWR框架搭建以及使用
DWR(Direct Web Remoting)是一个Ajax的开源框架,用于改善web页面与Java类交互的远程服务器端的交互体验,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。
从DWR官网下载最新版本的jar包,地址:http://directwebremoting.org/dwr/downloads/index.html
将jar包放入WEB-INF的lib文件夹下。同时,dwr依赖于commons-logging.jar这个包,所以必须将这个jar包也放入到WEB-INF的lib文件夹相爱。
首先是配置dwr的环境:
1. web.xml文件:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.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>
2. 从官网的jar.war文件中利用winRAR等软件提取出dwr.xml文件,并将其放入到WEB-INF文件夹下。
dwr.xml是dwr的核心配置文件,主要的标签有:<converter>、<convert>、<create>这三个标签。
<converter>标签是dwr中内置的转换器。我们也可以使用自己写的转换器,不过dwr提供的转换器已经足够了,所以这个标签,一般不会自己去写。
<convert>标签是将converter中定义的转换器映射到的具体类型,如:
<converter id="date"class="org.directwebremoting.convert.DateConverter"/> <!-- 注册了 date 转换器 -->
<!-- 注意:converter标签必须放到<init>标签内,而convert是放在<allow>标签内,这里只是示例,并不是完整的dwr.xml -->
<convert converter="date"match="java.util.Date"/> <!-- 将注册的 date 转换器应用到 java.util.Date 类型
-->
<create>标签是dwr中重要的标签,用来描述 java(服务器端) 与 javascript (客户端)的交互方式。其基本格式如下:
<allow>
<create creator="..." javascript="..." scope="...">
<param name="..." value="..."/>
<auth method="..." role="..."/>
<exclude method="..."/>
<include method="..."/>
</create>
...
</allow>
其中,creator和javascript是必须属性,其他可以忽略。creator包含有以下几个值:
new:Java用“new”关键字创造对象
none:它不创建对象 (v1.1+)
scripted:通过BSF使用脚本语言创建对象,例如BeanShell或Groovy
spring:通过Spring框架访问Bean
struts:使用Struts的FormBean (v1.1+)
jsf:使用JSF的Bean (v1.1+)
pageflow:访问Weblogic或Beehive的PageFlow (v1.1+)
ejb3:使用EJB3 session bean (v2.0+)
关于这几个属性如何使用,这里就不在详细阐述了。我只列出一个与spring整合的例子:
<create creator="spring" javascript="backUpDocumentService">
<param name="beanName" value="testDWR1" />
<include method="modifyBackUpFiles"></include>
<include method="isSafeCodeRight"></include>
</create>
<!-- 加include可以具体指定java类中关的方法,不加则默认类中全部为public的方法 -->
<create creator="spring" javascript="testDWR2">
<param name="beanName" value="testDWR2" />
</create>
spring配置文件
<bean id="testDWR1" class="com.test.testDWR1"></bean>
<bean id="testDWR2" class="com.test.testDWR2"></bean>
3. 页面配置
在jsp页面添加三个 js 文件,分别是
<script type='text/javascript' src='js/util.js'></script>
<script type='text/javascript' src='js/engine.js'></script>
<script type='text/javascript' src='dwr/interface/testDWR1.js'>
其中engine.js必须要,如果需要用到dwr提供的一些方便的工具要引用util.js ,然后是dwr自动生成的js文件,名字必须和dwr.xml中create标签的javascript属性值一样,且是dwr/interface开头的目录
4. 接下来就可以分别写javascript和java代码了。
javascript代码:
function testFun() {
var name = "aaaaa";
testDWR1.testFun(name, returnFun); //调用java方法,第二个参数是回调函数
}function returnFun(data) { //data对应着java方法的返回值
alert(data);
}
java代码:
package com.test;
public class testDWR1 {
public String test(String str) {
str += "bbb";
return str;
}
}
5. 其他
dwr可以设置是否采用异步方式访问java代码,其代码为:
dwr.engine.setAsync(false); //false为同步,true(默认)为异步
以及dwr对于异常的处理,这里我只列出个简单的全局性异常捕获,具体到针对某个方法的异常捕获,大家可以自己上网找找。
dwr.engine.setErrorHandler(errh);
function errh(errorString, exception) {
errorFlag = true;
alert("操作失败!");
}
dwr同样支持参数为对象的方法,这需要在dwr.xml中配置下<convert>标签:
<convert converter="bean" match="com.example.Person"/>
那么关于dwr我也只介绍到这里了,这基本就是dwr的基本内容了,可以满足普通的项目需求了。
分享到:
相关推荐
Spring+struts+hibernate+dwr框架整合教程 本教程是专门介绍如何在ssh框架中搭建dwr框架。
自己搭建的spring3+struts2+hibernate+dwr框架
本javachat采用 struts,hibernate,spring,dwr等框架搭建。供大家一起学习~
本文后台主要使用SSH框架搭建,前台使用了DWR和jquery的结合,本项目主要分为三个角色,普通用户,管理员和会员。属于在线购票
此外,DWR框架的使用允许在浏览器端直接调用服务器端的Java方法,实现了像Ajax一样的异步交互功能,极大地提升了用户的体验。此源码资料包是为计算机专业的软件开发人员或学生设计的,它不仅能够作为实际项目开发的...
1、使用技术 struts2 + hibernate + spring + dwr 2、开发环境 tomcat6.0 + jdk1.5 + eclipse + oracle 3、根据你的需要开放自主交易和寄售交易 4、在线订单即时提醒,让你更快,更准确的发货
网站框架搭建,涉及struts2+jquery+json、dwr、log日志、过滤器、拦截器。
配合项目经理与客户交流完成需求确认采用快速原型制作工具Axure完成DEMO制作、并参与前期的需求用例的编写,该项目使用了JBPM4,并对JBPM4进行预研,掌握JBPM4的使用,主要是JPDL和JBPM4常用API,并完成Extjs3+...
本项目以初学者的角度,从0开始搭建SpringMVC框架。项目中,小编做了详细的注释,请注意remark标注。 项目中用spring集成了mybatis、redis、事务、EhCache,DWR,Quartz等,满足了一般开发的需求。 搭建过程 1:导入...
该项目是本人自己搭建的ssh2框架,集成ajax,dwr等(struts2,hibernate,spring)
请读者在理解书中讲述的原理与方法后灵活处理。 目前已有热心读者愿意为mirror.rar文件提供下载,在此对他们表示感谢。因为该文件需要的空间较大,初期下载地址可能会不确定,请读者发邮件询问本书责编:quyanlian@...
SSH框架整合 MyEclipse 6.0 + Tomcat 6 + SQLServer2005 Struts 1.2 + Spring 2.0 + Hibernate 3 + DWR3.0 文档中有代码部分,按照操作即可搭建SSH的一个小程序。
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现...
广东媒体资源管理系统 Y2答辩项目 整个项目分为6个板块:系统管理(5表权限),广告发布与审批,排期管理,合同管理,媒体管理,公司部门管理 用ssh框架搭建,dwr,aop,md5加密等技术
SSH2项目,内含增删改查,带上传图片(带预览),有分页。... 基于MyEclipse8.5+MySQL+Tomcat6.0 struts2+spring2.5+...如果你想搭建一个这样的demo,请参考我另一个上传的文档SSH2搭建。 点我用户名就可以查看所有上传。
06 开源框架 Struts 1.x --> AJAX --> ECSide报表组件 --> Hibernate --> Spring --> Struts 2.0 --> AJAX框架(DWR、JSON、JQuery) 07 XML 基础语法 --> 解析(DOM/SAX/JDOM) 08 分布式开发 RMI --> EJB 3.0 --> ...
5.1.10 使用hibernate的isinitialized()与initialize()方法 277 5.1.11 持久化对象间的级联操作 277 5.2 hibernate的检索策略 291 5.2.1 立即检索 291 5.2.2 延迟检索 296 5.2.3 迫切左外连接检索 300 5.3 hql...
2、后台:Struts2、动态代理、Mybatis框架、log4J日志框架、jstl 、jstl自定义分页标签、代码机器人、Dwr、POI(实现Excel文件的导入导出)等 3、数据库:Mysql 4、服务器:Tomcat 项目中涉及的功能: 1、项目以及...
看看现存的Java web应用程序框架,无一例外的要求花费大量的时间与精力后才可投入生产。对于大多数开发人员来说想要的东西很简单:友好,易于学习并且还具有生产力。因此我们开发了JSPX。 JSPX的主要目标就是打造...
本资源中含有两个文件,一个是xls讲解笔记,一个是...主要以搭建一个快速的简单的SSH框架系统,并将DWR Ajax引进项目开发中,让新手速度上路。由于15M上传的限制,所有的架包,我在其他资源中上传,本war包中不带LIB。