org.directwebremoting.servlet.DwrServlet的相关的配置说明
1) 官网下载相关的jar包,dwr.jar
2) 在web.xml中进行配置
<!-- dwr -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet- class>
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
对其中的参数crossDomainSessionSecurity 允许进行跨域的访问,默认是false的,因为这样的话会导致一些风险
安全参数
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攻击)
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的welcome-file-list标签。
3) 在WEB-INF下面配置dwr.xml文件
<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAheadLimited//DTD Direct Web Remoting 2.0//EN""http://getahead.org/dwr/dwr20.dtd">
<dwr>
<init>
</init>
<allow>
/如下可以建立多个
/ staffsService 我们指定这个调用的js的名称,对应的方法在那个类中
<createcreator="new" javascript="staffsService">
<param name=”class”
value=”cn.com.inxite.web.controller.StaffsController”>
</create>
/当然下面的我们也可以进行配置多个
<!--以下为向javaScript公布的java类 此处以下类型转换 -->
<convert converter="bean"
match="cn.com.inxite.kernel.entity.Staffs"/>
</allow>
</dwr>
3) Jsp 界面的调用
<script type='text/javascript'
src='<%=request.getContextPath()%>/dwr/interface/getTzgw.js'>
</script>
<script type='text/javascript'
src='<%=request.getContextPath()%>/dwr/engine.js'></script>
<script type='text/javascript'
src='<%=request.getContextPath()%>/dwr/util.js'></script>
如上需要导入上面的三个js,对于 getTzgw.js其中,getTzgw 是我们在dwr中需要进行配置的,名称要一致。这样在我们的js中我们就可以调用了例如:
function objFunc(obj){
if(obj==null || obj==''){
return false;
}
getTzgw.method(obj,callbackChangeTzgw);
}
FunctioncallbackChangeTzgw(data){
/可以根据data的返回类型进行相应的处理
/或者进行其他的操作,这里也可以在调用其他的dwr的情况再进行异步调用
该函数为回调函数
}
///当然我们也可以这么写,对于那些在objFunc方法总得局部变量可能没法
//传递的情况
function objFunc(obj){
if(obj==null || obj==''){
return false;
}
getTzgw.method(obj,functioncallback(data){
//在这里可以进行处理
});
}