#desenvolvimento

Configurando um projeto web no Eclipse


Olá pessoal!

Muitos desenvolvedores apresentam dificuldades em trabalhar com JSF devido à necessidade de configuração do projeto e dos conflitos ocorridos entre os jars utilizados. Por isso o propósito deste post é compreender a estrutura de um projeto web e configurá-lo de uma forma que possa ser reaproveitado em outros projetos, a fim de poupar tempo na construção dos próximos.

Vamos criar um projeto seguindo este post denominando-o como projetojsf, aproveite para adicioná-lo ao Tomcat.

Iremos utilizar os jars do JSF que podem ser baixados aqui:

  • jsf-impl.jar
  • jsf-api.jar

Os jars do Apache Commons:

E o jar para o Tomcat: (Não achei um link direto para download, mas os jars se encontram no projeto que pode ser baixado no Github)

  • jstl.jar
  • servlet.jar

Crie uma pasta chamada lib no diretório ../workspace/projetojsf/WebContent/WEB-INF/ e cole os jars baixados. Feito isto falta associar os jars ao projeto.

Para fazer isto clique com o botão direito em cima do projeto e escolha a opção Build Path>Configure Build Path…

Na janela Properties for projetojsf selecione a aba Libraries, clique em Add Externals JARs…

E na janela Jar Selection vá até a pasta lib, selecione todos os jars e confirme a inclusão.

Agora temos a seguinte estrutura:

Estrutura do projeto

Como dito anteriormente temos 2 arquivos de configurações básicos: web.xml e o faces-config.xml que ficam na pasta WEB-INF. Neste projeto inicial não utilizaremos o faces-config.xml.

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_2_5.xsd"
id="WebApp_ID" version="2.5">

   <!-- Informações sobre o projeto -->
   <description>Projeto JSF</description>
   <display-name>projetojsf</display-name>
   <!-- Contextos -->
   <context-param>
      <param-name>com.sun.faces.verifyObjects</param-name>
      <param-value>true</param-value>
   </context-param>
   <context-param>
      <param-name>com.sun.faces.validateXml</param-name>
      <param-value>true</param-value>
   </context-param>
   <context-param>
      <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
      <param-value>server</param-value>
   </context-param>
   <!-- Faces Servlet -->
   <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
   <!-- Faces Servlet Mapping -->
   <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.jsf</url-pattern>
   </servlet-mapping>
   <!-- Configurações da sessão -->
   <session-config>
     <session-timeout>30</session-timeout>
   </session-config>
   <!-- Prioridade das páginas iniciais -->
   <welcome-file-list>
      <welcome-file>forwardToJSF.jsp</welcome-file>
   </welcome-file-list>
</web-app>

O próximo passo é criar uma página JavaServer Pages. Clique com o botão direito na pasta WEB-INF e escolha a opção New>JSP, na janela New JavaServer Page informe o nome forwardToJSF.jsp e confirme a criação. Esta página serve como um redirecionador para a página inicial:

forwardToJSF.jsp

<%@ page language="java" contentType="text/html;
charset=UTF-8" pageEncoding="UTF-8"%>

<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>

<jsp:forward page="index.jsf" />

Repitimos o processo anterior para criarmos nossa página inicial

index.jsp

<%@ page language="java" contentType="text/html;
charset=UTF-8" pageEncoding="UTF-8"%>

<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Projeto JavaServer Faces</title>
   </head>
   <body>
      <f:view>
         <h:outputText value="Projeto base utilizando JavaServer Faces" />
      </f:view>
   </body>
</html>

Com isto temos um projeto base que poderá ser utilizado sempre que necessário. O projeto completo pode ser baixado no meu github. Qualquer dúvida, problemas, sugestões… é só comentar. Até breve 😉

Anúncios
Padrão

7 comentários sobre “Configurando um projeto web no Eclipse

  1. andré disse:

    Excelente iniciativa! Parabéns. Continue postando mais informações sobre jsf. Pois, propagando o seu conhecimento desta maneira, vc se torna cada dia mais nobre.

  2. mauricio disse:

    como disse
    funfou que é uma beleza
    mas reparei outra coisa no log quando o tomcat sobe

    INFO: validateJarFile(C:\Users\Administrador\Desktop\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\JSF\WEB-INF\lib\servlet.jar) – jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

  3. mauricio disse:

    funfou q é uma beleza
    mas saiu uma mensagem aqui
    no log quando dou start no tomcat

    WARNING: JSF1059: AVISO! O recurso com.sun.faces.verifyObjects foi desenvolvido para ajudar desenvolvedores que não usam ferramentas. Ele não deve ser ativado se um IDE, ou se esse aplicativo estiver sendo implantado para produção, pois impactará nos horários de início do aplicativo.

    • Olá Mauricio
      Eu resolvi este WARNING retirando esta parte do arquivo web.xml:

      <context-param>
      	      <param-name>com.sun.faces.verifyObjects</param-name>
      	      <param-value>true</param-value>
      </context-param>
      

      Esta parte configura o contexto para verificar os objetos trafegados na aplicação.
      Já que está parte não é necessária para quem está usando IDE, no nosso caso o Eclipse, é só removê-la, ou comentar.
      Até breve 😉

  4. Legal ver vc por aqui tb Brena.
    Quando agente compartilha, agente além de ensinar aprende tb. Mesmo que agente escreva sobre assuntos simples, agente aprende a rever e refatorar nossa metodologia, criticar o que aprendemos no passado para melhorar no futuro.

    Tudo de bom pra ti.
    Bons códigos e Posts.

    • Ei Fred, é bom saber que seu blog voltou à ativa.
      Concordo com você, sempre aprendemos quando escrevemos e compartilhamos, pois refazemos e buscamos informações para validar o que postamos.
      Abraços 😉

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s