Pq as paginas jsf usam a extensao jsp, sendo que no web.xml o mapeamento do *.jsf é para o FacesServlet?
Struts, WW, Spring…
É isso mesmo, no link vc coloca jsf e ai manda a respon p outro xml
entao o FacesServlet recebe a requisao e ele apenas troca a extensao pra jsp? (sempre .jsp???) tirando a extensao .jsf ou .faces mapeada?
a troca da estao .jsf pra .jsp é feita pelo Servlet do JSF?
FacesServlet não troca a extensão ele redireciona (forward) para uma jsp.
Não existe troca de extensão. Existe um mapeamento onde todas as requisições deverão passar pelo FacesServlet.
Normalmente o mapeamento é assim:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
e / ou
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
O web.xml não mapeia arquivos para servlets ou filters. Ele mapeia URLs enviadas pelo usuário para servlets ou filters. Depois o servlet ou filter faz um forward pra um arquivo qualquer.
Por isso dá pra colocar as URLs que lhe der na tela, mesmo que não haja um diretório exatamente igual.