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配置文件
dwr.engine.setErrorHandler(errh); function errh(errorString, exception) { errorFlag = true; alert("操作失败!"); }
dwr同样支持参数为对象的方法,这需要在dwr.xml中配置下<convert>标签:
<convert converter="bean" match="com.example.Person"/>
那么关于dwr我也只介绍到这里了,这基本就是dwr的基本内容了,可以满足普通的项目需求了。
<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对于异常的处理,这里我只列出个简单的全局性异常捕获,具体到针对某个方法的异常捕获,大家可以自己上网找找。
相关推荐
Spring+struts+hibernate+dwr框架整合教程 本教程是专门介绍如何在ssh框架中搭建dwr框架。
自己搭建的spring3+struts2+hibernate+dwr框架
本文后台主要使用SSH框架搭建,前台使用了DWR和jquery的结合,本项目主要分为三个角色,普通用户,管理员和会员。属于在线购票
网站框架搭建,涉及struts2+jquery+json、dwr、log日志、过滤器、拦截器。
1、使用技术 struts2 + hibernate + spring + dwr 2、开发环境 tomcat6.0 + jdk1.5 + eclipse + oracle 3、根据你的需要开放自主交易和寄售交易 4、在线订单即时提醒,让你更快,更准确的发货
此外,DWR框架的使用允许在浏览器端直接调用服务器端的Java方法,实现了像Ajax一样的异步交互功能,极大地提升了用户的体验。此源码资料包是为计算机专业的软件开发人员或学生设计的,它不仅能够作为实际项目开发的...
本javachat采用 struts,hibernate,spring,dwr等框架搭建。供大家一起学习~
该项目使用了JBPM4,并对JBPM4进行预研,掌握JBPM4的使用,主要是JPDL和JBPM4常用API,并完成Extjs3+Struts2+Spring+Hibernate+JBPM4+Annotaion框架的搭建和规划,并对故障单部分进行设计和编码,应用工作流JBPM4...
本项目以初学者的角度,从0开始搭建SpringMVC框架。项目中,小编做了详细的注释,请注意remark标注。 项目中用spring集成了mybatis、redis、事务、EhCache,DWR,Quartz等,满足了一般开发的需求。 搭建过程 1:导入...
注:随光盘附带的mirror.rar文件是使用Heritrix从pconline网上抓取的手机信息页面(以网站镜象格式存储),在本书最后搜索引擎完整实例中需要使用到。由于光盘容量有限,笔者删除了原始镜像目录中一部分的网页,可能...
广东媒体资源管理系统 Y2答辩项目 整个项目分为6个板块:系统管理(5表权限),广告发布与审批,排期管理,合同管理,媒体管理,公司部门管理 用ssh框架搭建,dwr,aop,md5加密等技术
该项目是本人自己搭建的ssh2框架,集成ajax,dwr等(struts2,hibernate,spring)
SSH框架整合 MyEclipse 6.0 + Tomcat 6 + SQLServer2005 Struts 1.2 + Spring 2.0 + Hibernate 3 + DWR3.0 文档中有代码部分,按照操作即可搭建SSH的一个小程序。
SSH2项目,内含增删改查,带上传图片(带预览),有分页。... 基于MyEclipse8.5+MySQL+Tomcat6.0 struts2+spring2.5+...如果你想搭建一个这样的demo,请参考我另一个上传的文档SSH2搭建。 点我用户名就可以查看所有上传。
2、后台:Struts2、动态代理、Mybatis框架、log4J日志框架、jstl 、jstl自定义分页标签、代码机器人、Dwr、POI(实现Excel文件的导入导出)等 3、数据库:Mysql 4、服务器:Tomcat 项目中涉及的功能: 1、项目以及...
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 --> ...
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现...
1.4 ssh 2组合框架—门户网站开发之首选 28 1.4.1 mvc混血宠儿struts 2 28 1.4.2 幕后的财政部长spring 2.5 30 1.4.3 orm中间件香馍馍hibernate 3.2 31 1.5 小结 32 第2章 mvc混血宠儿struts 2 33 2.1 初识mvc...
例如,可以使用j2mepolish,请参考本人以前发表的文章《使用J2mePolish的build和preprocess功能》。本文主要讨论如何使用antenna来解决这个问题。 Antenna介绍 Ant ... by pandonix 2007-08-28 回复 (9) 用Ant 来...
本资源中含有两个文件,一个是xls讲解笔记,一个是...主要以搭建一个快速的简单的SSH框架系统,并将DWR Ajax引进项目开发中,让新手速度上路。由于15M上传的限制,所有的架包,我在其他资源中上传,本war包中不带LIB。