dwr配置篇web.xml

来源:互联网 发布:淘宝618和双11力度大小 编辑:程序博客网 时间:2024/06/04 19:18
1、web.xml配置
java代码: 

<servlet>
  <servlet-name>dwr-invoker</servlet-name>
  <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>dwr-invoker</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

 

    在此配置中可以添加servlet的配置参数,具体如下:

    常用<init-param>参数列表

1 安全参数

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攻击)

maxWaitAfterWrite

开始版本:2.0.4 以后

默认值:500

描述:在没有传给浏览器的输出时,连接只能持有60秒,一旦出现浏览器输出,DWR会在连接关闭之前,停止一段时间(可配置的时间:maxWaitAfterWrite),强迫代理传输信息,如果是使用DWR2.0.4及以后的版本,没有配置需要。它有默认值,maxWaitAfterWrite参数默认为500毫秒。保持连接开放后第一个输出的情况下增加500毫秒刷新强行关闭连接。

 

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

pollAndCometEnabled

开始版本:2.0

默认值:false

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

maxWaitingThreads

开始版本:2.0

默认值:100

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

preStreamWaitTime

开始版本:2.0

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

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

postStreamWaitTime

开始版本:2.0

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

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

 

3 其他参数

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的<welcome-file-list>标签

 


2、当我们想看DWR自动生成的测试页(Using debug/test mode)时,可在
java代码: 

servlet中加
<init-param>
  <param-name>debug</param-name>
  <param-value>true</param-value>
</init-param>
这个参数DWR默认是false.如果选择true.我们可以通过urlhttp://localhost:port/app/dwr ,你就可以看到你部署的每个DWR class。并且可以测试java代码的每个方法是否运行正常。为了安全考虑,在正式环境下你一定把这个参数设为false.
3、logging信息配置。
在无java.util.logging的jdk1.3下运行DWR,我们不希望强制用户加一个logging包,而是用HttpServlet.log ()方法来输出日志。如果classpath中包括logging jar包,DWR自动切换用logging输出日志。
如果用HttpServlet.log()方法,以下配置是有效的。
java代码: 

<init-param>
<param-name>logLevel</param-name>
<param-value>DEBUG</param-value>
</init-param>
有效的值是 FATAL, ERROR, WARN (the default), INFO and DEBUG

我是喜欢用log4j输出日志,那么在log4j.properties下加,log4j.logger.uk.ltd.getahead.dwr = debug。这样可以看DWR的调试日志。
4、多dwr.xml文件的配置
可能有几种情况,我们一一列举。 一个servlet,多个dwr.xml配置文件;多个servlet,每个servlet对应一个或多个dwr.xml.
一个servlet,多个dwr.xml配置文件;
java代码: 

<servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
    <init-param>
      <param-name>config-1</param-name>
      <param-value>WEB-INF/dwr1.xml</param-value>
    </init-param>
    <init-param>
      <param-name>config-2</param-name>
      <param-value>WEB-INF/dwr2.xml</param-value>
    </init-param>
</servlet>
在这种配置下,param-name的值必须以config开头。param-name可以有>=0个。如果没有param-name,那么将会读取 WEB-INF/dwr.xml。如果有大于零个param-name,那么WEB-INF/dwr.xml文件将不会被读取。

多个servlet,每个servlet对应一个或多个dwr.xml
java代码: 

<servlet>
   <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<!--用classes/dwr.xml-->
</servlet>
<servlet>
   <servlet-name>dwr-invoker1</servlet-name>
   <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
   <init-param>
     <param-name>config-admin</param-name>
     <param-value>WEB-INF/dwr1.xml</param-value>
   </init-param>
   <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>
<servlet-mapping>
   <servlet-name>dwr-invoker1</servlet-name>
   <url-pattern>/dwr1/*</url-pattern>
</servlet-mapping>
在这种情况下,我们可以根据J2EE security来控制权限,针对不同url,加不同的角色。
5、dwr的几个扩展点(Plug-ins)
DWR对以下接口提供的默认的实现,用户可以继承DWR的默认实现类来达到我们想要的效果。但这至少需要我们读了DWR源码才能做这些工作(dwr源码很是清晰,有兴趣可以学习一下),以后可能补存这部分。
java代码: 

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