Bom, estou iniciando agora o desenvolvimento para web em java e gostaria de tirar algumas dúvidas:
1 - Quais os melhores frameWorks para se utilizar em conjunto com a linguagem JSP, quais os mais utilizados para desenvolvimento de aplicações Web ? Obs: Já utilizo o Hibernate por padrão em projetos Desktop.
2 - PrimeFaces é o correspondente do jQuery em Java ?
3 - Quais servidores de aplicação para Java ?
4 - O banco de dados pode ser MySQL ou vocês recomendam algo mais robusto como Postgres, por exemplo ?
[quote=rlanhellas]Bom, estou iniciando agora o desenvolvimento para web em java e gostaria de tirar algumas dúvidas:
1 - Quais os melhores frameWorks para se utilizar em conjunto com a linguagem JSP, quais os mais utilizados para desenvolvimento de aplicações Web ? Obs: Já utilizo o Hibernate por padrão em projetos Desktop.
[/quote]
JSP deixou de ser o padrão para desenvolvimento web em java. O padrão atual é a especificação JSF 2 com xhtml.
Frameworks action-based se dão melhor com JSP (Struts 1, Struts 2, vRaptor e Mentawai, entre outros)
Não. Primefaces é uma implementação da especificação JSF 2 que usa a implementação padrão (mojarra) como suporte e disponibiliza recursos e componentes com a estrutura do jQuery. Digamos que ele encapsula o jQuery.
Servidor de aplicação é diferente de ambiente para java web. O ambiente para java web pode ser criado com um container web, como o Apache Tomcat. Um servidor de aplicações é algo muito mais robusto e complexo. A diferença entre eles é que um container implementa a especificação de servlets e o application server implementa toda a especificação JEE.
[quote=rlanhellas]
4 - O banco de dados pode ser MySQL ou vocês recomendam algo mais robusto como Postgres, por exemplo ?[/quote]
Pode ser MySQL, H2SQL, Firebird, Access, planilha excel, arquivo texto, oracle, MS SQL Server ou qualquer que você queira.
Quando você diz: “JSP deixou de ser o padrão para desenvolvimento web em java”. Mas nem scriptlets não são mais utilizados ? O JSF não encapsula o JSP ?
Poxa, então JSP parece que foi extinto. Vou estudar mais sobre o assunto.
JSP ainda é suportado (versão 3.0 da especificação Servlets, se não me engano), porém, não é o padrão.
Scriptlets deixaram de ser usados há vários séculos (acredito que até antes de queimarem bruxas). É uma programação medíocre e feia. Sabe por que chamaram de peste negra? Por que codificaram em scriptlets.
JSP pode ser utilizada com frameworks action-based, como disse. Struts 2 não funciona muito bem com xhtml, por exemplo. Mas com jsp, vai muito bem, obrigado.
Certo, e pra inicio então é aconcelhavel que eu comece com: JSF 2 + Hibernate + PrimeFaces ?
Com o tempo vou me adequando com mais frameworks se precisar.
[quote=rlanhellas]Certo, e pra inicio então é aconcelhavel que eu comece com: JSF 2 + Hibernate + PrimeFaces ?
Com o tempo vou me adequando com mais frameworks se precisar.[/quote]
Só se você já souber o que é uma requisição, quais os protocolos aceitáveis, o que é GET, o que é POST, como funciona javascript e CSS, como uma página é renderizada na web.
JSF 2 é uma especificação, mas, também um framework. Frameworks nunca devem ser o início do estudo.
Sugiro que comece com o velho Servlet + JSP. Depois que entender os conceitos fundamentais, aí sim, parta para frameworks.
rlanhellas dá uma olhada no vRaptor, framework brasileiro com boa documentação, desenvolvimento agil, trabalha com jsp e jstl, ou você pode iniciar com jsf 2 e dar uma olhada em component based, eu trabalho com os 2, achei mais facil o desenvolvimento no action based, mais enfim, vai de cada um. Ambos são bons, dependendo do projeto eu uso um ou outro.
Se quer se tornar desenvolvedor web de verdade avalie frameworks action based. Especificação padrão muitas vezes pode não significar nada. JSF por se basear na maioria das vezes em componentes prontos, vai se preocupar mais em aprender a configurar componentes dele do que abrir mais a mente para desenvolvimento com HTML sob total controle do jeito que trabalha todo resto da comunidade de desenvolvedores web PHP, Rails, Asp.Net Mvc, Java sem JSF etc. Senão vai ficar naquela de aplicação web-desktop. Então para Java eu recomendo o framework Spring MVC, mas pode avaliar outros também para tirar suas conclusões.
Além de alguma tecnologia servidor, deverá praticar bem o lado cliente, ou seja, HTML, JavaScript, JQuery e um pouco de CSS (quando fizer algo profissional para os tempos atuais deverá ter um designer para se dedicar a CSS).
Dependendo do tipo de aplicação, framework JS pode ser útil, como o KnockoutJS, consumindo serviços REST por exemplo.
Banco de dados vai depender do tamanho do projeto e cliente que deseja atender. Genericamente falando PostgreSQL na minha opinião é o melhor free, melhor dos pagos Oracle, SQL Server seria o meio termo.
ORM se mantenha com Hibernate mesmo.
O que eu posso indicar para início de estudos seria esta apostila: http://www.caelum.com.br/apostila-java-web/ (online) http://www.caelum.com.br/apostilas/ (Download) Depois procurar algo mais completo para Spring MVC ou o framework que escolher. Depois que tiver bem em web, pode aprender o JSF caso achar interessante pra algum objetivo, como emprego que peça isso.
Só um detalhe:
Primefaces até que eu saiba, não é uma implementação da especificação JSF 2 e sim uma suite de componentes ricos para GUI e é usado juntamente com o JSF.
JQuery = Framework JavaScript.
E se está entrando no mundo Web a dica que dou é estudar Servlets que é a base da Java Web, também Filtros.