【发布时间】:2015-04-06 21:37:28
【问题描述】:
我正在尝试关注 these instructions 以使我的 GWT/App Engine 应用可抓取。我按照描述构建了一个过滤器,并在我的 web.xml 中包含以下内容:
<filter>
<filter-name>crawlFilterChain</filter-name>
<filter-class>com.project.name.server.service.CrawlFilterChain</filter-class>
</filter>
<filter-mapping>
<filter-name>crawlFilterChain</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>BaconBits.html</welcome-file>
</welcome-file-list>
然后我尝试通过在浏览器中加载此 URL 来测试配置:
http://127.0.0.1:8888/?gwt.codesvr=127.0.0.1:9997&_escaped_fragment_=page%3DEvent%26eventId%3D1138
过滤器被调用,但不是针对第一次加载页面时的初始“GET /”请求(返回欢迎文件的那个)。它只为后续的 RPC/AJAX 请求调用,这些请求都没有查询字符串。奇怪的是,如果我在 URL 中的 / 之后插入一个不存在的资源(例如 index.html),则会调用过滤器,并返回相应的 HTML。我究竟做错了什么?生产中的行为是相同的。
这看起来与here 和here 描述的问题相同,但使用他们推荐的相同配置不起作用。基本上,返回欢迎文件的“GET /”请求不会调用过滤器。我究竟做错了什么?
【问题讨论】: