DWR 关于 自动生成的 js文件的疑惑。

本人今天开始学习DWR,按照参考书上做了一个Hello Name的例子,有三点不明白的地方。

1.我在jsp页面引用
这个service.js是哪里来的(当然了,我知道是自动生成的,但是这个东西放在哪里?)

2.我按照书上的说明将engine.js和util.js两个js文件放置在工程目录下的jscript文件夹里,并在jsp页面引用
[code="js"]
[/code]
结果报错:[color=red]A request has been denied as a potential CSRF attack.[/color]

3.我通过网上的方法,网上提供两种方法, 我只用第二种简单的,就是将jscript/engine.js和jscript/util.js改为:
dwr/engine.js和dwr/util.js(也就是更改了js文件存放的目录),结果可以运行,但是我就郁闷了,dwr这个目录以及里面的js文件根本不存在啊,并且我在浏览器里输入:http://10.81.66.173/dwr_1/dwr/engine.js它又弹出engine.js的文件下载框,说明存在该文件,但是明明我找不到啊,自动生成的也应该至少存在把。怎么隐身了啊。

在这里跟大家交个朋友,请大家帮我看看是什么原因。

dwr

3个回答

这两个js是确实存在的,你浏览器输入的地址只是网络映射地址,而这两个js实际是放在dwr.jar包里面的,是通过org.directwebremoting.servlet.DwrServlet解析的,因为这个servlet拦截的就是/dwr/*的地址。

[quote]2.我按照书上的说明将engine.js和util.js两个js文件放置在工程目录下的jscript文件夹里,并在jsp页面引用[/quote]

-- 关于这点,我不理解!因为现在的DWR并不存在这两个js文件

在web.xml中,我们作如下配置:
[code="xml"]

dwr-invoker
/dwr/*

[/code]

这意味着,不管是dwr/interface/service.js,还是dwr/engine.js,其最终都是交给dwr-invoker(这里指org.directwebremoting.servlet.DwrServlet)处理。

[color=blue]我觉得楼主是纠结于为什么请求路径中包含后缀名是*.js,而实际上不存在engine.js的javascript文件这一问题吧!![/color]

举个例子,我们创建一个Servlet(可以输出“hello”),然后在web.xml中作如下配置:
[code="xml"]

myServlet
/main.html



myServlet
/main.js

[/code]

这样,不管你在浏览器中输入http://localhost/main.[color=red]html[/color],或是http://localhost/main.[color=red]js[/color],最终都是输出“hello”

补充一点,楼主可以参照官方发布的一个简单例子,如果可以阅读简单英文的话,那就更容易入门了!!!
[url]http://directwebremoting.org/dwr/introduction/getting-started.html[/url]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!