【问题标题】:How to reclaim the /WEB-INF URL in App engine?如何在 App 引擎中回收 /WEB-INF URL?
【发布时间】:2012-02-12 00:12:55
【问题描述】:

我希望所有 URL(映射到静态文件的 URL 除外)都由我的 Servlet 处理。

我已经正确设置了它,它就像一个魅力除了 url /WEB-INF/ 总是由 App-engine 中的静态文件处理程序处理。

即使我把它放在我的appengine-web.xml:

<static-files>
    <include path="/s/**" />
    <exclude path="/WEB-INF" />
</static-files

它仍然静态处理/WEB-INF url。 (/s/** 路径是我的应用程序特定的静态文件路径。)

此外,所有以/WEB-INF 开头的路径也是静态处理的,尽管文件实际上并未按预期提供。

有什么方法可以阻止静态处理程序捕获/WEB-INFpath?

【问题讨论】:

  • 为什么您绝对希望 URL 以 /WEB-INF 开头?为什么不选择别的?
  • 我有不同的项目需要它们。其中一个充当 URL 缩短器,另一个根据用户活动创建 URL。我不希望在 URL 选择逻辑中添加特殊情况。
  • 您将不得不添加特殊情况,或者确保您的 URL 生成器无法将这些生成为有效 URL。还有其他无效的 URL,例如以 /_ah//form 开头的任何 URL。
  • 感谢@NickJohnson!你这么一说,案子就封了。 /_ah/ 保证不会由我现有的逻辑创建。我不知道/form。某处有综合清单吗?
  • @HRJ 来自 Python 文档:code.google.com/appengine/docs/python/config/… - Java 运行时没有一个,但据我所知,该列表是加上 /WEB-INF/。

标签: java google-app-engine servlets


【解决方案1】:

/WEB-INF 不是外部可访问的资源。你不能在浏览器中输入/WEB-INF/web.xml,可以吗?

它用作存储配置数据的服务器专用目录。

【讨论】:

  • 我必须澄清一下,我熟悉 WEB-INF 文件夹是什么。问题是 URL 由静态文件服务器处理,而不是传递给我的 servlet。
  • 嗯?它不应该被任何东西处理。如果您在浏览器中转到http://youappname.appspot.com/WEB-INF/web.xml,它会显示什么?
  • 它为任何以/WEB-INF开头的 URL 提供“错误:NOT_FOUND”
  • 当然。此路径不可从外部访问。为什么要将其映射到 servlet?
猜你喜欢
  • 2013-01-13
  • 2011-07-07
  • 2017-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
  • 1970-01-01
相关资源
最近更新 更多