Qual a melhor opção, JSP ou JSF

49 respostas
Luciano_Lopes

Pessoal, ja tem uns dias que estou estudando JSF,ja havia desenvolvido algumas coisas em JSP, dai surgiu duvida,sei que o JSF é um avanço sobre o JSP mas a pergunta é a seguinte:
HOJE as empresas preferem sistemas JSF ou JSP e porque?

49 Respostas

ArtesaoDeSoftware

Olha, em termos de performance, minha experiência diz que JSF é a pior solução.

Luciano_Lopes

Porque? :shock:

ArtesaoDeSoftware

Como assim porque ? Porque é lento.

Luciano_Lopes

Vi na net que o JSF é tecnologia de ponta quando se fala em desenvolvimento web,mesmo assim JSP ainda é usado ou vem diminuindo?A empresas de desenvolvimento de software preferem qual das duas?

Victor_Neves

As empresas estao usando JSF por uma simples questão de modinha.
Quando voce roda um sistema usando JSF e voce pede para ver o código fonte, voce pode ver que o JSF criou vários códigos escondidos de voce, que ele ate mesmo chegou a alterar algum nome de algum campo colocando numeros e underlines nos nomes, ai dá erro voce nao sabe onde está, tem que ficar procurando o código debaixo do tapete.

GouverMXT

A resposta é um grande DEPENDE. Para desenvolver um site normal acho que JSF não é a melhor opção, já para um sistema Web pode ser uma das boas opções, apesar de não preferí-lo em nenhum caso rsrs

luxu

naum seria o JSF um melhoria do JSP?

Cristiano_de_Barros

Boa noite.

Acredito que a resposta seja um depende também.
Em minha opinião, o JSF tem uma produtividade muito superior ao JSP pela série de recursos extras que ele possui.
Porém todos estes recursos possuem um custo, e isso é normal, cabe a você pesar o que vale mais a pena em cada caso.
Para fazer uma comparação, você pode pensar da seguinte maneira:
As linguagens de mais baixo nível são as que possuem os melhores desempenhos. Porém todos nós utilizamos linguagens de alto nível, que possuem inúmeros recursos extras e facilitam a nossa vida. Note que isto gera um custo de desempenho também, mas a produtividade aumenta absurdamente.
Então eu acredito que cabe a nós desenvolvedores avaliarmos quando é possível utilizar ou não, pois todos os dois tem suas vantagens e desvantagens.

Quero deixar claro que isto é apenas minha opinião. Não gosto de guerra de frameworks/linguagens.
Abraço.

otaviojava

Eu acredito que cada caso é um caso.
Seria como perguntar: Qual é o melhor o garfo ou a faca ?
você certamente diria depende da situação.
No caso do jsf ele é mais voltado a view do seu sitema respeitando o mvc existindo diversas implementações do jsf como o rich faces, prime faces etc.
Na versão atual ele foi muito bem melhorado trazendo inclusive recursos com ajax. Em fim um framework moldado para sua view

O jsp ele é uma página que roda java, no lado do servidor além de chamar bean etc.

Vale lembrar que o jsf pode usar também o jsp embora ele por padrão na nova versão é xhtml

E ambos foram atualizados na nova versão do jee o jee6.

A

Particulamente, acredito que não seja uma comparação muito válida.

Ao utilizar JSF você estará trabalhando com um framework WEB, com várias coisas prontas, e desenvolver a partir disso.

JSP é “apenas” (ou deveria ser) um engine para renderizar páginas dinâmicas.

O que você chama de desenvolver em JSP? Utilizar scriptlets? Ou MVC na mão com Servlets e JSPs?

Para as duas opções acima, recomendo JSF sem sombra de dúvidas.

Uma comparação, que acredito ser mais válida, é comparar frameworks baseados em componente (JSF) ou baseados em actions (como VRaptor).

Daí recomendo utilizar VRaptor…

Luciano_Lopes

Eu andei pesquisando e vi que a vários frameworks como o PrimeFaces,RichFaces para JSF, no caso do JSP eu posso também usar o Prime?

A

Acredito que se o assunto é performance da aplicação, JSP puro ganha na disputa contra o framework JSF.

Luiz_Aguiar

VRaptor + JSP + JQuery + CSS3

[]s

Luciano_Lopes

Não existem nenhuma forma de usar o prime no jsp?Não gosto de usar jquery não, fico meio perdido, não tenho experiencia na aprte de design :oops:

S

"""Pessoal, vamos todos voltar no assembly, é mais rapido … :smiley: :smiley: :slight_smile: :slight_smile: """ ------> foi uma brincadeirinha.

eu acho que podemos aplicar um tunning no codigo do jsf para ser mais rapido, mas nao ira se aproximar ao jsp, mas ficara parecido em termos de performance. e alem do mais podemos aplicar um cluster ou podemos usar servidores potentes, para ficar tudo mais rapido.

As tecnologias tenhem evoluido ( jsf ) porque o hardware tambem tem evoluido muito, por isso se antigamente usavamos uma aplicacao em jsp+servidor com 2 GB ou 4GB de memoria, agora facilmente podemos ter jsf+servidor com 8GB de memoria +i7.

então compensa,

Cristiano_de_Barros

O PrimeFaces é uma biblioteca de componentes para o JSF, logo você só conseguirá utilizar esta biblioteca ao utilizar JSF. :smiley:

Abraço

Cristiano_de_Barros

Sem problemas :smiley:

Só para explicar melhor, eu não quis dizer que devemos utilizar linguagens de baixo nível para ficar mais rápido, muito pelo contrário.
Eu fiz uma comparação com as linguagens de programação somente para ilustrar a situação de que é difícil haver um ganho, sem que haja perda em algum outro ponto. O próprio Java que utilizamos hoje em dia, quando surgiu era criticado por ser lento. É lógico que o java foi otimizado, só que os computadores também evoluíram e compensaram esta perda.
Eu gosto muito do JSF, e acho sua produtividade excelente. Se o hardware do cliente for bom, prefiro com certeza o JSF.
Só que reconheço que se o cliente me solicitar um software com performance e possuir um hardware restrito, o JSF não atenderá as necessidades dele.
Então cabe a nós analisarmos cada situação e adotarmos o que julgarmos melhor.

Abraço

B

php.

lazaropj

Tem sim…
é só importar pro JSP

<%@ taglib uri="http://primefaces.prime.com.tr/ui" prefix="p" %>
esmiralha

Alô criançada, o bozo chegou…

Luciano_Lopes

lazaropj:
Tem sim…
é só importar pro JSP

<%@ taglib uri="http://primefaces.prime.com.tr/ui" prefix="p" %>

Ja tentei fazer isso mas não deu certo não,como você conseguil?Posta um exemplo aqui se possivel

adriano_si

lazaropj:
Tem sim…
é só importar pro JSP

<%@ taglib uri="http://primefaces.prime.com.tr/ui" prefix="p" %>

Cara, até onde eu sei, o Prime usa todo o Core do JSF, todos as fases do ciclo de vida, etc.

Acho que isso não é possível não… tens algum Case ???

Abs []

Cristiano_de_Barros

lazaropj:
Tem sim…
é só importar pro JSP

<%@ taglib uri="http://primefaces.prime.com.tr/ui" prefix="p" %>

Uma coisa é você utilizar o JSP (ao invés de Facelets) como view handler no JSF. Aí é lógico que é possível, pois está sendo usado JSF.
Agora, o que eu acredito que o colega esteja querendo saber, é se é possível utilizar o PrimeFaces sem utilizar JSF.
Este caso já não é possível, pois como o colega adriano_si falou, o PrimeFaces trabalha em cima do JSF.

Abraço

Luciano_Lopes

Cristiano de Barros:
lazaropj:
Tem sim…
é só importar pro JSP

<%@ taglib uri="http://primefaces.prime.com.tr/ui" prefix="p" %>

Uma coisa é você utilizar o JSP (ao invés de Facelets) como view handler no JSF. Aí é lógico que é possível, pois está sendo usado JSF.
Agora, o que eu acredito que o colega esteja querendo saber, é se é possível utilizar o PrimeFaces sem utilizar JSF.
Este caso já não é possível, pois como o colega adriano_si falou, o PrimeFaces trabalha em cima do JSF.

Abraço


Deixa ver se entendi, o prime por padrão trabalha com jsf, para eu usar em jsp tenho que criar um projeto usando jsf, é isso?

Cristiano_de_Barros

O PrimeFaces trabalha com JSF.
O JSF utiliza um mecanismo chamado ViewHandler, que pode ser o JSP.
Se você for utilizar JSF em uma versão anterior ao 2.0, o view handler padrão é o JSP, ou seja basta você criar um projeto JSF e dentro dele criar uma página JSP.
A partir da versão 2.0 o view handler padrão passou a ser o Facelets que utiliza as extensões XHTML ou JSPX, logo, com o JSF 2.0 você terá que trabalhar seguindo as regras do Facelets.

M

Cristiano de Barros:

O PrimeFaces trabalha com JSF.
O JSF utiliza um mecanismo chamado ViewHandler, que pode ser o JSP.
Se você for utilizar JSF em uma versão anterior ao 2.0, o view handler padrão é o JSP, ou seja basta você criar um projeto JSF e dentro dele criar uma página JSP.
A partir da versão 2.0 o view handler padrão passou a ser o Facelets que utiliza as extensões XHTML ou JSPX, logo, com o JSF 2.0 você terá que trabalhar seguindo as regras do Facelets.

Não entendi essa parte (desculpa desviar a discussão).

Pelo que eu sei, no JSF 1.2 ele nada mais é que usar o JSTL pra criar tags novas, tanto que no Netbeans eu consigo ver o JSP gerado pela minha página, que obviamente é mais complexo do que se eu usasse o JSP direto.

Pelo que você falou, o JSF 2 não gera um JSP e não usa o mecanismo do Java pra JSP/Servlets?

Cristiano_de_Barros

Desculpe, quando você utiliza a palavra “ele”, você está se referindo ao que? Ao próprio JSF? Ao Facelets?

Ele não utiliza o mecanismo de JSP/Servlets, pois este mecanismo é voltado basicamente a gerar conteúdo dinâmico, enquanto o JSF utiliza toda uma árvore de componentes, que podem ser renderizados em fases diferentes, e tem um ciclo de vida mais complexo. O Facelets foi criado pensando no modelo baseado em componentes do JSF, por isso ele ofererece uma melhor integração, uma série de vantagens e uma performance em torno de 30% a 50% melhor que o JSP.

Abaixo alguns links que mostram por que o JSP não se “encaixa” muito bem com o JSF, e mostram também, as vantagens do Facelets em relação ao mesmo:
http://www.springwebdevelopment.com/jsf-and-facelets
http://www.ibm.com/developerworks/java/library/j-facelets/

M

Ao JSF. O facelets do JSF 1.2 também faz isso ou é só o do JSF 2.0?

Valeu pelos links.

Cristiano_de_Barros

Se você adicionar o Facelets na sua aplicação, ele irá funcionar da mesma maneira sim.
O detalhe é que nas versões anteriores ao JSF 2.0, o Facelets não está incorporado ao JSF. Portanto, para utilizá-lo, é necessário baixar seu jar, adicionar ele na sua aplicação e configurar corretamente o faces-config.xml.
Já na versão 2.0 não é necessário baixar nem configurar nada para que ele seja utilizado.

Grinvon

O que Cristiano falou é verdade, ele (JSF) pode ser utilizado em dois padrões de renderização diferentes, inclusive, mesmo na 1.2, você pode optar por não escolher vai JSP (que é o que fiz).

Voltando ao foco do tópico.

Essa discussão é vaga, pois depende de sua necessidade, repare que JSP é como se fosse o “cru” da programação de apresentação web em Java, enquanto o JSF segue uma especificação internacional que faz com que várias implementações diferentes sejam criadas (a exemplo do RichFaces e Primefaces), o seu propósito não é para fazer sites lightware e bem focados no visual, na verdade, se trabalhar com visual no JSF pode se tornar um parto se você quiser customizar bastante a aparência do site, mas veja que, a sua necessidade é outra, para portais pode se optar para coisas que dependam menos de componentes a exemplo do Play Framework.

jaboot

Ao invés de JSF vocês não preferem utilizar jQuery não?

Muito mais leve, roda do lado do cliente e de fácil utilização… estou gostando bastante.

GouverMXT

jaboot:
Ao invés de JSF vocês não preferem utilizar jQuery não?

Muito mais leve, roda do lado do cliente e de fácil utilização… estou gostando bastante.

Eu prefiro.

adriano_si

O que impede de rodar JSF + JQuery…

Achei muito sem fundamento essa afirmação… Até onde sei os Objetivos são completamente diferentes…

Abs [] e bons estudos…

Marcio_Nogueira

O JQuery é uma biblioteca Java Script, e o JSF um franework para desenvolvimento de aplicações web, ou seja, são coisas totalmente diferentes, com objetivos diferentes também. :wink:

J

Grinvon:
O que Cristiano falou é verdade, ele (JSF) pode ser utilizado em dois padrões de renderização diferentes, inclusive, mesmo na 1.2, você pode optar por não escolher vai JSP (que é o que fiz).

Voltando ao foco do tópico.

Essa discussão é vaga, pois depende de sua necessidade, repare que JSP é como se fosse o “cru” da programação de apresentação web em Java, enquanto o JSF segue uma especificação internacional que faz com que várias implementações diferentes sejam criadas (a exemplo do RichFaces e Primefaces), o seu propósito não é para fazer sites lightware e bem focados no visual, na verdade, se trabalhar com visual no JSF pode se tornar um parto se você quiser customizar bastante a aparência do site, mas veja que, a sua necessidade é outra, para portais pode se optar para coisas que dependam menos de componentes a exemplo do Play Framework.


Quer dizer que aplicações desenvolvidas com JSF dão trabalho para serem customizados (a parte do View, suponho)?
Em outras palavras, se você quiser customizar uma página JSF, precisa refazê-la todinha?
E a parte do código em Java? É mais complexo, mais simples, é igual (ou quase)?
O que dizer da manutenção dos programas e páginas JSF? É mais trabalhoso e/ou complicado que as feitas com JSP?

Kanin_Dragon

Qual e melhor ?

Depende da sua necessidade.

Luciano_Lopes

Eu ja decidi depois de mexer um pouco, vou usar o jquery, é um pouco no “braço” mais a nivel de personalização é melhor que o prime,pelo menos eu achei

gRoOve

Mas não acabam fazendo a mesma coisa no final, tipo no caso de validação de campos por exemplo?

drsmachado

Mas não acabam fazendo a mesma coisa no final, tipo no caso de validação de campos por exemplo?

Jamais.
Javascript é client side, pra começar.
JSF server side.
Javascript tem limitações e não mapeia o managedBean (atributos e métodos), por exemplo. Coisas que o JSF faz.

Só para citar exemplos básicos

ArtesaoDeSoftware

O melhor mesmo é o Vaadin, deixa qualquer outro framework web no chinelo.

Luciano_Lopes

Cara,to olhando aqui, show de bola esse framework, baixando aqui pra testar, você usa ele?

alltairr

Não querendo dizer qual a melhor Framework usar, mas eu estou usando JSF com uma framework chamada PrimeFaces que tem a base de JQuery e estou achando muito interessante. Tem muitas facilidades na validações os codigos não são muito complexos.

Bom fica ai uma dica então.

F

Eu acho que não pelo que entendi JSF é uma especificação e não um framework propriamente dito. JSP é uma tecnologia não dar para comparar as duas coisas.

F

JSF é uma especificação (JSR - 314) e ainda não entendi pq a maioria da galera o chama de framework.
http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html

oddy.silva


VRaptor + JSP + JQuery + CSS3

[]s

Cara, se tivesse o botão curtir, eu curtiria isso, rrsrs

Eu estou finalizando um projeto pessoal, e utilizo
JBoss + JSP + JQuery + CSS

Muito bom. Simples. Tirando que a especificação JEE6 vem me poupando muito trabalho, por causa das annotations.

Sobre o tópico em si, prefiro JSP por causa do “custo”. Não preciso administrar uma carroça depois. Tenho vontade de experimentar o Primme Faces depois. Curti bastante.

Abraço!

M

Boa discussão pessoal…

O JAVA oferece tantas opções que isso acaba se tornando um problemão rsrsrs.

Estou entrando em um projeto novíssimo, e estou querendo apostar nessa combinação sugerida pelo Luiz (VRaptor + JSP + JQuery + CSS3), mas confeço que estou com receio de precisar de algum componente que o JSF oferece com facilidade e eu não ter isso com a minha combinação de frameworks…

Vou precisar de calendário, árvore, etc… tudo que tem de direito…

Compartilho da sua preocupação também Luciano…

Vin_ius_Abreu_de_Fra

Resposta simples (em alternativa ao depende):

*Vai desenvolver aplicações web completa (Gerencia de pessoas, dados, manipulação de informações e logística)?

-JSF + PRIMEFACES OU RICHFACES OU ICEFACES (questões de performance não são o problema pois podem ser contornadas com o uso dos frameworks certos, ARQUITETURA do sistema correta e PRÁTICAS DE PROGRAMAÇÃO corretas… Recomendo o primefaces por ser o mais bonito, legal e moderno dos três, porém você irá sofrer com a falta de documentação. Pode começar com os outros e depois pular…) + (outros frameworks java que irão resolver seu problema)

*Vai desenvolver outro tipo de sistema, portal, site, sistema baseado em uma funcionalidade principal (por exemplo, o 4shared que é uma página simples onde faço um upload de um arquivo…)?

-JSP + VRAPTOR + HTML5 + CSS3 + JQUERY + (outros plugins e frameworks Java e Javascript que resolverem seu problema).

Espero ter ajudado. Valeu! :smiley:

Outra coisa, ao contrário do que eu vi aqui, é muito bom sim usar JQUERY + JSF, frameworks ricos como os que acabei de citar (prime, etc…) apenas minimizam o uso de javascript e tão dá tudo pronto, mas vai ter coisa que só no braço mesmo e o jquery é ótimo pra isso.

J

Apenas para citar…

Uma combinação que gosto bastante é:
Servlet + Jsp + CSS3 + Jquery + DWR

Pode-se trocar o Servlet pelo Vraptor dependendo do caso, mas as vezes em um portal web é preciso tratar todo e qualquer tipo de URL com algoritimos muito especificos e acho mais facil usar servlet e implementar o velho pattern front controller. Dependendo do caso, trocá-lo por um Vraptor é legal.

A internet é feita de HTML + CSS e Javascript. Se você adota qualquer coisa que não mexe diretamente com isso, ou você fica muito limitado, ou senão acaba tendo que fazer diversos “malabarismos” para não dar outro nome, para realizar tarefas simples.

O DWR é muito legal pois ele faz a parte suja do ajax, facilita demais o desenvolvimento da páginas dinâmicas e fica um canhão na hora de medir a performance. Nos testes de stress o resultado costuma ser compensador.

Enfim é um modelo que gosto quando se fala “em termos de site”, e o que tem por trás pode ser qualquer outra coisa, EJB, Spring, Hibernate, JDBC, etc… é uma discussão a parte.

Outra linha interessante é do GWT. Mexi pouco com ele, mas gostei.
JSF também mexi pouco e não tive boas experiências… coisas estranhas aconteciam e era preciso ficar olhando debaixo do tapete, além dos “malabarismos” pois a aplicação era uma mistura de site internet com sistema.

Como já falaram minha opnião também é que depende muito do projeto. Só temos que tomar cuidado para não engessar demais e o sistema se tornar “velho e obsoleto” rapidamente.

D

99% dos “problemas” de performance e “incompatibilidade” do JSF 2.0 poderiam ser resolvidos se quem usa soubesse só um pouquinho como funciona e como realmente usar ele.

Você le um tutorial “Jsf + Primefaces + JPA” e ja sai fazendo, não sabe como funciona os ciclos de vida e depois reclama que JSF é lento, que é difícil de customizar… Não, não é lento e nem difícil de customizar é VOCÊ que não sabe usa-lo.

Criado 5 de janeiro de 2011
Ultima resposta 19 de abr. de 2012
Respostas 49
Participantes 30