DWR WEB开发学习笔记1

DWR WEB开发

一。DWR配置文件主要有以下四个部分组成

1web.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>

     2dwr.xml的初始化配置部分Init是配置DWR主要是配置业务组件的生成规则和基本数据类型的转换器配置。DWR内置了4种业务组件生成规则newnullspringscripts。数据类型转换器DWR内置了Boolean16种转换器。(一般情况下可以不用配置,如果配置重复可能会有无法预料的后果)

一、creator元素 主要用于前台JS业务组件对象的生成器如Spring

NewScripts等。

<creator id="spring“

 class="uk.ltd.getahead.dwr.create.SpringCreator"/>

** Create配置元素详细说明:子节点:1Param:配置业务组件的创建参数

2Include授权方式保护业务组件方法的可见性如果没有配置则默认为所有方法都可以访问 exclude排除方式保护业务组件方法的可见性

4Auth采用EJB的角色访问控制方式。Method属性设置可以访问的方法名称,role属性设置访问角色。

**creator属性:

1newJava“new”关键字创造对象:new创建器的好处:安全;内存消耗低;

    2none: 它不创建对象:原因:*已经把这个对象创建到这个scope中了;要

用的方法是静态的

          3scripted: 通过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, requestpage

二、converter元素用于配置各种数据类型的转换器如StringArray等。

<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>

 

二。整合

21 DWRServlet需要用到webContextWebContextFactory

如:WebContext ctx = WebContextFactory.get(); req = ctx.getHttpServletRequest();

 

22 DWRSpring3个方法可以找到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

 

23 DWRJSF包括两个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>

 

24 DWRStruts

Struts creator 如:<create creator="struts" javascript="ScriptName"> <param name="formBean" value="formBeanName" /> </create>

* * 如果正在使用Struts创造器,那么你应该确保Struts初始化在DWR之前。你要保证你在web.xml里有一个<load-on-startup>的值,其中Struts的值比DWR设置地要低。

 

25 DWRHibernateHibernateBeanConverter会尝试不去读取没有初始化的属性。如果你只是想读取所有的东西那么应该使用BeanConverter

 

2。6 DWRWebWork要可以通过DWR调用WWAction,要做两件事:

①配置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: 要调用actionURI(没有 .action). 例如:

DWRActionUtil.execute('/ajax/TestFM', 'myform', 'doOnTextResult');

actionDefinitionObject: xwork.xml中定义的action对象. 必须指定下面的内容:

namespace: xwork.xmlaction的名称空间

 action: xwork.xml中action的名字

 executeResult: true|false (是否执行action的结果, 如果

false直接返回action实例)

例如: DWRActionUtil.execute({ namespace:'/ajax', action:'TestJS', executeResult:'true' }, 'data', doOnJSResult, "stream...");

* params 参数:

emptyParams: 传递{}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值