Antes de tudo, deve ser verificada a perspectiva do Eclipse, se está para desenvolvimento Java EE. De acordo com a perspectiva que estiver aberta, não é possível visualizar certas opções de criação do projeto web.
Para confirmar a perspectiva, acesse o menu Window -> Open Perspective -> Other, como mostrado na figura 1.

Figura 1: Menu de acesso à perspectiva

Figura 2: Abrindo uma perspectiva de ambiente
De acordo com a figura 2, basta apenas selecionar a opção Java EE e confirmar para conseguir criar um projeto web.
** Conheça o curso Curso de Java: Desenvolvimento de aplicações Web no Eclipse
Para criar um projeto web, clique com o botão direito na view Project Explorer, selecione a opção New -> Dynamic Web Project, como mostrado na figura 3.

Figura 3: Selecionando o tipo do projeto

Figura 4: Configurações de um novo projeto web
Acima, na figura 4, foram realizadas algumas marcações com números de referência para as explicações logo abaixo:
- Project Name – Especificar um nome para o projeto.
- Target Runtime – Após configurar o servidor Tomcat, essa opção é preenchida automaticamente, mas vale sempre observar se está marcando algum servidor.
- Configuration – Clique no botão Modify e marque a opção JavaServer Faces e confirme a janela, de acordo com a figura 4.

Figura 5: Lista de componentes para habilitar no projeto
Após isso, clique no botão Next que irá mostrar a figura 6.

Figura 6: Local onde os códigos Java irão ficar, por padrão não é alterado, clique em Next

Figura 7: Configuração do módulo Web
Na figura 7, é importante selecionar a opção destacada para gerar o arquivo web.xml, conhecido como Deployment Descriptor. Clique em Next.

Figura 8: Configurações de bibliotecas
Ao chegar na tela da figura 8, é preciso realizar os seguintes ajustes que estão destacados:
- Type: Deixar selecionada a opção Disable Library Configuration.
- URL Mapping Patterns: Adicionar os seguintes mapeamentos *.jsf e *.xhtml.
Estrutura projeto web
Para entender mais sobre cada compartimento, abaixo são mostrados os principais itens dessa estrutura, que são:
- Deployment Descriptor – É o arquivo web.xml (WEB-INF) que contém as informações para realizar os ajustes dos parâmetros da aplicação, como segurança, mapeamentos, filtros, conversores, entre outros.
- Java Resources – Nesse elemento que ficam armazenados os packages do projeto, podendo serem acessado os arquivos Java.
- Arquivo faces-config.xml – É o arquivo de configuração de uma aplicação JSF, sendo responsável por descrever os elementos e sub-elementos que compõem o projeto, tais como as regras de navegação, managed-beans, configurações de localização, entre outros.
- WebContent– Local onde fica conteúdo raiz do projeto, a partir dele se cria as pastas e arquivos como: .html, .jsf, .jsp, .xhtml, entre outros.
- WebContent/WEB-INF – Nesse local é que os arquivos de configuração, bibliotecas (jar) e classes ficam armazenados.
- WebContent/WEB-INF/lib – Local onde devme ficar todos os arquivos Jar necessários para o funcionamento da aplicação.

Figura 9: Estrutura projeto web
Configurando um projeto JavaServer Faces
Inicialmente será preciso obter o pacote do JavaServer Faces através do site Mojarra, que é a implementação do JSF. Para isso acesse o endereço http://javaserverfaces.java.net e clique na versão 2.0.0 destacado, de acordo com a figura 10.

Figura 10: Download do pacote JSF/p>
Ao baixar o arquivo javax.faces-2.0.10.jar, copie o arquivo para a pasta WEB-INF/lib.
Após isso, é necessário ter um conjunto de tags de apoio que auxiliam no desenvolvimento, esse conjunto é conhecido como JSTL. Obtenha através do endereço http://jstl.java.net/download.html e acesse os links JSTL API e JSTL Implementation.
Ao entrar no link JSTL API, baixe o arquivo javax.servlet.jsp.jstl-api-1.2.1.jar destacado na figura 11.

Figura 11: Página direcionada após acesso ao link JSTL API
Quando entrar no link JSTL implementation, baixe o arquivo javax.servlet.jsp.jstl-1.2.1.jar destacado na figura 12.

Figura 12: Página direcionada após acesso ao link JSTL Implementation
Após isso, falta baixar alguns arquivos do projeto Apache Commons que são necessários. Abaixo é apresentada a lista e o significado de cada arquivo com o link de download na seção Binary.
commons-beautils – utilitário para acessar as propriedades dos componentes JavaBeans.
commons-collections – extensão do Java 2 SDK Collections Framework.
commons-digester – processamento de arquivos XML.
commons-logging – gera mensagens de log.
Depois dos arquivos baixados, copie-os para a pasta WEB-INF/lib do projeto na Eclipse, de acordo com a figura 13. Caso tenha problemas no download, estará disponível o download dessas bibliotecas no cabeçalho do artigo.

Figura 13: Estrutura do projeto com as bibliotecas instaladas
Configuração do JSF
O arquivo web.xml, localizado na pasta WEB-INF, é responsável por este tipo de configuração. Nesse arquivo é feita a configuração do servidor para reconhecer e repassar uma requisição para que o JSF consiga realizar o processamento. Essa configuração será afetada em todas as requisições do tipo .jsf e .xhtml. Segue o código de configuração do arquivo web.xml apresentado na listagem 1.
Listagem 1: Configuração web.xml
<?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" id="WebApp_ID" version="3.0">
<display-name>Projeto_Teste_Web</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<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>*.jsf</url-pattern>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>
Concluindo, no arquivo web.xml também pode ser alterado as principais páginas que irão executar quando rodar o projeto. Para configurar a página, altere os nomes que estão nas tags welcome-file.
Espero que tenham gostado e até a próxima.