带有转发JSP的GWT Developer Plugin

时间:2012-07-14 22:22:09

标签: jsp gwt servlets

在我的GWT和AppEngine项目中,我使用以下内容在Servlet中转发JSP:

req.getRequestDispatcher("/index.jsp").forward(req, resp);

JSP包含GWT编译的Javascript引用。

问题是即使页面加载正常,GWT Javascript也不会运行。我假设这是因为新加载的文件不包含通常与GWT插件一起使用的?gwt.codesvr=127.0.0.1:9997部分。

有没有办法让这个工作?

编辑:根据目前为止的答案,我想我应该提一下,它在Web模式下运行得非常好。此外,基本URL直接映射到Web.xml中的Servlet,因此我在http://127.0.0.1:8888/访问Servlet,而不是http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997

上的建议URL

3 个答案:

答案 0 :(得分:2)

?gwt.codesvr=仅在*.nocache.js文件的客户端使用,以触发hosted.html而非某些*.cache.html的加载,因此必须存在在URL中触发DevMode,与服务器端无关。

如果您的主页位于http://127.0.0.1:8888/,请使用http://127.0.0.1:8888/?gwt.codesvr=127.0.0.1:9997

答案 1 :(得分:0)

使用RequestDispatcher进行转发不应更改浏览器中的URL。如果您在浏览器URL中看到gwt.codesvr参数,则GWT插件应该能够找到它。所以问题可能在其他地方。可以肯定的是,您可以暂时将URL参数附加到转发呼叫,例如:

req.getRequestDispatcher("/index.jsp?gwt.codesvr=127.0.0.1:9997").forward(req, resp);

如果仍然无效,请确保*.nocache.js的路径相对于主页正确解析。它是否在Web模式下工作?

答案 2 :(得分:0)

在您的servlet中,为什么不检查请求是否是本地请求。

String url = request.getRequestURL().toString();

如果网址包含http://127.0.0.1:8888或您正在运行它的位置,则可以附加"/index.jsp?gwt.codesvr=127.0.0.1:9997"。 如果没有,你可以保留它。

然后您可以在那里部署和测试代码,而无需更改代码!