JSF vs Servlets e JSP

É recorrente o problema de qual tecnologia começar quando se pretende aprender a desenvolver aplicações Web na plataforma Java.
Com a afirmação de que o JavaServer Faces é o framework padrão da platarforma JavaEE para o desenvolvimento Web a tentação de pensar que os Servles e JavaServer Pages sejam deprecated ou que estejam na fila pruning process, ou seja, marcado para se eliminado, é grande.
Mas a verdade não é bem esta. Vou tentar dar o meu contributo à discussão.

Servlets e JavaServer Pages

Servlets e JavaServer Pages (JSP) são duas tecnologias desenvolvidas pela Sun Microsistems, para o desenvolvimento de aplicações Web a partir de componentes java que executam no lado servidor. Estas duas tecnologias fazem parte da plataforma JavaEE(Java Enterprise Edition) que compreende um conjunto de especificações e tecnologias para a implementação de soluções escaláveis e robustas para a Web.

O Servlets são a primeira e principal tecnologia da Plataforma Java para o desenvolvimento de aplicações Web com conteúdo dinâmico. O Servlets surgiram no ano 1997 e hoje são uma tecnologia consolidada e madura e são a base para o desenvolvimento de qualquer aplicativo Web utilizando a linguagem de programação Java. De realçar que todos os framework Java para o desenvolvimento Web, têm por substrato a tecnologia dos servlets.

As JavaServer Pages são uma extensão da tecnologias dos servlets. Elas foram introduzidas para separar as camadas de visão e de controlo. Uma pagina JSP é tipicamente uma página HTML com tags especiais para a inclusão de código Java. A página é compilada dinamicamente num servlet e é executada como tal.

Numa aplicação, as paginas JSP são muitas vezes combinadas com os Servlets e de uma forma geral, grande parte dos frameworks Java para o desenvolvimento de aplicações Web, implementam de alguma forma a arquitetura MVC com Model 2, onde um servlet faz a gestão da comunicação do cliente e a execução das regras de negócio, deixando a responsabilidade da apresentação às paginas JSP.
Entender a tecnologia dos Servlets e a sua arquitetura é importante quando se quer desenvolver uma aplicação Web na plataforma Java EE. Ainda que o plano seja desenvolver o aplicativo com um framework.
De realçar que estas tecnologias assim vistas situam-se apenas nas camadas de visão, as JSP e controlo, servlets, da arquitetura MVC. Na camada modelo em geral são situados os JavaBeans e as operações de persitencia que podem ser feitas com recurso ao JDBC com o padrão DAO ou então recorrendo ao JPA (Java Persistence API).

JavaServer Faces

O JavaServer Faces é atualmente apontado como o principal framework para o desenvolvimento de aplicações web em Java. Existem muitos outro framework da família Java e alguns mais utilizados que o próprio JSF, como pode ser visto nos gráficos da RebelLabs (https://zeroturnaround.com/) a seguir.

Estes gráficos foram tirados do JAVA TOOLS AND TECHNOLOGIES LANDSCAPE 2016, SURVEY RESULTS FROM 2,040 GEEKS.

webframeworks

 

webframeworksUseg

O JSF é um framework MVC Java para a construção de interfaces com o utilizador baseado em componentes. O framework JSF torna transparente o processo de requisição e resposta que na verdade é gerido elo Faces Servlet. O Faces Servlet faz a gestão do ciclo de vida do processo de requisição  de uma aplicação web que utiliza o JSF para a construção da interface com o utilizador. Além da produtividade, algumas outras características podem ser enumeradas:
Fornece uma separação de funções que envolvem a construção da aplicação Web
Apresenta-se com uma alta abstração no desenvolvimento da aplicação
É caracterizado por um modelo de programação orientado a eventos (diferente do modelo HTPP request/response)
Tem vários pontos de exentão (conversores, validadores, listerners, etc)
Componentes já prontos (Primefaces, RicheFaces, Ice Faces), etc.

Qual tecnologia utilizar?

A resposta imediata é… depende.

Para determinar qual tecnologia utilizar entram em jogo vários e diversificados fatores. Um primeiro e importante fator, quase natural é o conhecimento e domínio da tecnologia e claro o “ambiente” envolvente. Uma determinada cidade ou região pode desenvolver uma “tradição”, por exemplo com um framework que não seja o JSF, e nem sejam os “puros” Servlets e JavaServer Pages.
Mas tentando simplificar vamos considerar, como outro fator preponderante o tamanho ou porte da aplicação. Por exemplo, um sistema  de cadastro simples de pessoas ou controlo de stock de um pequeno armazém, pode ser viável a utilização dos Servltes e JSP, porque o tratamento de conversões, dados e mensagens pode ser muito pequeno e a utilização do JavaScript, JQuery e/ou Bootstrap pode resolver.
Para uma aplicação de médio ou grande porte, pode ser viável a utilização de um framework, no caso o JSF, em vez dos “puros” Servlets e JSP, devido aos componentes existentes nas bibliotecas disponíveis para o framework.
De resto as licitações, os problemas e a experiência podem inspirar a melhor solução para o momento.

Ao leitor deixo a decisão para uma conclusão de “definição” na comparação entre JavaServer Faces vs Servlets e JSP.

4 comments

Deixe um comentário