Este é o primeiro de uma série de três artigos que apresentarão, em detalhes, a arquitetura de um poderoso framework no desenvolvimento de interfaces com o usuário em soluções Java para a web, o JavaServer Faces. A série abordará não apenas toda a API do JSF, mas também as particularidades da biblioteca PrimeFaces.
Em que situação o tema é útil:
O principal intuito desta série é colaborar para a ampliação da bagagem técnica de desenvolvedores já atuantes em web, sem deixar de ser convidativa também para iniciantes, apresentando de uma forma didática e construtiva todos os conceitos fundamentais do framework e de seus componentes e especializações.
Resumo DevMan:
Dominar ou ao menos conhecer a essência das ferramentas disponíveis para o desenvolvimento de soluções web baseadas na plataforma Java continua sendo um grande diferencial para todo programador. Com esta série de artigos que se inicia a partir de agora, esperamos trazer ao leitor as principais características da especificação JSF, traduzidas em sua implementação mais popular, o PrimeFaces. Cada atividade desempenhada pelo framework será apresentada em detalhes, e o que esperamos é proporcionar ao leitor o entendimento de tudo aquilo que acontece com seu código em tempo de execução, munindo-o de recursos para utilizar o framework JavaServer Faces de maneira mais consciente e otimizada.
Iniciaremos, com este artigo, uma série sobre desenvolvimento web utilizando JSF. Passaremos pelos conceitos da especificação e navegaremos por sua implementação mais popular, o PrimeFaces, explorando alguns dos seus componentes e mostrando como é possível fazer uso da plataforma Java para desenvolver web sites ricos, atraentes e funcionais de maneira simples, organizada, legível e gerenciável.
A especificação Java Enterprise Edition (ou simplesmente Java EE) indica o JSF como framework preferencial para o desenvolvimento de toda a camada de interface com o usuário. A partir da versão 2.0 deste framework, chegou às mãos dos desenvolvedores o padrão Facelets, um poderoso substituto para as famosas páginas JSP (que são uma especialização da API de Servlets para criação de páginas web contendo chamadas a código Java), que estudaremos ao longo da série.
Para tornar mais fluido o estudo de uma API tão vasta como esta, desenvolveremos um web site de um grupo musical, contendo seções como agenda de shows, repertório e história do grupo e de seus integrantes.
Adotaremos a biblioteca PrimeFaces para construir esta aplicação. Além de ser a implementação mais completa do JSF e oferecer componentes mais atraentes e completos do que suas concorrentes, é também a biblioteca mais popular entre os desenvolvedores, de evolução constante e com rica fonte de consulta e estudo, além de um show case muito bem estruturado. Este show case, inclusive, é um recurso que colabora muito no aprendizado e no uso da biblioteca.
Para quem se interessar em pesquisar alternativas ao PrimeFaces, recomendamos que foquem principalmente em duas opções: o ICEfaces e o RichFaces. A referência para estas implementações pode ser encontrada na seção Links. Não deixe de conferir.
Roadmap
No primeiro artigo da série, tomaremos o cuidado de iniciar uma navegação calma e detalhada pelos conceitos fundamentais do JSF. São informações muito importantes, parcialmente ignoradas por muitos desenvolvedores mais novos devido à facilidade em encontrar respostas rápidas na web nos dias de hoje. O aprendizado sob demanda adotado pelas novas gerações, principalmente em virtude do ritmo frenético imposto pelas empresas de desenvolvimento, tem resultado na formação de profissionais orientados a cenários de uso, com baixo conforto nas tecnologias com as quais trabalham. É com olhos atentos a este fenômeno que decidimos iniciar pela base.
No segundo artigo, aplicaremos boa parte dos conceitos abordados nesta parte no desenvolvimento do portal para um grupo musical, introduzindo outros que não entrarão neste primeiro artigo por questão de espaço, como composites, templates e desenvolvimento de componentes customizados.
Também no segundo artigo, já começaremos a explorar os recursos do PrimeFaces utilizando alguns de seus componentes em um portal para um grupo musical. Cada componente que utilizarmos será analisado passo a passo tanto do ponto de vista estrutural quanto comportamental. Verificaremos como esta poderosa biblioteca se vincula à especificação JSF, observando suas principais interfaces. Faremos ainda uma análise da versão desta biblioteca destinada ao desenvolvimento de mobile sites, assunto cada dia mais quente no cenário de desenvolvimento de software.
O terceiro e último artigo encerra nosso estudo, reunindo reflexões a respeito do JSF e sua arquitetura. Teremos, ao final desta série, uma aplicação web completa, cujo código-fonte será disponibilizado e com o qual pretendemos presentear o leitor com uma base razoável de consulta para que possa, assim, desenvolver com maior segurança e conforto suas aplicações web.
Premissas
Como o foco desta série é discutir sobre o JSF, não incluiremos nenhum outro framework popular na construção de aplicações web em Java, como Spring, JPA, Struts, entre outros. Podemos discutir sobre cada um deles em outros artigos, em outras oportunidades.
Apesar do foco deste artigo ser o JSF e suas implementações, é importante lembrar que o desenvolvimento Java para a web vai além, muito além disso. Existem alternativas a esta abordagem que podem ser empregadas no desenvolvimento da interface com o usuário. É possível desenvolver as páginas de uma solução web a partir de páginas JSP e também via frameworks talvez até desconhecidos de muitos, como o Jetspeed, utilizado em alguns projetos legados de grandes empresas para o desenvolvimento de páginas seguindo o modelo de portlets. Para quem se interessou e quer consultar os detalhes a respeito desta biblioteca, não deixe de conferir a seção Links ao final do artigo.
JSF é interface com o usuário
Antes de começarmos efetivamente a falar sobre JSF, é importante entendermos o papel a que este framework se presta. Devemos utilizá-lo para tratar exclusivamente da camada de apresentação de aplicações web. Não é, portanto, sua função cuidar de aspectos relacionados à lógica de negócio, persistência de dados, serviços web, integração entre sistemas ou conexões com sistemas de informação em geral, havendo outras tecnologias dedicadas exclusivamente a esses propósitos.
O ambiente
Para falarmos sobre ambiente, começaremos listando algumas perguntas que nos ajudarão a identificar tudo o que nos é necessário para desenvolver soluções em Java para a Web:
1. Como faço para desenvolver?
2. Como faço para testar?
3. Como faço para publicar?
Comecemos pela última, a publicação. Toda aplicação web deve ser implantada em um servidor físico. Porém, não é somente isso. É necessário, ainda, um sistema que gerencie nossas aplicações, controlando seu ciclo de vida e outros aspectos gerais como alta disponibilidade e segurança, gerenciamento de memória, dentre outros.
A plataforma mais básica de gerenciamento de soluções web é um web container, também tratado na literatura por web servers. O mais popular web container é, sem dúvidas, o Apache Tomcat, uma solução gratuita e de código aberto, encubada pela fundação Apache. Outro web container bem conhecido e utilizado em produtos como SUP, da Sybase, é o Jetty.
A alternativa a web containers, mais completa e robusta e já contendo toda a especificação Java EE em sua distribuição (o que significa termos um ambiente com suporte a tecnologias como EJB, Servlets, JSP e JSF), é conhecida como servidor de aplicação. Alguns dos servidores de aplicação mais populares no mercado são: GlassFish, da própria Oracle, JBoss AS, WebLogic e SAP AS. Consulte a seção Links, que contém referências para cada projeto acima citado.
E o que falar sobre o desenvolvimento das aplicações propriamente dito? Neste caso, normalmente usufruímos dos recursos de poderosas ferramentas conhecidas como IDEs (ambientes integrados de desenvolvimento), dentre as quais se destacam IntelliJ IDEA, Eclipse e NetBeans. Embora o Eclipse seja a ferramenta preferida da grande maioria dos desenvolvedores, principalmente por ser gratuito, oferecer uma interface limpa e objetiva, ser mais leve e permitir um controle bem eficiente do código-fonte, o NetBeans é uma ferramenta também gratuita que apresenta mais aceleradores que o primeiro, tanto para configuração quanto para o desenvolvimento de soluções Java para Web.
O teste das aplicações em nível de páginas web pode ser realizado através de complementos (como o Firebug) ou através de recursos já incorporados em navegadores como o Google Chrome, mas a grande vantagem que o desenvolvedor encontra no desenvolvimento de soluções baseadas na especificação Java EE é a possibilidade de depurar código Java diretamente nessas IDEs acima mencionadas. O teste, portanto, fica muito mais viável, cabendo a nós estabelecermos breakpoints em nosso código para, a partir deles, analisarmos desde chamadas a métodos a, se assim desejarmos, toda a árvore de componentes da página em exibição (ou a ser exibida).
...Confira outros conteúdos:
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.