我希望http:// localhost:8080 /具有与访问http:// localhost:8080 / basicSetup / index.xhtml相同的效果

时间:2013-05-05 06:23:22

标签: jsf tomcat

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-    app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>basic setup</display-name>
<servlet>
 <servlet-name>Faces Servlet</servlet-name>
 <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
 <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>/index.faces</welcome-file>
 </welcome-file-list>

应该从www.example.com这样的域访问它,而不显示www.example.com/basicsetup。

1 个答案:

答案 0 :(得分:1)

明智地通过Tomcat 7 server documentation来解决这个问题,特别是下面的部分,为你讲述(强调我的:

  

Context元素表示在特定虚拟主机中运行的Web应用程序。每个Web应用程序都基于Web应用程序归档(WAR)文件...

     

用于处理每个HTTP请求的Web应用程序由Catalina根据请求URI的最长可能前缀与每个已定义上下文的上下文路径进行匹配来选择。

     

您可以根据需要定义任意数量的Context元素。每个这样的上下文必须在虚拟主机中具有唯一的上下文名称。上下文路径不需要是唯一的(请参阅下面的并行部署)。此外,上下文必须存在,上下文路径等于零长度字符串。此Context成为此虚拟主机的默认Web应用程序,用于处理与任何其他Context的上下文路径不匹配的所有请求。

因此,总结一下:您需要按照here所述定义<Context path="" ... />

您可以在HOWTO set the context path of a web application in Tomcat 7.0问题的答案中找到所需的详细信息。