7

我正在按照这个例子让 Spring 启动并运行:http ://static.springsource.org/docs/Spring-MVC-step-by-step/part2.html

他们所做的是将所有 .jsp 文件移动到 WEB-INF 中,以阻止用户直接访问它们……到目前为止一切都很好。然而,servlet 有一个 index.jsp 的欢迎页面,当它被移动到 WEB-INF 目录中时,我得到了错误。我无法确定 Tomcat 6 是否应该允许欢迎页面位于 WEB-INF 内?

4

3 回答 3

7

WEB-INF 内部的任何内容都不能直接访问,但必须首先通过其他东西(通常是 servlet),然后在内部将请求转发到 WEB-INF 资源。

于 2009-09-28T20:46:06.607 回答
3

我正在尝试相同的教程。本教程没有说明这一点,但我将 web.xml 中的值从“index.jsp”更改为“/WEB-INF/jsp/index.jsp”。

于 2009-11-30T02:24:31.977 回答
1

我使用这样的技术(适用于 Servlet API >= 2.4):

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
    <url-pattern>/index.htm</url-pattern>    <<==  *1*
</servlet-mapping>
<welcome-file-list>
    <welcome-file>index.htm</welcome-file>   <<== *2*
</welcome-file-list>

所以你不再需要redirect.jsp

<% response.sendRedirect("/myproject/MyAction.action"); %>

在非WEB-INF目录中!!

这里有两个具有相同技术的博客:

更新来自文档SRV.9.10 Welcome Files部分Servlet API 2.4^

这种机制的目的是允许部署者指定一个有序的
容器的部分 URI 列表,用于在存在 URI 时附加到 URI
请求对应于 WAR 中未映射到的目录条目的 URI
一个 Web 组件。这种请求称为有效的部分请求。

以下常见示例清楚地说明了该设施的用途:
可以定义“index.html”的欢迎文件,以便对 URL 的请求
host:port/webapp/directory/,其中 `directory' 是 WAR 中的一个条目,即
未映射到 servlet 或 JSP 页面,以 `host:port/ 形式返回给客户端
webapp/目录/index.html”。
于 2013-03-21T15:28:27.233 回答