【问题标题】:Google app engine endless redirect with a filter mapped to /*谷歌应用引擎无限重定向,过滤器映射到 /*
【发布时间】:2012-09-06 06:10:26
【问题描述】:

我有一个使用基本 jsp 和 servlet 的简单 Web 应用程序。 我有一个映射到 /* 的 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>

我遇到的问题是,当对不存在的资源的请求并且在应用引擎上部署时应该返回 404 错误时,在尝试重复附加斜杠 + 欢迎文件时无休止地返回 302。

例如: 对http://myyapp.appspot.com/foo(没有为 foo 配置任何内容)的请求会产生以下结果:

http://myyapp.appspot.com/foo/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/

在开发服务器上,这会返回预期的 404。如果我删除过滤器映射,它也会在应用引擎上返回 404。

这似乎相当基本,所以我猜我在某个地方遗漏了一些东西。有什么想法吗?

【问题讨论】:

  • 你知道是谁在做重定向吗?单独的 Welcome-list-file 不会。
  • 你使用这个过滤器只是为了用objectify注册​​类吗?
  • 一定是缺少一些额外的信息。 ObjectifyFilter 不会发出任何类型的重定向(继续查看代码),也不会在没有特殊刺激的情况下使用 GAE。
  • 我不知道重定向是什么。我假设它是一个应用引擎网络服务器/应用服务器。正如我所提到的,它在开发服务器上按预期在本地工作。
  • 我也尝试了一个简单的过滤器,除了chain.doFilter(request, response); 什么都不做,并得到相同的结果。正如stickfigure 所提到的,ObjectifyFilter 并没有真正做太多事情,只是简单地传递东西。

标签: java google-app-engine objectify


【解决方案1】:

看起来问题的一个重要因素是 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 标记为我解决了这个问题,即这是一种解决方法。就我而言,它并没有造成太大的伤害,因为我可以分别在每个页面上指定页面编码。但是我仍然对真正的解决方案感兴趣。

【讨论】:

  • 有趣的问题...我有以下 jsp 配置:&lt;jsp-config&gt; &lt;jsp-property-group&gt; &lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt; &lt;scripting-invalid&gt;true&lt;/scripting-invalid&gt; &lt;/jsp-property-group&gt; &lt;/jsp-config&gt; 而我使用的 workaround 是在应用程序中不引用任何 .jsp 文件.. 意思我有很多东西,比如&lt;servlet&gt; &lt;servlet-name&gt;about&lt;/servlet-name&gt; &lt;jsp-file&gt;/about.jsp&lt;/jsp-file&gt; &lt;/servlet&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-19
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
相关资源
最近更新 更多