DWR WEB开发
一。DWR配置文件主要有以下四个部分组成
1。web.xml文件主要配置DWR的后台控制器和配置文件的载入(略)
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-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>
2。dwr.xml的初始化配置部分Init是配置DWR主要是配置业务组件的生成规则和基本数据类型的转换器配置。DWR内置了4种业务组件生成规则new、null、spring、scripts。数据类型转换器DWR内置了Boolean等16种转换器。(一般情况下可以不用配置,如果配置重复可能会有无法预料的后果)
一、creator元素 主要用于前台JS业务组件对象的生成器如Spring、
New、Scripts等。
<creator id="spring“
class="uk.ltd.getahead.dwr.create.SpringCreator"/>
** Create配置元素详细说明:子节点:1。Param:配置业务组件的创建参数
2。Include授权方式保护业务组件方法的可见性如果没有配置则默认为所有方法都可以访问 exclude排除方式保护业务组件方法的可见性
4。Auth采用EJB的角色访问控制方式。Method属性设置可以访问的方法名称,role属性设置访问角色。
**creator属性:
1。new:Java用“new”关键字创造对象:new创建器的好处:安全;内存消耗低;
2。none: 它不创建对象:原因:*已经把这个对象创建到这个scope中了;要
用的方法是静态的
3。scripted: 通过BSF使用脚本语言创建对象
如:<create creator="script" javascript="EmailValidator"> <param name="language" value="beanshell" /> <param name="script"> import org.apache.commons.validator.EmailValidator; return EmailValidator.getInstance(); </param> </create>
**avascript属性:在浏览器里给你创建的对象命名。
**scope属性可以是:application, session, request和page
二、converter元素用于配置各种数据类型的转换器如String、Array等。
<converter id="map"
class="uk.ltd.getahead.dwr.convert.MapConverter"/>
** Convert配置元素详细说明:
属性:
1.converter 配置数据类型的转换器。一般是设置bean转换器,因为基本类型的转换器DWR默认设置。
2. match 设置要使用此转换器的java实体对象。
子节点:
1.Param 对象属性的转换规则.
2. Signatures是用来配置Java Bean数据类型转换时遇到不能确定转换类型的情况。
二。多个dwr.xml配置和J2EE角色定义
**DWR能够使J2EE URL具有给与不同用户组不同权限的安全机制。通过起不同名字,URL和权限。
如:<servlet> <servlet-name>dwr-user-invoker</servlet-name>
<servlet-class> org.directwebremoting.servlet.DwrServlet </servlet-class> <init-param> <param-name>config-user</param-name> <param-value>WEB-INF/dwr-user.xml</param-value> </init-param> </servlet>
<servlet> <servlet-name>dwr-admin-invoker</servlet-name>
<servlet-class> org.directwebremoting.servlet.DwrServlet </servlet-class> <init-param> <param-name>config-admin</param-name> <param-value>WEB-INF/dwr-admin.xml</param-value> </init-param> </servlet>
<servlet-mapping>
<servlet-name>dwr-admin-invoker</servlet-name> <url-pattern>/dwradmin/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dwr-user-invoker</servlet-name> <url-pattern>/dwruser/*</url-pattern>
</servlet-mapping>
<security-constraint>
<display-name>dwr-admin</display-name>
<web-resource-collection> <web-resource-name>dwr-admin-collection</web-resource-name> <url-pattern>/dwradmin/*</url-pattern>
</web-resource-collection>
<auth-constraint> <role-name>admin</role-name> </auth-constraint> </security-constraint>
<security-constraint> <display-name>dwr-user</display-name>
<web-resource-collection> <web-resource-name>dwr-user-collection</web-resource-name> <url-pattern>/dwruser/*</url-pattern>
</web-resource-collection>
<auth-constraint> <role-name>user</role-name> </auth-constraint> </security-constraint>
二。整合
2。1 DWR与Servlet:需要用到webContext和WebContextFactory
如:WebContext ctx = WebContextFactory.get(); req = ctx.getHttpServletRequest();
2。2 DWR与Spring:3个方法可以找到Spring配置文件:
①ContextLoaderListener
如:<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/beans.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>
②使用location参数:指定的beans.xml在你的dwr.xml文件中,必须有唯一的以”location”开头的命名。比如:location-1, location-2。
如:<create creator="spring" javascript="Fred"> <param name="beanName" value="Shiela" /> <param name="location" value="beans.xml" /> </create>
③设置beenFactory目录:Spring创造器有一个静态的方法:setOverrideBeanFactory(BeanFactory),这个方法提供一个可编程的方式去覆盖任何BeanFactories。
2。3 DWR与JSF:包括两个JSF的扩展点,一个创造器和一个ServletFilter。
①JSF Creator:如:<create creator="jsf" javascript="ScriptName"> <param name="managedBeanName" value="beanName" /> <param name="class" value="your.class" /> </create>
②Servlet Filter:要使用JsfCreator,你应该把DWR/Faces过滤器加到web.xml中
如:<filter> <filter-name>DwrFacesFilter</filter-name> <filter-class> uk.ltd.getahead.dwr.servlet.FacesExtensionFilter </filter-class> </filter> <filter-mapping> <filter-name>DwrFacesFilter</filter-name> <url-pattern>/dwr/*</url-pattern> </filter-mapping>
2。4 DWR与Struts:
①Struts creator 如:<create creator="struts" javascript="ScriptName"> <param name="formBean" value="formBeanName" /> </create>
* * 如果正在使用Struts创造器,那么你应该确保Struts初始化在DWR之前。你要保证你在web.xml里有一个<load-on-startup>的值,其中Struts的值比DWR设置地要低。
2。5 DWR与Hibernate:HibernateBeanConverter会尝试不去读取没有初始化的属性。如果你只是想读取所有的东西那么应该使用BeanConverter。
2。6 DWR与WebWork:要可以通过DWR调用WW的Action,要做两件事:
①配置dwr.xml:须在dwr的配置文件中加入这样的配置:
<create creator="none" javascript="DWRAction"> <param name="class" value="org.directwebremoting.webwork.DWRAction" /> <include method="execute" /> </create> <convert converter="bean" match="org.directwebremoting.webwork.ActionDefinition"> <param name="include" value="namespace,action,method,executeResult" /> </convert> <convert converter="bean" match="org.directwebremoting.webwork.AjaxResult" />
及action对象的转换器定义(package级别或单独action)。
②在JSP中导入脚本:要导入DWRActionUtil.js脚本。在JS中调用Action: DWRActionUtil.execute(id, params, callback, [displayMessage]);
* id 参数:● actionUri: 要调用action的URI(没有 .action). 例如:
DWRActionUtil.execute('/ajax/TestFM', 'myform', 'doOnTextResult');
●actionDefinitionObject: 在xwork.xml中定义的action对象. 必须指定下面的内容:
namespace: xwork.xml中action的名称空间
action: xwork.xml中action的名字
executeResult: true|false (是否执行action的结果, 如果
false直接返回action实例)
例如: DWRActionUtil.execute({ namespace:'/ajax', action:'TestJS', executeResult:'true' }, 'data', doOnJSResult, "stream...");
* params 参数:
●emptyParams: 传递{}
分享到:
相关推荐
阅读"DWR学习笔记.doc"文件将有助于系统地掌握这些知识点,通过实践操作加深理解,从而更好地利用DWR构建交互性强、用户体验良好的Web应用。在学习过程中,结合源码分析可以更深入地理解DWR的工作机制,提升自己的...
首先,"DWR学习笔记"提供了对DWR基础概念、核心功能以及实际应用的概述。这些笔记可能包含了DWR的基本架构,如它如何通过AJAX技术实现实时的Web交互,以及如何创建和调用服务器端的Java方法。 "DWR中文API"是DWR库...
可能包含了一些实战项目的源代码,帮助你学习如何利用DWR实现动态的Web界面。 tree.rar:这可能是一个目录结构的压缩文件,展示了DWR项目或者示例应用的文件组织方式。通过查看这个文件,你可以了解DWR项目通常是...
### dwr学习笔记pdf文件知识点概述 #### 一、DWR框架简介 - **DWR**(Direct Web Remoting)是由GetAhead公司开发的一款用于实现Ajax应用的框架。该框架的核心价值在于允许客户端JavaScript直接调用服务器端Java类...
【标题】"dwr3 学习笔记<一>" 涉及的主要知识点是Direct Web Remoting (DWR)框架的第三版。DWR是一种Java库,它允许Web应用程序在客户端(通常是JavaScript)和服务器端(Java)之间进行实时通信,从而实现动态的、...
### dwr学习笔记和总结 #### 一、DWR简介 DWR (Direct Web Remoting) 是一个简化Ajax开发的框架,它使得JavaScript能够直接调用服务器端的Java方法成为可能,无需编写复杂的Ajax代码。这极大地提高了开发效率,并...
在本学习笔记中,我们将深入探讨DWR如何与**ExtJS**、**Spring**框架结合使用,以及如何通过DWR教程和中文文档来提升你的开发技能。 **1. ExtJS与DWR的整合** ExtJS是一个强大的JavaScript库,用于构建用户界面,...
总之,DWR作为一款强大的Web开发工具,简化了Java与JavaScript之间的通信,使得前端开发者能够更便捷地利用服务器端的功能,同时保持Web应用的高性能和实时性。理解和掌握DWR的使用,对于提升Web应用的开发质量和...
**DWR(Direct Web Remoting)**是一种JavaScript库,它允许Web...通过深入学习和实践"DWR学习笔记和与spring整合练习",开发者可以掌握DWR的精髓,熟练运用其与Spring的整合,打造出高效、安全、易维护的Web应用程序。
DWR (Direct Web Remoting) ...通过学习和掌握DWR,你可以更好地融合前后端开发,实现更为流畅的用户交互。在自学过程中,理解DWR的工作原理、熟练运用其主要组件以及掌握实际应用场景,都将对你的IT职业生涯大有裨益。
【标题】:“DWR学习笔记-HelloWorld篇” 在IT领域,DWR(Direct Web Remoting)是一个开源的Java框架,它允许JavaScript在浏览器端直接调用服务器端的Java方法,实现了网页与服务器的实时交互,类似于Ajax技术,但...
1. **官方文档**:DWR的官方文档详细介绍了如何配置、使用以及扩展DWR,是学习的好资料。 2. **示例代码**:实践是最好的老师,通过分析和运行提供的jar文件中的示例代码,能更深入理解DWR的工作原理。 3. **社区...
**DWR(Direct Web Remoting)学习笔记** DWR是一种Java技术,用于在浏览器和服务器之间实现双向通信,使得Web应用程序能够实时更新和交互。它允许JavaScript直接调用服务器端的Java方法,就像它们是本地函数一样,...
“DWR学习笔记”可能包含了逐步的学习教程,涵盖了从安装DWR到创建第一个实时Web应用的全过程。这些笔记可能会讲解如何在项目中集成DWR,如何编写Java端的服务,以及如何在HTML和JavaScript中调用这些服务。 “DWR...
学习笔记可能涵盖了DWR的安装、配置、基本用法、安全设置、转换服务、错误处理等方面,帮助初学者快速理解和掌握DWR的使用。通过阅读这些笔记,你可以了解到如何在实际项目中集成DWR,以及如何编写客户端和服务器端...