O que aprender para fazer aplicativos da web Java em Java EE 6? [fechadas]

103

Meu objetivo é fazer aplicações web!

Terminei de ler os livros "Headfirst - Java" e "Headfirst - Servlets e JSP".

Como este tópico (aplicativos da web) é tão grande e complicado, gostaria de perguntar o que devo aprender a seguir. Eu me sinto sobrecarregado quando leio slogans como Java EE, EJB, JSF, JPA, Glassfish ... mas não vou desistir.

Alguém pode me dizer como devo proceder com o aprendizado? Devo pegar um livro como este: Iniciando a plataforma Java EE 6 com GlassFish 3: de iniciante a profissional ou devo apenas fazer alguns tutoriais online?

Obrigado!

creativz
fonte
1
Eu li os dois tópicos. Mas de novo: Nos tópicos eles estão apenas dizendo "aprenda Tomcat, JBoss, Hibernate, aprenda isso ou aquilo, etc ..." Apenas jogando com palavras. Mas quero saber que livro ou tutorial específico devo aprender. Talvez não exista e eu tenha que aprendê-lo "ineficientemente" procurando cada palavra. Eu só esperava obter um conselho sobre como proceder.
creativz
1
Eu recomendaria que você começasse com o Head First Servlets e JSP, desde que você tenha um bom conhecimento do núcleo do Java. Se você não está confortável com Java como linguagem de programação, primeiro você precisa obter algum conhecimento prático sobre ele e, em seguida, prosseguir para o Desenvolvimento de aplicativos da web.
Rachel
22
Exceto que todas essas questões estão desatualizadas, já que o Java EE 6 foi lançado ...
Pascal Thivent
4
@Stephen Bem, na verdade eu acho que há uma grande lacuna, especialmente na web part (com Servlet 3.0 ou JSF 2.0 e gerenciados beans CDI).
Pascal Thivent
1
Engraçado como muitas das questões gerais com grande votação como esta são fechadas como "não construtivas". Eu diria que são muito construtivos, mas não são fáceis de responder de forma construtiva. Eles ajudam a ter uma visão geral do que alguém está fazendo ou deveria estar fazendo. Mas é bom que eles possam permanecer no SO.
jackthehipster de

Respostas:

174

Mesmo que eu saiba que isso será controverso, meu conselho seria começar apenas com o Java EE 6. Portanto, pegue o GlassFish v3 e obtenha o livro Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional ou siga o tutorial Java EE 6 . Na minha opinião, o livro (que comecei a ler e sei do que estou falando) oferece mais orientações, que podem ser preferíveis se "tudo" for novo para você (cobre tanto a plataforma Java EE quanto suas APIs e o ambiente para construir, implantar seus aplicativos).

Agora, como eu disse, já posso ouvir vozes dizendo coisas como "Java EE é pesado, use Spring em vez disso, aprenda Struts ou Wicket ou Stripes para a camada de apresentação, aprenda Hibernar para persistência ou não porque não gosto de ORM, use iBatis ou JDBC direto (você verá, é legal com Spring, Spring é tão legal) e use Tomcat (e por que não Jetty) ou JBoss, ou simplesmente esqueça tudo isso e vá para Grails e bla bla bla ... " .

Mas eu não acho que isso esteja realmente ajudando você e, sem orientação ou orientação (e você não encontrará um recurso exclusivo não desatualizado cobrindo todas as combinações), isso deve soar muito confuso para um iniciante.

Então, porque eu acho que o Java EE 6 é uma grande melhoria em relação às versões anteriores do Java EE, porque ele fornece APIs padrão muito boas para todas as suas necessidades (Servlet 3.0, JSF 2.0, JPA 2.0, EJB 3.1 lite, Bean Validation 1.0, CDI , etc), porque essas APIs são todas mais do que decentes, porque não há nada realmente errado em aprendê-las, porque isso já é uma grande tarefa, porque você tem que começar de algum lugar , eu focaria apenas no Java EE 6 e esqueceria o outros frameworks por enquanto. Mais precisamente, eu começaria com o Java EE 6 Web Profile (e então adicionaria coisas se você quiser ir mais longe).

Ao fazer isso, 1) você dará os primeiros passos e aprenderá coisas totalmente novas e 2) dará algum tempo para que todos os outros frameworks e / ou ferramentas se adaptem e provem que ainda há necessidade deles. E se houver, ainda será hora de experimentar os sobreviventes e você poderá entender muito melhor por que eles existem.

Pascal Thivent
fonte
3
Obrigado. Em relação ao livro, não o li inteiramente, mas definitivamente o recomendo para desenvolvedores novatos e experientes que desejam obter uma boa visão geral do Java EE 6. O livro é bem construído, ele realmente cobre muitas APIs (não muito faltam), possui exemplos de códigos que demonstram tudo o que foi apresentado, são realmente didáticos e permitem ir o mais fundo que você quiser. Pode haver livros mais focados no futuro, mas este é um bom livro.
Pascal Thivent
23
+1, mas a primavera é tão legal :-)
ChssPly76
13
Não me interprete mal, Stripes, Spring, Hibernate, ... são ótimos. Mas muitas opções podem ser confusas ao descobrir algo novo e acredito que o Java EE 6 permite que você comece sem elas.
Pascal Thivent
9
Eu concordo com você, é muito importante aprender a pilha JEE mesmo que você não use nada dela, afinal essa pilha é a base para todos os fabulosos frameworks que tornam as coisas realmente excelentes, por exemplo, Wicket é construído em cima de o conceito de Front Controller que no mundo Java significa Servlets e Filtros - se você não sabe como eles funcionam, você também não vai entender o que o Wicket está fazendo! A menos que você aceite "mágica!" como resposta, é claro.
Esko
13
Mais de 4 anos depois ... você mudaria alguma coisa em sua resposta?
jlars62
28

Meu conselho 1 é parar de ler livros e começar a implementar coisas. Em minha experiência, o aprendizado de livros é um substituto pobre para o conhecimento que você obtém ao fazer as coisas.


1 - Contexto: este é um conselho para quem acaba de ler dois livros sobre o assunto e está procurando mais livros para ler. Na prática, você precisa equilibrar ler e fazer. Especialmente se você tiver um problema específico que está tentando resolver.

Stephen C
fonte
29
Mas pode poupar dias de pesquisa. Também poderia lhe dar conhecimento suficiente para responder a perguntas em vez de fazer perguntas e, eventualmente, ter alta reputação aqui, você não concorda?
Muhammad Gelbana
6
Não, eu não concordo. O OP já leu dois livros Java / Java EE. É hora de ele fazer alguma programação. FWIW, eu não obtive a maior parte do meu conhecimento lendo livros. Em vez disso, consegui PRIMARIAMENTE implementando coisas e consultando a documentação quando necessário. Você não aprende a andar de bicicleta lendo livros ... e também não aprende habilidades de programação dessa forma.
Stephen C de
3
É importante equilibrar readinge practice.
smwikipedia
9

Java EE 6 é realmente incrível. O único problema é que tem cerca de 2 semanas, e há apenas 1 contêiner oferecendo seus recursos - Glassfish.

Não tenho nada contra o Glassfish, uso em todo lugar, várias instâncias de produção, adoro o produto e o projeto.

Dito isso, os detalhes do Java EE 6 não se traduzem em Java EE 5. Alguns sim, muitos sim, mas o Web Profile, Servlet 3.0, os novos tipos de Bean, JPA 2, etc. Esses não estão lá.

Portanto, ao aprender Java EE 6 primeiro, você está simplesmente se restringindo a um único contêiner. Mais estão vindo, mas eles não estão aqui ainda.

Tomcat, JBoss, OpenEJB, Glassfish, Jetty, Resin, Geronimo, etc. todos funcionam bem com a especificação Java EE 5 (pelo menos aquelas partes da especificação que suportam, Tomcat não tem EJB, por exemplo).

Não consigo pensar em nada no Java EE 5 que não foi transportado para o Java EE 6. O Java EE 6 tornou opcionais alguns aspectos muito antigos e aqueles que você simplesmente não aprenderia hoje de qualquer maneira. O Java EE 6 tornou algumas coisas do Java EE 5 ainda mais fáceis (principalmente empacotamento, EJB Lite, por exemplo).

Aprenda Java EE 5 agora para que possa realmente aplicar o que aprendeu em uma variedade de ambientes, em vez de aprender Java EE 6 agora e descobrir que pode não ser capaz de usar muito do que aprendeu.

Nenhum livro vai te ensinar o que você precisa saber. Servlets, por exemplo, são uma boa base, mas para qualquer coisa maior do que algumas páginas ou endpoint, você vai querer usar um dos muitos frameworks de terceiros, ou JSF, e nenhum livro cobre o núcleo e então um framework no topo por essa.

O tutorial do Java EE 5 é bom para baixar os fundamentos. Minha principal reclamação é que eles não mostram o código-fonte. Em vez disso, eles esperam que você apenas baixe e execute-o. Não é discutido no tutorial. Descobri que os livros Use a Cabeça são muito bons.

Para a programação da web, Servlets brutos são importantes o suficiente apenas para entender o ciclo de solicitação / resposta, mas você não precisa de um conhecimento profundo para dar um salto para uma estrutura de terceiros.

Sou um grande fã de Stripes para uma estrutura de ação (em vez de uma estrutura de componente), e o único livro Stripes disponível é excelente (tornando sua escolha uma escolha fácil).

Não posso sugerir um livro de estrutura de componentes e, na verdade, não recomendaria um imediatamente. As estruturas de componentes realmente enterram as estruturas principais de solicitação / resposta HTTP. Eles os enterram por um motivo e eles ganham valor por enterrá-los, mas acredito que para ser eficaz você precisa ter um entendimento sólido desses conceitos desde o início. É por isso que não sugiro aprender uma estrutura de componentes primeiro.

A estrutura JAX-RS REST, incluída no Java EE 6, mas prontamente instalável no Java EE 5 ou em qualquer contêiner de servlet, é excelente. Indiscutivelmente é o que Servlet 3.0 deveria ter sido. Mas não conheço nenhum livro sobre isso.

Will Hartung
fonte
2
A questão é qual é o estado dos servidores de aplicativos quando você está pronto para a produção. Se um determinado projeto levar 6 meses a partir de agora, o Oracle e o JBoss provavelmente terão servidores compatíveis com JEE6, e o Resin provavelmente terá um servidor JEE6 Web Profile.
Thorbjørn Ravn Andersen
Bem, o JBoss é devido em dezembro. Oracle está baixo. A resina ficou quieta em relação à implementação do perfil da web. Geronimo vai para Web Profile com 3.0 (beta). Glassfish foi lançado no 3.0.1, o que é muito bom.
Thorbjørn Ravn Andersen,
5

Para Tomcat, leia o manual no site. É muito bom. Particularmente, os primeiros capítulos sobre organização e implantação de aplicativos da web e os capítulos sobre Servlets API e JSPs.

Para a primavera, o livro de Manning, Spring in Action, é muito bom. Da mesma forma para o Hibernate (o livro Manning), mas acho que o Hibernate está principalmente fora do escopo dos aplicativos da web. Sua escolha, no entanto.

Wicket - livro de Manning também. Mas, realmente, basta escrever seu código de front-end em Javascript. Será menos doloroso, IMO.

danben
fonte
3

Não vou comentar sobre outras tecnologias, mas se você quiser aprender Hibernate, pegue o "Hibernate Made Easy" de Cameron McKenzie (www.hiberbook.com). Vale a pena cada centavo. Você pode terminar de ler esse livro em 2 dias (literalmente). é como um romance e no final você se vê lidando com o Hibernate como um Semi-Pro.

motiver
fonte
3

Paixão oferece bons vídeos e materiais para aprender Java EE 6 e outras coisas.

Você também deve ver exemplos de aplicativos:

  1. Petstore . Requer Maven, Glassfish recomendado. Escrito por Antonio Gonçalves que escreveu o livro mencionado .
  2. JBoss Ticketmonster . Requer Maven e Jboss Forge . Implante no Jboss.
jacktrades
fonte
2

Se você deseja apenas criar aplicativos da web em Java, verifique o Play Framework . É semelhante a "Ruby on Rails"

Apeirogon Prime
fonte