【问题标题】:Default resource for root context根上下文的默认资源
【发布时间】:2013-12-23 12:33:06
【问题描述】:

假设 web.xml 中的welcome-file-list 中没有条目。如果请求 URL 仅包含根上下文,则 servlet 容器应尝试查找什么资源,例如localhost:8080/myWebApp 以及 servlet 规范的哪一部分(低于 3.0 的任何版本)是这样说的?如果欢迎文件列表中没有指定任何内容,它似乎会查找“index.html”。

更新:

这是由 maven 原型生成的整个 web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>

这是我用来生成网络应用程序的 maven 原型:

254: remote -> net.sf.mgp:maven-archetype-gwt (An archetype which contains a sample Maven GWT project.)

我尝试访问应用程序的根上下文,它为 /index.html 资源提供服务,并通过按钮为页面提供服务。它没有给出 404。

【问题讨论】:

  • 你为什么认为它在寻找 index.html?
  • @John 2 我尝试运行一个 gwt 示例项目,但不知道 servlet 容器如何知道它需要为 index.html 提供服务。我对这个stackoverflow.com/questions/20414513/gwt-and-web-xml提出了一个问题@
  • 你的容器/服务器是什么?
  • 我在 Jboss 7.1.1 和 tomcat 5.5 上都试过了。得到了相同的结果。

标签: servlets


【解决方案1】:

据我所知,Servlet 规范对此没有任何说明。如果您的 Web 应用程序没有提及欢迎文件列表并且您的上下文根是 myWebApp 那么当您点击时

localhost:8080/myWebApp

您将收到 HTTP 404 错误。

【讨论】:

  • 我尝试创建一个几乎空白的简单网络应用程序,web.xml 中除了标题和 index.html 文件之外什么都没有。不,如果您有 index.html 文件或 index.jsp 文件,它确实不会提供 HTTP 404。我想我可以肯定地说这个答案是错误的。我使用 Jboss 5.1/7.1.1、Tomcat 5.5 进行了测试。
  • 那么这是服务器的一个特性而不是 servlet 规范
  • 如果它只是一个特定于服务器的功能,为什么原型的作者会假设不需要在 web.xml 中指定任何内容?这将使他们的原型不可移植。
猜你喜欢
  • 1970-01-01
  • 2018-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多