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技术将值表现在页面上,这时页面并不会被全局刷新,只是局部发生改变,可以极大提高用户体验。