项目中用到JDiy和DWR组合,搭建起来之后发现网页不能访问了。初步设想是JDiy加载的Filter影响到了DWR的Servlet。
故此通过对web.xml配置中导入的org.directwebremoting.servlet.DwrServlet类和org.jdiy.core.JDiyLoadFilter类进行源码查看学习。
后来重新整理之前学习dwr的时候一个记录,如下:
<listener>
<listener-class>
org.directwebremoting.servlet.DwrListener
</listener-class>
</listener>
<!-- listener非必须??有何用??要再查下,去掉它是可以正常运行的 -->
这个监听器在当初单独学习dwr的时候是没什么用的,哪怕被去掉也是可以运行dwr组件。所以后来用到dwr的时候我都是默认将这个监听器去掉的。
而在这次错误中,发现把这个监听器加上就可以了,但是依然会导致一个CSRF攻击问题。——而这个问题出现是因为跨域调用问题,解决方法只需要将dwr的跨域调用配置上就行了。跨域调用参考文章