DWR学习
来源:互联网 发布:阿里云服务器架设游戏 编辑:程序博客网 时间:2024/05/22 21:51
1. DWR?
Direct Web Remoting(DWR):DWR(直接Web远程控制)项目是在Apache许可下的一个开源的解决方案,并且该项目是在Apache许可下的一个开源的解决方案,它提供给那些想要以一种简单的方式使用Ajax和XMLHttpRequest的开发者。它具有一套javascript功能集,它们把从HTML页面调用应用服务器上的Java对象的方法简化了。
2. DWR使用场合?
当我们的业务需要在页面不提交的情况下访问服务器端并实现页面数据局部刷新时,我们就可以使用DWR。第一次使用DWR,是在OA中权限管理中的CRUD无刷新提交。
3. DWR使用步骤
3.1 导入Dwr.jar
3.2 编写页面中javascript需要使用的java类(业务逻辑类)。出于安全机制,在页面中要暴露的java类需要慎重考虑,不可滥用。
3.3 配置web.xml文件,将以下内容配置到web.xml中
<servlet> <servlet-name>dwr-invoker</servlet-name> <description>Direct Web Remoter Servlet</description><servlet-class>org.directwebremoting.servlet.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>
3.4 创建一个dwr.xml文件,将它放在web.xml所在的WEB-INF目录下。
<allow> <create creator="spring" javascript="aclManager"> <param name="beanName" value="aclManager"/> </create> </allow>
Dwr.xml文件中的creator属性是必须的,它用来指定使用哪种创造器,我使用的是spring。默认情况下DWR1.1有8中构造器,它们是:
new:用Java的new关键字创造对象。
none:它不创建对象。
scripted:通过BSF使用脚本语言创建对象,例如BeanShell或Groovy
spring:通过Spring框架访问Bean
jsf:使用JSF的Bean
struts:使用Struts的FormBean
pageflow:访问Beehive或Weblogic的PageFlow
如果你需要些自己的创造器,必须在init部分注册它。
3.5 编写jsp页面,用javascript调用后台的java代码
⑴ 在页面中引入以下javascript脚本
Js代码 1.<script type="text/javascript" src="dwr/interface/ aclManager.js" ></script> 2.<script type="text/javascript" src="dwr/engine.js" ></script> 3.<script type="text/javascript" src="dwr/util.js" ></script>
(2)其中的第一句是由DWR框架在运行时自动生成的,dwr/是一个虚拟的路径,我们并不能真是的看到这个文件的存在。后面两句中的js文件在dwr的jar包中可以找到 编写javascript调用后台java代码。如果从后台获取了返回值,还可以通过DOM技术将值表现在页面上,这时页面并不会被全局刷新,只是局部发生改变,可以极大提高用户体验。
4. 应用DWR技术所带来的主要优点
DWR是一种AJAX(AsynchronousJavaScript and XML)的Java实现,它提供了一种能在web浏览器端采用JavaScript语言直接调用后台业务上也组件的解决方案。同时能够动态生成JavaScript代码和隐藏http协议的细节- DWR学习
- DWR学习
- DWR学习
- DWR学习
- DWR学习
- DWR学习
- dwr学习
- DWR学习
- 学习dwr
- DWR学习
- 学习DWR
- DWR学习
- dwr学习
- DWR学习
- DWR学习
- DWR学习
- DWR学习
- dwr学习
- Ubuntu下默认编辑器的选择(nano&vim)
- 获得Hibernate Criteria的原生SQL
- Infopath结合MOSS 2010 中比较好的创建名称编号方法!
- 使用VS自带的混淆器(dotfuscator)防止你的程序被反编译
- 诺基亚E5删除自己安装的应用程序
- DWR学习
- Android中SDK里面的draw9patch.bat打不开图片?
- [ZT]烧写内核uImage和根文件系统rootfs到NAND FLASH
- WebKit 介绍(转)
- Android推送方案分析(MQTT/XMPP/GCM)
- 嵌入式系统简介
- virtualbox增强包在ubuntu下安装
- 贡献hadoop patch
- 关于int main(int argc,char* argv[])的说明