dwr配置篇web.xml

本文详细介绍DWR在web.xml中的配置方法,包括安全参数、Ajax服务器加载保护参数及其他配置选项,并探讨了多dwr.xml文件配置及DWR扩展点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值