java - 静态 index.html 文件 - servlet 容器是否首先被命中?

标签 java google-app-engine static-files

在appengine中,index.html是作为一个静态文件还是首先涉及到一个servlet容器? 例如,假设我有 blabla.com 主机 war/index.html 并且用户转到 http:/blbla.com/
我不希望首先命中 servlet 容器以确定它是在 web.xml 中配置的 welocme-file-list 的一部分,然后 appengine 才会将其作为静态文件提供。避免服务器往返的唯一方法是让用户点击 url http://blabla.com/index.html ?
根据文档 https://developers.google.com/appengine/docs/java/gettingstarted/staticfiles说:
默认情况下,App Engine 将 WAR 中的所有文件作为静态文件提供,JSP 和 WEB-INF/中的文件除外。对路径与静态文件匹配的 URL 的任何请求都会直接将文件提供给浏览器——即使该路径也与 servlet 或过滤器映射匹配。
那么现在的问题是:如果我在欢迎文件列表中指定了“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 文件的直接路径,这是可以避免的。

最佳答案

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

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

参见 documentation .

关于java - 静态 index.html 文件 - servlet 容器是否首先被命中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10046003/

相关文章:

java - Test NG 中使用 Object[][] 类型数据提供者的函数应该接收什么样的参数?

java - 在 tomcat 7/maven 嵌入式 tomcat 上运行 Spring 3.1 webapp

google-app-engine - 谷歌应用引擎 : Endpoints authentication with ID and password

python - 在 Google App Engine 上使用 Python NLTK (2.0b5)

node.js - Node/Express - 拒绝应用样式,因为它的 MIME 类型为 ('text/html')

django - 读取 View 中的静态文件

java - 创建一个基本的 MVP Android 应用程序

python - 谷歌应用程序引擎在 Python 的情况下很慢

node.js - 学习 Node - Express 公共(public)文件夹不工作

java - 使用 appium whlie 客户端访问 Android 设置中的切换按钮是用 groovy 和 java 编写的