为什么web.xml的欢迎文件位于WEB-INF中
我读过jsp
里面的文件WEB-INF
不能从外面访问(必须从调用Servlet
)。
但是,为什么welcome-file
in web.xml
文件指向WEB-INF
目录内的文件?因为这样可以从外部访问文件:
<welcome-file-list> <welcome-file>WEB-INF/page.jsp</welcome-file>
</welcome-file-list>
我正在使用Google App engine
默认的Servlet容器进行测试Jetty 6
。
回答:
这是因为欢迎文件是通过RequestDispatcher#forward()
呼叫提供的。作为证据,您看到/WEB-
INF/page.jsp出现在浏览器的地址栏中吗?没有?那么,这绝对不是直接请求。如果尝试直接请求它,则会看到404。
也可以看看:
- RequestDispatcher.forward()与HttpServletResponse.sendRedirect()
- Servlets Wiki页面 -包含Hello World示例,这些示例说明了现实世界中的用例
forward()
具体问题 ,您似乎基本上是在滥用<welcome-file>
“主页文件”。那里不是故意的。它intented到指定文件夹的文件的唯一文件名,你想就可以提供时_任_中被请求的文件夹,如/
,/foo/
,/foo/bar/
,等。如果你指定index.jsp
,那么/index.jsp
,/foo/index.jsp
,/foo/bar/index.jsp
,等会被透明的由前担任了无需更改网址。
以上是 为什么web.xml的欢迎文件位于WEB-INF中 的全部内容, 来源链接: utcz.com/qa/410351.html