学习DWR的时候,用的是DWR2.0.6版本和火狐浏览器,在做官方的Hello world 的时候,按照文档,做的如下配置:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<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>
<script type="text/javascript" src="scripts/engine.js"></script>
<script type="text/javascript" src="scripts/util.js"></script>
<script type="text/javascript" src="dwr/interface/service.js"></script>
<script type="text/javascript">
function firstDwr(){
service.sayHello("Tom",function(data){
alert(data);
});
}
</script>
但运行时出现以下错误:
2011-7-8 12:42:28 org.directwebremoting.util.CommonsLoggingOutput error
严重: A request has been denied as a potential CSRF attack.
Google了一把,发现很多人都出现了这个错误,其中网上的一个解决方法是:
修改web.xml文件,添加
crossDomainSessionSecurity初始化参数,并设置其值为
false,配置如下:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<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>
corssDomainSessionSecurity这个配置选项是在dwr版本2.0才有的,默认值为true,也就是禁止其他域发送请求,corssDomainSessionSecurity设置成false能够从其他域进行请求,这样做会在安全性上有一些冒险。
再用火狐测试时没有报上述错误,控制台打出如下信息:
2011-7-8 12:57:25 org.directwebremoting.util.CommonsLoggingOutput info
信息: Exec: service.sayHello()
但是确没有执行结果,既浏览器上没有弹出相应的信息。
用IE测时,IE浏览器报出如下错误:
消息: 例外被抛出且未被接住
行: 980
字符: 3
代码: 0
URI: http://localhost:8080/DwrTest/jslib/engine.js
难道是引入的js文件有问题,经过测试,最终发现了问题,在dwr.jar中的org.directwebremoting包中已经存在了engine.js和util.js,那是不是就不需要另外的再在工程中引入这两个文件。于是我把engine.js和util.js这两个文件和scripts文件夹从工程中删除,再把jsp中的引入方式改为如下的:
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/service.js"></script>
同时把web.xml中新增的crossDomainSessionSecurity配置项删除,既web.xml改为如下的:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<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>
然后再运行程序,正确执行。
分享到:
相关推荐
dwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwr
dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;
dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架
DWR框架实例及常见问题解决办法,免费放送,需要的下载之后扩展就是你自己的东西了
DWR中文文档DWR中文文档DWR中文文档DWR中文文档DWR中文文档
dwr源码
dwr中文文档dwr中文文档dwr中文文档dwr中文文档dwr中文文档dwr中文文档dwr中文文档
dwr笔记 dwr自学资料 dwr笔记 dwr自学资料 dwr笔记 dwr自学资料
DWR初学者专题,有详细笔记。 DWR很轻松就学会。 取得dwr的dwr.jar包和其他dwr所需的其他jar包 web.xml dwr.xml 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,。。 有几个术语有必要理解,参数叫做...
Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr...
DWR配置文件详解 DWR配置 DWR配置文件
DWR介绍DWR介绍DWR介绍DWR介绍DWR介绍DWR介绍
1、 导入dwr.jar包 2、 在web.xml中配置dwr,如下: <!-- 配置DWR --> <servlet-name>dwr-invoker org.directwebremoting.servlet.DwrServlet <init-param> <param-name>debug</param-name> ...
dwr包.rar dwr.jar engine.js util.js dwr-noncla.jar readme.txt JAR File: dwr.jar (1.08Mb) To DWR enable your web-app WAR File: dwr.war (4.62Mb) Demos/Examples of what DWR can do Sources: dwr-...
该示例资源主要解决如下两个问题,其一就是解决SpringBoot集成DWR3.0.2-RELEASE版本,无配置文件快速简洁完成集成工作,省去dwr.xml等DWR框架初始化需要的配置文件;其二就是解决了集成后的SpringBoot项目在开发环境...
dwr2.0.6 dwr2.0.6dwr2.0.6dwr2.0.6dwr2.0.6dwr2.0.6dwr2.0.6dwr2.0.6
dwr填充表格示例dwr填充表格示例dwr填充表格示例
dwr1.0版本 dwr2.0版本 dwr3.0版本的jar包
dwr分页源码,dwr分页源码 dwr分页源码,dwr分页源码
DWR中文版教程 DWR与Spring DWR与Struts DWR与Hibernate