(Atualizado em março de 2020)
Primeiro, "Java EE" foi renomeado para "setembro de 2019" para " Jakarta EE ", começando na versão 8. Historicamente, havia também o termo "J2EE" que cobria as versões 1.2 a 1.4. O "Java EE" abrangeu as versões 5 a 8. Veja também Java Platform, Enterprise Edition, History na Wikipedia .
O que exatamente eu preciso aprender?
Suponho que você já esteja familiarizado com tecnologias do lado do cliente, como HTML , CSS e JS , por isso não vou entrar em detalhes com isso. Suponho também que você já esteja familiarizado com o Java básico. Siga os tutoriais Java da Oracle e, se possível, obtenha também um livro ou curso sobre OCP .
Em seguida, você pode começar com JSP / Servlet para aprender os conceitos básicos de desenvolvimento da Web Java. Bons tutoriais podem ser encontrados nos capítulos 3 a 8 da parte II do tutorial Java EE 5 da Oracle e em Coreservlets.com ( Iniciante-Intermediário e Avançado, também JDBC ). Observe que desde o Java EE 6, o JSP é removido do tutorial do Java EE em favor do JSF e que o JSP basicamente não mudou desde então. É por isso que você pode usar com segurança o tutorial bastante antigo do Java EE 5 para isso. O mais importante em relação ao JSP é o fato de que escrever código Java simples em arquivos JSP usando <%
scriptlets %>
é oficialmente desencorajado desde 2003. Consulte também Como evitar o código Java em arquivos JSP? Portanto, todos os tutoriais que ainda cobrem scriptlets devem ser ignorados, pois definitivamente o levarão a uma espiral descendente de aprendizado de práticas ruins.
Aqui no Stack Overflow, você também pode encontrar boas páginas wiki sobre JSP , Servlets , JSTL e EL, onde você pode aprender o essencial e encontrar links mais úteis.
O Tomcat parece ser um bom servidor web para Java.
Isto é. No entanto, é limitado em recursos. É basicamente um contêiner de servlet barebones, implementando apenas as partes JSP / Servlet da enorme API Java EE. Se você sempre quer ir EJB ou JPA, então você gostaria de escolher um outro, por exemplo, JBoss Application Server , Tomee , Payara , Liberdade , WebLogic , etc. Caso contrário, você tem que usar Primavera, em vez de Java EE. Não é possível instalar o EJB em um contêiner de servlet barebones sem modificar o mecanismo principal; no caso do Tomcat, basicamente, você estaria reinventando o TomEE. Consulte também O que exatamente é o Java EE? , Como instalar e configurar corretamente as bibliotecas JSF via Maven? e Como instalar e usar o CDI no Tomcat?
Eu sei que existe o Hibernate para um ORM.
Anteriormente, durante a era J2EE, quando o JPA não existia e o EJB2 era terrível, o Hibernate era uma estrutura autônoma e frequentemente usada em combinação com o Spring para suplantar o EJB. Desde a introdução do JPA no Java EE 5 (2006), o Hibernate se tornou uma implementação do JPA. Você pode aprender JPA no Jakarta EE tutorial parte VIII . Além disso, o EJB3 foi muito aprimorado com base nas lições aprendidas na primavera. Consulte também Quando é necessário ou conveniente usar o Spring ou o EJB3 ou todos eles juntos?
O Java tem MVC? E o JSP? MVC e JSP podem estar juntos? JavaBeans?
Você pode , mas isso é muita reinvenção da roda quando se trata de amarrar o modelo com a visualização (conversão, validação, alterar ouvintes, etc.). A estrutura MVC do Java EE é chamada JSF . Antes do Java EE 6, ele era executado em JSP, que é uma tecnologia de exibição bastante legada. JSP foi substituído por Facelets . Você pode aprender JSF no tutorial de Jacarta EE, parte III, capítulos 7 a 17 . A propósito, você também pode usar o JSF no Tomcat, basta instalá-lo separadamente. As instruções de instalação podem ser encontradas na página inicial de Mojarra. WildFly, TomEE, Payara, Liberty, WebLogic, etc, como sendo uma implementação Java EE completa, já fornecem JSF (e CDI, BV, JSONP, JAX-RS, EJB, JPA, etc) prontos para uso, para que você não precise instale-o separadamente. Consulte também Como instalar e configurar corretamente as bibliotecas JSF via Maven?
Talvez um livro que cubra tudo isso?
Existem vários livros. Eu recomendaria começar com um livro focado no Jakarta EE em geral , um livro mais focado no JSF e um livro mais focado no JPA . Certifique-se de escolher o livro mais recente sobre o assunto. Primeiro, investigue a versão disponível mais recente e verifique se o livro escolhido cobre isso. Portanto, definitivamente, não escolha um livro antigo para Java EE 5 ou JSF 1.0 ou mais, enquanto já houver o Jakarta EE 8 e o JSF 2.3 disponíveis.
Por último, mas não menos importante, ignore os sites de raspagem de trechos de código mantidos por amadores com foco principal na receita publicitária, em vez de no ensino, como roseindia, tutorialspoint, javabeat, journaldev, javatpoint, codejava etc. Eles são facilmente reconhecíveis por links de publicidade perturbadores / banners e snippets de código JSP que contêm scriptlets .
Veja também:
Minimamente,
É "decente". Se você não curte EJBs, provavelmente não precisará aprender mais nada. Ultimamente, o Glassfish 3 parece bem legal, mas ainda não brinquei muito com ele. Observe que é "mais" que um servidor web. É um contêiner de servlet (o que significa que ele pode executar aplicativos usando a tecnologia de servlet).
Cerca de um zilhão de estruturas diferentes. Realmente, escolher um é realmente "difícil". É muito tentador experimentar todos eles, mas, no final das contas, inviável.
Eu sou um pouco anti-ORM, mas o Hibernate é o que você precisa se precisar de um ORM "completo". Você também pode tentar ORMs "parciais", como o suporte JDBC da Spring ou o iBatis.
Sim, a maioria das estruturas da web Java faz MVC. O MVC do Spring é bom, mas não posso recomendar mais nada (especialmente, não o Struts 1!). JSP é apenas um mecanismo de modelagem HTML (ou XML). JSP da velha escola, com código Java incorporado não é legal; JSP moderno com arquivos e bibliotecas de tags é muito bom.
Suponho que a maioria das estruturas permitirá que você use JSP para renderizar seus Vs; O MVC e o Struts da Spring fazem. Alguns permitem que você use outra coisa também (Velocity, Freemarker, etc.).
Beans é apenas uma convenção para objetos. Basicamente, isso significa que você está usando getters e setters (ou algumas alternativas) e está seguindo algumas regras. Isso deve permitir que seu objeto seja manipulado por determinadas ferramentas. O exemplo típico é uma GUI, algumas ferramentas permitem criar componentes da GUI para editar beans arbitrários (ou seja, eles renderizam um formulário para editar seus campos).
fonte
Você precisa de HTML, CSS e JavaScript - todos os suspeitos comuns para o desenvolvimento da web.
O Tomcat possui um servidor da Web embutido, mas é um servlet / mecanismo JSP . Apache é o servidor web puro.
Você precisa aprender JSP, que é uma linguagem de modelagem para gerar servlets que geram saída HTML. Você deseja escrevê-los usando JSTL, não scripts.
Se você estiver criando aplicativos CRUD, precisará aprender JDBC e bancos de dados relacionais. Você deve fazer isso antes de experimentar o Hibernate ou qualquer outro ORM, porque é a base sobre a qual eles são construídos.
JavaBeans são apenas padrões para objetos Java.
Se você quiser, recomendo o framework Spring.
fonte
Java possui estruturas diferentes como Struts2 , Spring MVC
JSP é uma biblioteca de modelos. Existem algumas alternativas que você pode tentar, como FreeMarker e Velocity . O AFAIK Freemarker é um emergente como uma boa biblioteca de modelos. É leve que JSP . Confira este FreeMarker : Uma alternativa aberta ao JSP - JavaWorld
Tomo o MVC como uma estrutura mencionada anteriormente. Todas as estruturas têm suporte para JSP, mas você precisa verificar o suporte para outras bibliotecas de modelos na documentação das respectivas estruturas. O AFAIK Struts2 to tem um suporte muito bom para o Freemarker.
Eu não sei muito sobre isso. Mas, usando beans, podemos mapear diretamente os dados do formulário para os bancos de dados.
Cada estrutura tem seu próprio livro. Para Struts2 - Struts 2 em ação
String MVC - Dê uma olhada nessas perguntas, recomendando livros para o Spring e o Spring MVC. Sugestão de livro para o framework Spring e Spring Books: Qual escolher
O Fremarker possui uma documentação muito boa - Manual do FreeMarker
Para iniciar o desenvolvimento da Web em Java -
http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596
fonte
Considero a maioria das opções tradicionais de desenvolvimento da Web Java bastante pesadas e existem algumas boas alternativas:
O Play é uma estrutura MVC focada em ser leve, direta e permitir o desenvolvimento rápido - enquanto adere ao Java puro, em oposição a uma linguagem baseada em JVM mais dinâmica. É relativamente novo, mas já impressionante, e uma boa comunidade se formou rapidamente.
Grails é uma estrutura MVC, inspirada no Ruby on Rails, que é escrita e usa o Groovy , uma linguagem de script baseada em Java. Grails é maduro, robusto e amplamente respeitado, com uma comunidade forte. O Groovy é basicamente um superconjunto de Java, com melhor sintaxe e alguns ótimos recursos, como fechamentos, portanto, aprender é uma ótima maneira de aprender Java.
Se você precisa / deseja criar sites / serviços / aplicativos RESTful, o Restlet é uma estrutura fantástica - sou um grande fã. É simples, direto e flexível. Ótima comunidade também.
O Google App Engine do Google também é uma opção interessante. Está hospedado, o que pode ou não ser de interesse, mas possui uma API bastante simples e um bom SDK.
Tenho certeza de que existem outros, mas esses são os que consigo pensar em cima da minha cabeça.
Boa sorte e divirta-se!
fonte
Eu sou uma programação PHP / C e achei o groovy capaz de pular para Java sem aprender todas as classes e paradigmas inerentes à programação em java. O Groovy me permitiu ser produtivo rapidamente, enquanto dedicava um tempo para aprender mais sobre java e todas as ferramentas / estruturas / bibliotecas disponíveis.
fonte
Se você não costuma trabalhar com html, css, xml, javascript etc.
Experimente o framework Vaadin , é bem documentado, fácil de aprender e permite criar uma interface de usuário bonita de maneira simples. (basta escrever o código Java, é claro que você precisa de um servidor servlet, o Tomcat ou o Jetty ficarão bem)
fonte
Melhor você aprende java.Então você aprende Servlets e JSP.Em seguida, vá para MVC, vá para Struts ou Spring ou qualquer outra estrutura habilitada para java / java.
fonte
Como você é novo no Java, recomendo fortemente que você aprenda a linguagem básica primeiro. Isso o ajudará, independentemente da tecnologia em que você escolher fazer seu aplicativo Web.
Um bom recurso on-line é o Sun Java Tutorial - http://java.sun.com/docs/books/tutorial/
fonte