Quero aprender, pelo menos em um nível básico, como criar aplicativos da Web Java (provenientes de um plano de fundo .NET). Eu gostaria de poder construir, implantar um aplicativo simples do tipo CMS desde o início.
O que exatamente eu preciso aprender?
O Tomcat parece ser um bom servidor web para Java.
Que opções existem para a web? Eu sei que existe o Hibernate para um ORM.
O Java tem MVC? E o JSP ? MVC e JSP podem estar juntos? NetBeans ?
Talvez um livro que cubra tudo isso?
jsp servlets jakarta-ee model-view-controller
— mrblah
(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 .
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.
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?
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 .
Qual é a diferença entre JSF, Servlet e JSP?
Qual é a necessidade do JSF, quando a interface do usuário pode ser alcançada com bibliotecas JavaScript como jQuery e AngularJS
Greate! útil, obrigado. Em .Net, geralmente o livro da Wrox Press pode cobrir todos os conhecimentos em .net. Um livro muito grosso.
— Gfan #
O StackOverflow não possui um recurso de postagem de pinos? Gostaria que sim, para que eu pudesse fixar esta resposta. Obrigado!
Tem que haver uma alternativa ao tutorial do JavaEE 5. Eu sei que sou um novato e todos são muito bons nisso. Mas ... Tentando aprender com esse tutorial. É muito bloqueado e depende de determinadas configurações. Então, eu preciso aprender o NetBeans. então eu preciso desistir do meu servidor e avançar para o glassfish, tentando encontrar o código de amostra para executar e aprender com o wasnt o mais fácil. Não consegui rodar no servidor. em vez disso, me deparei com algo chamado construção maven. Eu pensei que tentei, o que resultou em eclipse ficando louco! aparentemente eu preciso aprender maven, bem como, e isto, que o outro e os demônios grandmo ...
— pirralho
@ brat: a resposta contém links para alternativas e livros.
— BalusC 16/09/19
Bem. Apenas um que cobre muito. Coreserv ... Tinha que pegar trechos aqui e ali. Eu entrei com o tutorial oficial do JavaEE agora :) Apenas para descobrir o SDK que é necessário fazer o download, para executar o código de exemplo, existe um servidor GlassFish que não funciona com o JDK 10 :(, NullPointerException na inicialização. Encontrei um hack stackoverflow.com / questions / 47458119 /… e por isso preciso fazer o download ... e assim por diante. Acho que estou apenas um pouco aborrecido e por ter que pular aros para aprender. :(. Eles não facilitam Noobs x) Cheers :)
— brat
Minimamente,
Java a linguagem
Java, a API, incluindo JDBC para acesso ao banco de dados
Um IDE ou um editor de texto + Ant
Java EE, basicamente, servlets e JSP
Um contêiner de servlet (como Tomcat)
É "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).
Que opções existem para a web?
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 sei que há hibernação para um ORM.
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.
O java tem MVC? e o JSP? MVC e JSP podem estar juntos? feijões?
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).
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.
você diz que o tomcat tem um servidor web embutido, o que mais é então? eu pensei que tudo o que era era um servidor web?
@mrblah - O Tomcat é um mecanismo de servlet. Foi criado para processar classes de servlet (que são as quais os jsp são transformados) e servir a saída para um navegador. Junto com isso, ele também serve todos os arquivos regulares (imagens, html, css, etc), assim como um servidor web. É comparável ao Apache com um módulo php.
— Nemi
O java tem MVC?
Java possui estruturas diferentes como Struts2 , Spring MVC
e o JSP?
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
MVC e JSP podem estar juntos?
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.
feijões?
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
— Xinus
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.
— Avi Linho
Ah, e eu só descobri Prudence no outro dia: threecrickets.com/prudence
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.
— senhor-sk
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)
— mokrzu
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.
— SIVAKUMAR.J
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.