问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何使用DWR框架

发布网友 发布时间:2022-04-29 17:18

我来回答

1个回答

热心网友 时间:2022-04-23 04:50

DWR框架是一个可以允许你去创建AJAX WEB站点的JAVA开源库。它可以让你在浏览器的JavaScript代码中调用Web服务器的Java代码,就像Java代码在浏览器中一样。DWR工作原理是通过动态把Java类生成JavaScript,让使用者感觉调用就像发生在浏览器端。当我们的业务需要在页面不提交的情况下访问服务器端并实现页面数据局部刷新时,我们就可以使用DWR。 下面对如何使用DWR进行了归纳: 1.首先把dwr的类库jar包放入项目的lib路径下,这是废话。 2.在web.xml增加一段配置,因为dwr是靠一个Servlet来接收来至javascript的请求的 <servlet><servlet-name>dwr</servlet-name><servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class></servlet><servlet-mapping><servlet-name>dwr</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping> 3.在WEB-INF下面添加一个名为dwr.xml的配置文件,在这里配置需要在js里面访问的Java类和方法。下面以检查邮件地址是否占用的操作为例,<allow>标记表示了那些类需要转换为Ajax方式调用,create="new"指定dwr引擎以何种方式创建要调用的类,还有jsf,struts,spring,none等选项,new 是比较适中的也是默认的创建方式。javascript="CheckEmailService"指定该java类生成的js文件的名字(或者说在js里该类的名字)。如果你需要在js调用Java时传递对象如VO,可以如下指定一个<convert>,这表示你允许dwr帮你把Java类转换为js里模拟的对象,js里调用时可以传递这个VO.<dwr><allow><create creator="new" javascript="CheckEmailService"><param name="class"value="com.xxx.CheckEmailService" /></create><convert converter="bean" match="com.xxx.CallbackVo" /></allow></dwr>4.在项目里编写Java类:一个VO类,一个用来AJAX执行的类,注意方法的参数可以是对象哦!!! import com.xxx.EmailVo;public class CheckEmailService{public String checkEmail(EmailVo email){//.....do something......}}public class EmailVo{private String mail;//.....getter,setter,以及其他属性}5.接下来就在jsp里面导入js文件了。任何使用dwr的jsp必须导入以下两个dwr已有的js: <script type='text/javascript' src="/dwr/engine.js"/><script type='text/javascript' src="/dwr/util.js"/> 当然还必须导入dwr从CheckEmailService类生成而来的js文件,比如:<script type='text/javascript' src="/dwr/interface/CheckEmailService.js"/> 注意了,这个地方有的人会迷惑,这些js在哪里?实际上你是找不到的,因为dwr把这些js文件输出到浏览器缓存里,文件系统没有。(如果你用firefox浏览器,可以安装JS Viewer插件来查看缓存里的js)。 6.好了,在jsp里面要以AJAX方式检查邮件是否占用可以这么写: <script>var emailVo={mail:document.getElementById("mailInputText"),....};CheckEmailService.checkEmail(emailVo,callback(returnValue){alert("邮件被占用!");}});</script> 看到了没,先以{ 属性1:属性值1, 属性2:属性值2...}方式创建一个数组来模拟对象,然后传给执行检查的checkEmail方法,checkEmail的第二个参数是一个js函数,用来回调。也就是服务器端Java类的checkEmail执行完返回后,来调用这个回调的函数处理结果。 7.总结:我这里给出了一个解释原理的示意性例子,要会用dwr,主要是理解其原理。其原理就是通过Java反射机制生成对应于Java类的js文件,在客户端模拟Java调用;由engine.js里的execute()函数向服务器发送,提交到Servlet后转给Java类执行。理解,切记。共勉!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
纯种萨摩和不纯的萨摩的区别 不是纯种萨摩,长大成型后和纯种萨摩外表一样吗 学播音主持和配音哪个更赚钱,各有各的长处 学播音真的能改变声音吗,会让自己的普通话更加标准 学习播音和配音的作用,可以提升自信和气质 普通人学配音有没有用,有兴趣则有用 什么是永诚财产保险股份有限公司 win10电脑升级不了ie11win10怎么升级ie11 电脑硬件保修哪些电脑硬件保修包括什么 电脑固态硬盘质保几年一般的电脑保修时间是多久 DWR是什么 spring整合dwr返回javaBean对象 js如何夺取 请问dwr的用法? Struts是怎样实现dwr技术的? DWR中为什么要在JAVA的基础上生成JAVASCRIPT代码 基于注解的springmvc和dwr集成,spring3 Spring整合Dwr后,javascript报错方法未创建 月子期间可以吃莲藕吗母乳喂养 dwr和spring整合的问题。 异地公积金贷款需要上海无房证明吗 坐月子可以吃藕吗,母乳喂养 spring与dwr集成问题 军队公积金贷款需要给工商银行提供军内无房证明么? 如何找回丢失的任务栏打印机图标 坐月子吃莲藕有什么好处 坐月子可以喝莲藕汤吗 住房公积金贷款一定要开无房证明吗 请教打印机打印文件时,底下任务栏没有显示打印机图标 需要双方回各自户籍地开无房证明吗 坐月子可以吃莲藕 dwr 和 spring 的问题 去了一个问题 又来一个 dwr是什么意思? spring整合dwr,dwr:remote配置的问题 当使用Spring整合DWR框架时,服务器返回一个List集合,那我应该如何在客户... dwr 如何实现。单例模式 黑眼圈除掉的方法? 疯狂Ajax讲义——Prototype/jQuery+DWR+Spring+Hibernate整合开发... 黑眼圈过多,想祛除掉 快手怎么把本地长视频加上音乐 快手怎么加音乐 苹果4s手机,微信对话窗删除,怎么恢复聊天记录 对方发过来的微信聊天记录和资料能自动备份到苹果4s手机上吗?删除后还能恢复吗?谢谢 百度极速版的小视频怎么下载后不保存在相册? 百度极速版视频分类怎么没了 iphone4s,微信聊天记录能导入电脑吗 百度极速版下载的图片在手机的哪个文件夹? 苹果4s怎么恢复微信删除的聊天记录 如何把百度极速版的视频下载到本地相册? 百度极速版网盘在哪里 今日的广州,400多万能买到什么样的好房子