[转] DWR web.xml配置

阅读更多

 

例子:

 

<servlet>

       <servlet-name>dwr-invokerservlet-name>

       <servlet-class>

           org.directwebremoting.servlet.DwrServlet

       servlet-class>

       <init-param>

           <param-name>debugparam-name>

           <param-value>trueparam-value>

       init-param>

       <init-param>

           <param-name>mconfig-yonghuparam-name>

           <param-value>/WEB-INF/dwr/dwr.xmlparam-value>

       init-param>

    servlet>

    <servlet-mapping>

       <servlet-name>dwr-invokerservlet-name>

       <url-pattern>/dwr/*url-pattern>

    servlet-mapping>

 

 

 

DWR: web.xml配置()2008-08-24 01:39一。 主要配置

要加入到你的web.xml最少的代码就是简单地去申明DWR servlet,没有它DWR就不起作用。           

 

dwr-invoker org.directwebremoting.servlet.DwrServlet

 

 

 

dwr-invoker /dwr/*

 

 

 

DWR2.x,DwrServlets是类org.directwebremoting.servlet.DwrServlet ,尽管uk.ltd.getahead.dwr.DWRServlet仍然可以用。在DWR 1.x你不得不使用后者。 有些额外的servlet参数,在有些地方很重要。尤其debug参数 这个扩展DWR的标准结构是使用。放在内,就像如下使用                                                                                                                                                                                                                                                                                    dwr-invoker                                                                                  org.directwebremoting.servlet.DwrServlet

                                                                                                                                                                                      debug                                                                                                 true                                                                                                                                                                                                                                               

另外,启动服务时,如果报如下错。 java.lang.IllegalArgumentException: DefaultContainer can't find a classes DWR2.0 加入了JDK5的注释(annotations).DwrServlet初始化的时候会去检查注释的类,找不到就抱错了。如果你不用annotations也可以忽略掉这个错误。不过看起来总是不爽。解决方案如下                                                                                                                                                     dwr-invoker                                                                                             org.directwebremoting.servlet.DwrServlet         

debug                                                                                              true                                                                                                                                                                                                                                                                                                                                                                                            classes                                                                                              java.lang.Object                                                                                                                                                                                                                             

二。 常用参数列表

安全参数

allowGetForSafariButMakeForgeryEasier 开始版本:2.0 默认值:false 描述:设置成true使DWR工作在Safari 1.x , 会稍微降低安全性。

 

crossDomainSessionSecurity 开始版本:2.0

默认值:true

描述:设置成false使能够从其他域进行请求。注意,这样做会在安全性上有点冒险,参考一下这篇文章,在没有理解这个后果前不要设置成为false

 

debug 开始版本:1.0

默认值:false

描述:设置成true使DWR能够debug和进入测试页面

 

scriptSessionTimeout 开始版本:2.0

默认值:1800000(30分钟)

描述:script session 的超时设置

 

maxCallCount 开始版本:2.0rc2  1.1.4

默认值:20

描述:一次批量(batch)允许最大的调用数量。(帮助保护Dos攻击)

 

2 Ajax服务器加载时保护参数

 

pollAndCometEnabled 开始版本:2.0

默认值:false

描述:设置成true能增加服务器的加载能力,尽管DWR有保护服务器过载的机制。

maxWaitingThreads 开始版本:2.0

默认值:100

描述:最大等待线程数量。

 

preStreamWaitTime 开始版本:2.0

默认值:29000(单位:毫秒)

描述:对一个打开流前的反应,等待的最大时间

 

postStreamWaitTime 开始版本:2.0

默认值:1000(单位:毫秒)

 

描述:对一个打开流后的反应,等待的最大时间

其他参数

ignoreLastModified 开始版本:2.0

默认值:false

描述:默认值支持最后修改,这样就允许服务器端对客户端请求较少资源。设置为true就能屏蔽支持。

 

scriptCompressed 开始版本:1.1

默认值:false

描述:DWR能够执行简单的压缩,设置为true可以激活此功能。另外还有一个未公开的有关系的重要参数“compressionLevel”,此参数允许你配置压缩类型。查看这里得到更多详细资料。

 

sessionCookieName 开始版本:2.0

默认值:JSESSIONID

描述:DWR通过检查文档和提取当前session ID支持URL重写。一些servlet引擎使用非标准的cookie名。参数允许你改变默认值。 welcomeFiles 开始版本:2.0 默认值:index.html, index.htm, index.jsp 描述:类似于web.xml标签

 

三。 日志配置

DWR工作在JDK1.3中不支持java.util.logging,但我们并不强迫任何人都去使用commons-logging或者log4j,所以在使用HttpServlet.log()方法时DWR将正常工作,如果没有日志类的话。然而如果DWR可以使用,那么它将使用日志。 Commoms-Logging 由于大多数servlet容器都使用它,几乎每个人都将使用commons-logging。所以如果你的webapp不明确使用commons-logging,它将被默认设为可以使用。 在这些日志将被一些配置文件所约束,比如java.util.logging或者log4j,可以去查看他们各自的文档获得详情。 HttpServlet.log() 如果你正在使用HttpServlet.log() 以下的代码用来控制DWR日志<init-param>

    <param-name>logLevelparam-name>

    <param-value>DEBUGparam-value>

init-param>

值可以是:FATALERRORWARN(默认)INFODEBUG 四。 多个dwr.xml配置和J2EE角色定义

一般来说只需要一个dwr.xml文件,并且会被设为默认位置WEB-INF/dwr.xml。所以你不需要配置。

3个原因说明你为何需要指定不同位置的dwr.xml文件:  你想保持dwr.xml的文件请参照下面的例子

<param-value>WEB-INF/classes/com/yourco/dwr/dwr.xmlparam-value>

 你可以有很多的远程方法类并且希望指定文件。在这个例子里将指定不同文件开始配置,不同的param-name将重复多次DWR将轮流读取它们。 

DWR能够使J2EE URL具有给与不同用户组不同权限的安全机制。通过起不同名字,URL和权限。 就像如下例子去使用

<init-param>

    <param-name>config*****param-name>

    <param-value>WEB-INF/dwr.xmlparam-value>

    <description>What config file do we use?description>

init-param>

用一个字符串”config” 作为开始,设置param-name,每个param-name必须不同。                       

<servlet>

    <servlet-name>dwr-user-invokerservlet-name>

    <servlet-class>org.directwebremoting. DwrServletservlet-class>

    <init-param>

       <param-name>config-userparam-name>

       <param-value>WEB-INF/dwr-user.xmlparam-value>

    init-param>

servlet>

<servlet>

    <servlet-name>dwr-admin-invokerservlet-name>

    <servlet-class>org..servlet.DwrServletservlet-class>

    <init-param>

       <param-name>config-adminparam-name>

       <param-value>WEB-INF/dwr-admin.xmlparam-value>

    init-param>

servlet>

<servlet-mapping>

    <servlet-name>dwr-admin-invokerservlet-name>

    <url-pattern>/dwradmin/*url-pattern>

servlet-mapping>

<servlet-mapping>

    <servlet-name>dwr-user-invokerservlet-name>

    <url-pattern>/dwruser/*url-pattern>

servlet-mapping>

<security-constraint>

    <display-name>dwr-admindisplay-name>

    <web-resource-collection>

       <web-resource-name>dwr-admin-collectionweb-resource-name>

       <url-pattern>/dwradmin/*url-pattern>

    web-resource-collection>

    <auth-constraint>

       <role-name>adminrole-name>

    auth-constraint>

security-constraint>

<security-constraint>

    <display-name>dwr-userdisplay-name>

    <web-resource-collection>

       <web-resource-name>dwr-user-collectionweb-resource-name>

       <url-pattern>/dwruser/*url-pattern>

    web-resource-collection>

    <auth-constraint>

       <role-name>userrole-name>

    auth-constraint>

 

 

DWR: web.xml配置()

插件配置、测试模式配置五。

 插件配置 大多数DWR的功能是可以作为插件的,所以就通过替换默认的类可以改变DWR的功能。 你可以通过包含<init-param>去覆盖默认的实现。 举个例子:

   

<init-param>

       <param-name>

           org.directwebremoting.extend.ServerLoadMonitor

       param-name>

    <param-value>com.example.MyCustomServerLoadMonitorparam-value>

    init-param>

 

    没有规定我们越过主要的版本丢弃这些接口,但是我们将尝试提供简单的升级路径。 DWR2.0插件 

    org.directwebremoting.Container 

    org.directwebremoting.WebContextFactory.WebContextBuilder 

    org.directwebremoting.ServerContextFactory.ServerContextBuilder 

    org.directwebremoting.servlet.UrlProcessor 

    org.directwebremoting.extend.AccessControl 

    org.directwebremoting.extend.AjaxFilterManager 

    org.directwebremoting.extend.ConverterManager 

    org.directwebremoting.extend.CreatorManager 

    org.directwebremoting.extend.DebugPageGenerator 

    org.directwebremoting.extend.HtmlCallMarshaller 

    org.directwebremoting.extend.HtmlPollHandler 

    org.directwebremoting.extend.PageNormalizer 

    org.directwebremoting.extend.PlainCallMarshaller 

    org.directwebremoting.extend.PlainPollHandler 

    org.directwebremoting.extend.Remoter 

    org.directwebremoting.extend.ScriptSessionManager 

    org.directwebremoting.extend.ServerLoadMonitor

    默认的实现大多数在org.directwebremoting.impl包,细节是在ContainerUtil.setupDefaults()指定的。

    DWR1.1插件  uk.ltd.getahead.dwr.AccessControl 

    uk.ltd.getahead.dwr.Configuration 

    uk.ltd.getahead.dwr.ConverterManager 

    uk.ltd.getahead.dwr.CreatorManager  uk.ltd.getahead.dwr.Processor 

    uk.ltd.getahead.dwr.ExecutionContext

    默认的实现大多数在uk.ltd.getahead.dwr.impl 六。测试模式配置 通过添加如下参数,设置debug测试模式

    <init-param>

       <param-name>debugparam-name>

       <param-value>trueparam-value>

    init-param>

    debug模式里,DWR将为每个allow的类(请看下面的dwr.xml配置章节)生成测试页面。这些能变得非常有用帮助了解DWR能做什么和如何工作。这个模式也能警告你以防止javascript的保留字,或者重载问题。

    然而这个模式不应该被用在现场部署,因为他能给黑客或者攻击者许多关于服务器的详细信息。

 

DWR: dwr.xml配置()纵览、<init>

    标签2008-08-24 02:50纵览

 

    dwr.xml是你用来配置DWR的文件,默认是将其放入WEB-INF文件夹。 创建一个dwr.xml文件 dwr.xml有如下的结构:

 

 

    xml version="1.0" encoding="UTF-8"?>

 

    DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN""http://www.getahead.ltd.uk/dwr/dwr20.dtd">

 

    <dwr>

 

       <init>

 

           <creator id="..." class="..." />

 

           <converter id="..." class="..." />

 

       init>

 

       <allow>

 

           <create creator="..." javascript="..." />

 

           <convert converter="..." match="..." />

 

       allow>

 

       <signatures>...signatures>

 

    dwr>

 

 

. <init>标签

    这个初始化部分申明被用来创建远程beans而且这个类能被用来以某种过程转换。大多数例子你将不需要用它,如果你想去定义一个新的Creator或者Converter,就要在此被申明。

       init部分里有了定义只是告诉DWR这些扩展类的存在,给出了如何使用的信息。这时他们还没有被使用。这种方式很像Java中的import语句。多数类需要在使用前先import一下,但是只有import语句并不表明这个类已经被使用了。每一个creatorconverter都用id属性,以便后面使用。

 

你可能感兴趣的:(dwr)