Web.xml是默认文件目录吗?(适用于Jetty或Tomcat)

8

我有一个名为./welcome/的目录,其中包含一个名为./index.jsp的文件。

我知道如何告诉jetty或tomcat如何在./wecome/index.jsp处启动。但是,我还有很多其他带有./index.jsp的目录,例如---./blogs/,./whatever/等等。

没有使用servlets的情况下,有没有一种方法可以告诉jetty或tomcat:“嘿,每当你收到一个目录请求时,请查看是否有一个./index.jsp--并将其显示给用户。”

就像如果我访问./blogs/,我不想看到404未找到错误。我想看到./blogs/index.jsp的内容,但我不希望我的用户被重定向到./blogs/index.jsp--我希望他们的浏览器仍然只显示./blogs/。

我知道apache有这样的功能。任何帮助都将不胜感激,谢谢。

2个回答

12

“嘿,每当您收到有关目录的请求时,请查看是否存在./index.jsp,并向用户显示它。”

这正是welcome-file-list应该做的事情。

只需将以下内容添加到web.xml中。在此情况下,首先容器将尝试index.html,如果不存在,则尝试index.jsp

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

我已在Tomcat 5.5上测试过,它可以正常工作。

不幸的是,很难找到关于web.xml的官方参考文档。因此,这里提供了Oracle weblogic的文档(链接),我认为它是可信的......


哦!哈哈,这是一个非常愚蠢的问题,想一想就知道了。我以为我都正确了,但我的 welcome-file-list 被设置为 ./welcome/index.jsp -- 难怪,谢谢! - somid3

0

参考上文:

首先容器将尝试使用index.html,如果不存在,则尝试使用index.jsp。

我的应用程序始终使用index.html,即使存在index.jsp和index.html,无论配置顺序如何。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接