2

在 appengine 中,index.html 是作为静态文件还是首先涉及到 servlet 容器?例如,假设我有 blabla.com 主机,war/index.html 并且用户访问 http://blbla.com/
我不希望首先命中 servlet 容器以确定它是 welocme 的一部分-file-list 在 web.xml 中配置,只有这样 appengine 才会将其作为静态文件提供。避免服务器往返的唯一方法是让用户点击网址http://blabla.com/index.html吗?
根据文档https://developers.google.com/appengine/docs/java/gettingstarted/staticfiles说:
By default, App Engine makes all files in the WAR available as static files except JSPs and files in WEB-INF/. Any request for a URL whose path matches a static file serves the file directly to the browser—even if the path also matches a servlet or filter mapping.
所以现在的问题:如果我在欢迎文件列表中指定了“index.html”,以下哪项是正确的用户点击http://blabla.com

  1. appengine 知道它必须将 index.html 直接作为静态文件提供服务,并且我的 servlet 容器不需要检查欢迎文件列表。
  2. appengine 不知道它必须从静态文件中提供 index.html 并且我的 servlet 容器被命中只是为了检查 welcome-files-list 然后允许 appengine 将其作为静态文件获取。

如果是 2:将 html 文件用作静态文件的唯一方法是让用户直接在 url 中点击它们,即http://blabla.com/index.html?这是非常重要的时刻,因为这意味着您的 servlet 容器可能会在每个请求时间执行额外的工作来解析欢迎文件列表,这会导致浪费 cpu,如果用户指定了 html 文件的直接路径,则可以避免这种情况。

4

1 回答 1

0

默认情况下,App Engine 将 WAR 中的所有文件作为静态文件提供,但 JSP 和 WEB-INF/ 中的文件除外。对路径与静态文件匹配的 URL 的任何请求都将文件直接提供给浏览器——即使该路径也与 servlet 或过滤器映射匹配。您可以使用 appengine-web.xml 文件配置 App Engine 将哪些文件视为静态文件。

但是您不能将 url“/”设置为静态文件。

请参阅文档

于 2012-04-06T17:06:17.300 回答