xmlns="
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
dwr-invoker
org.directwebremoting.servlet.DwrServlet
config
/WEB-INF/dwr.xml
debug
true
logLevel
DEBUG
1
dwr-invoker
/dwr/*
注意其中的如下设置项目:
debug是将DWR设置为调试方式,这样一方面可以在控制台中显示详细的运行状态信息,而且也还可以通过http:
//localhost:
port/app/dwr/进入DWR所提供的在线测试页,可以看到部署的每个DWR的Java类。
在测试页中可以测试服务器端Java代码的每个方法是否运行正常。
为了安全考虑,在正式环境下你一定把这个参数设为false。
4、添加log4J相关的系统库文件
(1)DWR中的log的实现并没有强制某个Logging的形式
DWR并不需要要求我们强制某个Logging的形式,可以为各种的Logging的实现。
一般我们采用Commons-Logging---然后再采用Log4J的实现。
(2)需要在web.xml中增加下面的配置项目
在web.xml文件中对前面的uk.ltd.getahead.dwr.DWRServlet添加下面的配置参数----前面已经设置好了!
logLevel
DEBUG
(3)同时,将log4j.properties的文件内容放在WEB-INF/classes目录下
(4)其内容可以为下面的内容
#ForJBoss:
AvoidtosetupLog4Joutside$JBOSS_HOME/server/default/deploy/log4j.xml!
#Forallotherservers:
CommentouttheLog4Jlistenerinweb.xmltoactivateLog4J.
log4j.rootLogger=INFO,stdout,logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d%p[%c]-<%m>%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=mylog.log
log4j.appender.logfile.MaxFileSize=512KB
#Keepthreebackupfiles.
log4j.appender.logfile.MaxBackupIndex=3
#Patterntooutput:
datepriority[category]-message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d%p[%c]-%m%n
执行过程中,能够看到dwr的各种状态提示
(5)同时,将在当前的项目的Tomcat目录下,产生下面的日志文件
(6)添加commons-logging.jar和log4j-1.2.14.jar
1.1.2DWR常用参数说明
1、安全参数
●allowGetForSafariButMakeForgeryEasier开始版本:
2.0
默认值:
false
描述:
设置成true使DWR工作在Safari1.x,会稍微降低安全性。
●crossDomainSessionSecurity开始版本:
2.0
默认值:
true
描述:
设置成false使能够从其他域进行请求。
注意,这样做会在安全性上有点冒险,一般不要设置成为false。
●debug开始版本:
1.0
默认值:
false
描述:
设置成true使DWR能够debug和进入测试页面
●scriptSessionTimeout开始版本:
2.0
默认值:
1800000(30分钟)
描述:
scriptsession的超时设置
●maxCallCount开始版本:
2.0rc2和1.1.4
默认值:
20
描述:
一次批量(batch)允许最大的调用数量。
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通过检查文档和提取当前sessionID支持URL重写。
一些servlet引擎使用非标准的cookie名。
参数允许你改变默认值。
●welcomeFiles开始版本:
2.0
默认值:
index.html,index.htm,index.jsp
描述:
类似于web.xml的标签
1.2利用DWR框架的在线测试功能对示例项目中的功能页面进行测试
1.2.1dwr.xml配置文件
1、设计dwr.xml文件(在文件中放各种配置定义项目)
dwr.xml的作用是告诉DWR系统有哪些Java类中的哪些方法你需要暴露给前台(JavaScript)使用,当DWR启动时候根据dwr.xml这个文件把java类中的方法转成js中可用的对象中的方法。
(1)新建一个dwr.xml文件
(2)XML文件的内容
1)该XML文件的内容如下-----对DWR2.0版系统,则为如下的配置结果
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEdwrPUBLIC"-//GetAheadLimited//DTDDirectWebRemoting2.0//EN""http:
//www.getahead.ltd.uk/dwr//dwr20.dtd">
2)对于3.0版的DWR框架系统,则为如下的配置结果
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEdwrPUBLIC"-//GetAheadLimited//DTDDirectWebRemoting3.0//EN""http:
//getahead.org/dwr/dwr30.dtd">
2、执行本Web应用
(1)配置服务器
(2)部署本示例项目的应用
将看到下面的结果
(3)启动服务器后,如果看到如下的异常抛出
原因是DWR2.0加入了JDK5的注释(annotations),DwrServlet初始化的时候会去检查注释的类。
可以通过对DwrServlet添加下面的来避免。
classes
java.lang.Object
(4)再启动服务器,将不再出现异常抛出,并能够看到log信息。
注意:
在DWR2.3和DWR3.0版已经改进了上面的错误