我得到以下错误。
失败-应用程序在上下文路径/sampleJSF无法启动
我想更改我的欢迎文件位置。在WEB-INF/pages/index.jsp
处有一个index.jsp
页。我如何修改servlet映射和欢迎文件列表来实现这一点?
这是web.xml
中的servlet-mapping
和welcome-file-list
。
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>WEB-INF/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>WEB-INF/pages/index.jsp</welcome-file>
</welcome-file-list>
看起来您误解了欢迎文件设置和/WEB-INF
文件夹的目的。
欢迎文件必须表示服务器在请求文件夹时应从当前文件夹提供的文件的名称,而不是URL中的文件。例如:/
、/foo/
、/bar/
等。因此,当您将其设置为index.jsp
时,那么当请求/
时,它将服务/index.jsp
,当请求/foo/
时,它将服务/foo/index.jsp
,等等。
/WEB-INF
文件夹用于存放不应独立公开访问的文件。例如,包括文件、模板文件、错误文件、标记文件、配置文件等。在/WEB-INF
上映射Faces Servlet没有任何意义,因为当最终用户有意在URL中进入/WEB-INF
文件夹时,Servlet容器已经限制了对/WEB-INF
文件夹的直接(公共)访问。
撤销您在示例web应用程序上所做的所有更改。它们根本没有意义。无论您错误地认为这是正确的解决方案,您心中的任何功能需求都必须以不同的方式解决。
与具体问题无关,看起来您刚刚开始使用JSF,但是您知道JSP从2009年JSF 2.0开始就被弃用了吗?您是否绝对肯定您正在学习的JSF是基于正确和最新的资源?我强烈建议这样做,否则您将以困惑头痛和代码灾难告终。