Não! O servidor torna o diretório /WEB-INF e todo o seu conteúdo invisível, não sendo possível acessar urls como /WEB-INF/views/index.xhtml. Alguns framewors como o VRaptor usam colocar suas views dentro de desse diretório, mas isso um recurso específico do framework e não vai funcionar no JSF. O pattern especificado no servlet-mapping serve apenas p/ ativar o JSF. Por exemplo, digamos q vc configurou o seu servlet-mapping como este…
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
… isso significa q toda página JSF deve ser acessada como prefixo faces. Ou seja, se vc acessar a página index.xhtml pela url http://meusite.com/meuprog/faces/index.xhtml, o JSF não vai procurar por um arquivo index.xhtml dentro de um diretório faces, ele vai procurar por esse arquivo na raiz do projeto. Isso pq a parte /faces/ só está ali p/ ativar o JSF. Vc ainda pode acessar o arquivo index.xhtml pela url http://meusite.com/meuprog/index.xhtml mas neste caso o servidor vai devolver o arquivo sem processar as tags do JSF. O mesmo vale p/…
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.wow</url-pattern>
</servlet-mapping>
… o servidor não vai procurar por arquivos com a extensão .wow ele ainda vai procurar p/ arquivos com extensão .xhtml. Mesmo assim quando vc for acessar o arquivo index.xhtml vc precisará usar a url http://meusite.com/meuprog/index.wow p/ q o JSF seja executado. A url http://meusite.com/meuprog/index.xhtml continua sendo válida mas não executa o JSF. O mapeamento…
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
Apenas resolve isso fazendo com q o JSF seja executado através da url q vc normalmente usaria p/ acessar aquele arquivo, além de impedir q o arquivo possa ser acessado de um modo q ele não seja processado pelo JSF, o q resultaria na apresentação do código-fonte desse arquivo ao usuário final e a uma possível brecha na segurança do seu aplicativo.