为什么web.xml welcome-file可以位于WEB-INF中

时间:2013-07-23 22:17:32

标签: jsp java-ee web.xml

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

但是,为什么welcome-file文件中的web.xml指向WEB-INF目录中的文件?因为这样可以从外面访问文件:

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

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

1 个答案:

答案 0 :(得分:5)

这是因为欢迎文件由RequestDispatcher#forward()电话提供。作为证据,您是否看到/WEB-INF/page.jsp出现在浏览器的地址栏中?没有?然后它绝对不是直接请求。如果您尝试直接申请,您会看到自己获得404。

另见:


对于具体问题,

无关,您似乎基本上滥用<welcome-file>来拥有“主页文件”。那里没有意图。当任何文件夹被请求时,它旨在指定您要提供的文件夹文件的唯一文件名,例如//foo/,{{1}如果您指定/foo/bar/,那么index.jsp/index.jsp/foo/index.jsp等将由转发服务透明地提供,而不会更改网址。