我正在按照这个例子让 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 内?
我正在按照这个例子让 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 内?
WEB-INF 内部的任何内容都不能直接访问,但必须首先通过其他东西(通常是 servlet),然后在内部将请求转发到 WEB-INF 资源。
我正在尝试相同的教程。本教程没有说明这一点,但我将 web.xml 中的值从“index.jsp”更改为“/WEB-INF/jsp/index.jsp”。
我使用这样的技术(适用于 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”。