1

我已经读到无法从外部访问jsp内部的文件(必须从 a 调用)。 WEB-INFServlet

但是,为什么welcome-fileinweb.xml文件可以指向WEB-INF目录内的文件呢?因为这样可以从外部访问文件:

<welcome-file-list>  
    <welcome-file>WEB-INF/page.jsp</welcome-file>  
</welcome-file-list>

我正在使用Google App engine默认的 Servlet 容器进行测试Jetty 6

4

1 回答 1

5

这是因为欢迎文件是通过RequestDispatcher#forward()调用提供的。作为证据,您是否看到/WEB-INF/page.jsp出现在浏览器的地址栏中?不?那么它已经绝对不是直接请求了。如果您尝试直接请求它,您会看到收到 404。

也可以看看:


与具体问题无关,您似乎基本上是在滥用<welcome-file>“主页文件”。它不是故意的。它旨在指定在请求任何文件夹时您希望提供的文件夹文件的唯一文件名,例如/, /foo/,/foo/bar/等。如果您指定index.jsp, 那么/index.jsp, /foo/index.jsp,/foo/bar/index.jsp等将由转发透明地提供无需更改 URL。

于 2013-07-24T01:41:07.010 回答