我有一个简单的Web应用程序,它使用基本的jsp和servlet。 我有一个servlet过滤器映射到/ *。 我有一个配置为index.jsp的欢迎文件
<filter-mapping>
<filter-name>ObjectifyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
我遇到的问题是当一个不存在的资源请求并且在app引擎上部署时应该返回404错误时,会在尝试重复附加斜杠+欢迎文件时无休止地返回302。
E.G: http://myyapp.appspot.com/foo的请求(没有为foo配置任何内容)产生以下内容:
在开发服务器上,这将返回预期的404.如果我删除了过滤器映射,它也会在应用引擎上返回404。
这看起来相当基本,所以我猜我错过了某个地方。有什么想法吗?
答案 0 :(得分:0)
看起来问题的一个基本要素是web.xml中的jsp-config标记。虽然我认为内容并不重要,但我看起来像这样:
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
删除jsp-config标签解决了我的问题,即它是一种解决方法。在我的情况下它没有太大的伤害,因为我可以分别在每个页面上指定页面编码。但是我仍然对真正的解决方案感兴趣。