// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Trilha do Aprendizado do Java EE e Java Web
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Trilha do Aprendizado do Java EE e Java Web - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Trilha do Aprendizado do Java EE e Java Web

== O que é uma Aplicação Java Web?

Uma aplicação Java Web gera páginas Web interativas, que contêm vários tipos de linguagem de marcação (HTML, XML, etc.) e conteúdo dinâmico. Normalmente é composto por componentes Web, como JavaServer Pages (JSP), servlets e JavaBeans para modificar e armazenar dados temporariamente, interagir com bancos de dados e Web services e processar o conteúdo como resposta às solicitações do cliente.

Como a maioria das tarefas envolvidas no desenvolvimento de aplicações Web, pode ser repetitiva ou exigir um excedente de código padrão, os frameworks da Web podem ser aplicados para aliviar a sobrecarga associada às atividades comuns. Muitos frameworks, como JavaServer Faces, fornecem, por exemplo, bibliotecas para páginas de modelo e gerenciamento de sessão, e geralmente fomentam a reutilização do código.

=== *O que é Java EE?*

O Java EE (Enterprise Edition) é uma plataforma amplamente usada que contém um conjunto de tecnologias coordenadas que reduz significativamente o custo e a complexidade do desenvolvimento, implantação e gerenciamento de aplicações de várias camadas centradas no servidor. O Java EE é construído sobre a plataforma Java SE e oferece um conjunto de APIs (interfaces de programação de aplicações) para desenvolvimento e execução de aplicações portáteis, robustas, escaláveis, confiáveis e seguras no lado do servidor.

Alguns dos componentes fundamentais do Java EE são:

* Enterprise JavaBeans (EJB): uma arquitetura gerenciada de componente do lado do servidor utilizada para encapsular a lógica de negócios de uma aplicação. A tecnologia EJB permite o desenvolvimento rápido e simplificado de aplicações distribuídas, transacionais, seguras e portáteis baseadas na tecnologia Java.
* Java Persistence API (JPA): um framework que permite aos desenvolvedores gerenciar os dados utilizando o mapeamento relacional de objetos (ORM) em aplicações construídas na plataforma Java.

=== Desenvolvimento em JavaScript e Ajax

JavaScript é uma linguagem de script orientada a objetos utilizada principalmente em interfaces no lado do cliente para aplicações Web. Ajax (Asynchronous JavaScript and XML) é uma técnica Web 2.0 que permite que sejam feitas alterações em uma página Web sem que seja necessário atualizar a página. O kit de ferramentas JavaScript pode ser aproveitado para implementar funcionalidades e componentes ativados para o Ajax em páginas Web.

== Introdução

* link:../docs/web/quickstart-webapps.html[+Introdução ao Desenvolvimento de Aplicações Web+]
* link:../docs/javaee/javaee-intro.html[+Introdução à Tecnologia Java EE+]
* link:../docs/javaee/javaee-gettingstarted.html[+Conceitos Básicos sobre Aplicações do Java EE+]
* link:../docs/web/jsf20-intro.html[+Introdução ao JavaServer Faces 2.x+]
* link:../docs/web/ajax-quickstart.html[+Introdução ao Ajax+]

== Tutoriais e Artigos

=== Tutorial de E-commerce do NetBeans

* link:../docs/javaee/ecommerce/intro.html[+Introdução+]
* link:../docs/javaee/ecommerce/design.html[+Criando a Aplicação+]
* link:../docs/javaee/ecommerce/setup-dev-environ.html[+Configurando o Ambiente de Desenvolvimento+]
* link:../docs/javaee/ecommerce/data-model.html[+Criando o Modelo de Dados+]
* link:../docs/javaee/ecommerce/page-views-controller.html[+Preparando as Views de Página e o Servlet do Controlador+]
* link:../docs/javaee/ecommerce/connect-db.html[+Conectando a Aplicação ao Banco de Dados+]
* link:../docs/javaee/ecommerce/entity-session.html[+Adicionando Classes de Entidades e Beans de Sessão+]
* link:../docs/javaee/ecommerce/manage-sessions.html[+Gerenciando Sessões+]
* link:../docs/javaee/ecommerce/transaction.html[+Integrando a Lógica de Negócios Transacional+]
* link:../docs/javaee/ecommerce/language.html[+Adicionando o Suporte a Idioma+]
* link:../docs/javaee/ecommerce/security.html[+Protegendo a Aplicação+]
* link:../docs/javaee/ecommerce/test-profile.html[+Testando e Criando Perfis+]
* link:../docs/javaee/ecommerce/conclusion.html[+Conclusão+]

=== Injeção de Dependência e Contextos

* link:../docs/javaee/cdi-intro.html[+Conceitos Básicos sobre a Injeção de Dependência e Contextos e JSF 2.x+]
* link:../docs/javaee/cdi-inject.html[+Trabalhando com Injeção e Qualificadores no CDI+]
* link:../docs/javaee/cdi-validate.html[+Aplicando Anotações @Alternative Beans e de Ciclo de Vida+]
* link:../docs/javaee/cdi-events.html[+Trabalhando com Eventos no CDI+]
* link:../docs/javaee/maven-osgiservice-cdi.html[+Usando o CDI para Injetar Pacotes OSGi como Serviços+]

=== Desenvolvendo Aplicações Java Web

* link:../docs/javaee/maven-websocketapi.html[+ Usando a API do WebSocket em uma Aplicação Web+]
* link:../docs/web/jsf-jpa-weblogic.html[+Desenvolvendo uma Aplicação Corporativa para Oracle WebLogic Server+]
* link:../docs/web/mysql-webapp.html[+Criando uma Aplicação Web Simples Usando um Banco de Dados MySQL+]
* link:../docs/web/jsf20-crud.html[+Gerando uma Aplicação CRUD JavaServer Faces 2.0 Usando um Banco de Dados+]
* link:../docs/web/applets.html[+Integrando um Applet em uma Aplicação Web+]
* link:../docs/web/security-webapps.html[+Tornando uma Aplicação Web Segura+]
* link:../docs/java/profile-loadgenerator.html[+Usando um Gerador de Carga no NetBeans IDE+]

=== Suporte a Nuvem

* link:../docs/web/oracle-cloud.html[+Executando Aplicações Web no Oracle Cloud+]
* link:https://blogs.oracle.com/javatraining/entry/oracle_cloud_development_with_netbeans[+Oracle Cloud Development with NetBeans and Eclipse (OEPE)+] (blog do Java Training Beat)
* Wiki do NetBeans: link:http://wiki.netbeans.org/AmazonBeanstalkSupport[+Suporte a Beanstalk da Amazon+]

=== Tecnologia EJB e Java Persistence

* link:../docs/javaee/javaee-entapp-junit.html[+Usando o Contêiner EJB Incorporado para Testar Aplicações Corporativas+]
* link:../docs/javaee/javaee-entapp-ejb.html[+Criando uma Aplicação Enterprise com o EJB 3.1+]
* link:../docs/javaee/maven-entapp.html[+Criando uma Aplicação Corporativa com o Maven+]
* link:../docs/javaee/maven-entapp-testing.html[+Testando uma Aplicação Corporativa Maven+]
* link:../docs/javaee/entappclient.html[+Criando e Executando um Cliente de Aplicação no GlassFish Server+]
* link:../docs/javaee/secure-ejb.html[+Construindo Enterprise Beans Seguros+]
* link:../docs/javaee/profiler-javaee.html[+Criando Perfis de uma Aplicação Corporativa+]
* link:http://wiki.netbeans.org/WebLogicJMS[+Usando WebLogic JMS a partir do NetBeans IDE+]

=== Frameworks Web

* link:../docs/web/jsf20-intro.html[+Introdução ao JavaServer Faces 2.x+]
* link:../docs/web/jsf20-support.html[+Suporte a JSF 2.x+]
* link:../docs/web/quickstart-webapps-spring.html[+Spring Web MVC+]
* link:../docs/web/quickstart-webapps-struts.html[+Struts+]
* link:../docs/web/grails-quickstart.html[+Grails+]
* link:../docs/web/quickstart-webapps-wicket.html[+Wicket+]
* link:../docs/web/framework-adding-support.html[+Adicionando Suporte a um Framework Web+]

=== Desenvolvimento em JavaScript e Ajax

* link:../docs/web/ajax-quickstart.html[+Introdução ao Ajax+]
* link:../docs/web/js-toolkits-jquery.html[+Usando jQuery para Aprimorar a Aparência e o Uso de uma Página Web+]
* link:../docs/web/js-toolkits-dojo.html[+Conectando uma Árvore Dojo a uma ArrayList utilizando JSON+]

== Screencasts

* link:../docs/javaee/maven-primefaces-screencast.html[+Desenvolvimento de PrimeFaces com Maven+]
* link:../docs/javaee/javaee-gettingstarted-js-screencast.html[+Desenvolvimento do Cliente JavaScript no Java EE+]
* link:../docs/javaee/javaee-gettingstarted-pf-screencast.html[+Desenvolvimento de Java EE com PrimeFaces+]
* link:../docs/javaee/weblogic-javaee-m1-screencast.html[+Vídeo sobre a Implantação de uma Aplicação Web no Oracle WebLogic Server+]
* link:../docs/javaee/javaee-gettingstarted-screencast.html[+Vídeo de Introdução às Aplicações do Java EE 6+]
* YouTube: link:http://www.youtube.com/watch?v=0hHkV04JPxo[+WebLogic Server 12c - 5 minutos com o suporte a Descritor do GlassFish+]
* Youtube: link:https://www.youtube.com/watch?v=_PDIxHyaWy4[+Conceitos Básicos sobre Desenvolvimento de PrimeFaces +]
* YouTube: link:http://www.youtube.com/watch?v=Uvt1byURZrw[+Desbloqueando a Plataforma Java EE6+]
* YouTube: link:http://www.youtube.com/watch?v=vaOpJJ-Xm70[+Injeção de segurança de digitação dos serviços dinâmicos OSGi com GlassFish 3.1 e CDI+]
* YouTube: link:http://www.youtube.com/watch?v=wcg2SCgTL-4[+HTML5 e Web Sockets no Glassfish+]
* YouTube: link:http://www.youtube.com/watch?v=zdYxdx3FuX0[+Java EE 6 faz Java 7 com o GlassFish 3.1.1+]

=== Aplicações do Java EE ativados para OSGi de Arun Gupta (YouTube)

* YouTube: link:http://www.youtube.com/watch?v=X7GwN4XSzfU[+Projeto POM Pai (Parte 1 de 6) +]
* YouTube: link:http://www.youtube.com/watch?v=eBdLqdvOF_8[+API e Pacote OSGi de Serviço (Parte 2 de 6) +]
* YouTube: link:http://www.youtube.com/watch?v=TWRt_cFDRHE[+Pacote OSGi de Cliente que chama um Serviço OSGi (Parte 3 de 6) +]
* YouTube: link:http://www.youtube.com/watch?v=bSX89JjQoRM[+cliente WAB que chama um serviço OSGi (Parte 4 de 6) +]
* YouTube: link:http://www.youtube.com/watch?v=6WexZAUeFWM[+pacote de OSGi de Cliente que chama um serviço EJB (Parte 5 de 6) +]
* YouTube: link:http://www.youtube.com/watch?v=IU4UMTnifhw[+conclusão e outras extensões possíveis (parte 6 de 6) +]

=== Tutorial em Vídeo do Java EE 6 de Arun Gupta (YouTube)

* link:http://www.youtube.com/watch?v=pwBNmAhtqk8[+ JSP + Servlets + EJB: Java EE 6 e GlassFish 3 usando NetBeans 6.9 (Parte 1 de 5) +]
* link:http://www.youtube.com/watch?v=_D_vphsAM-Y[+ Java Persistence API 2: Java EE 6 e GlassFish 3 usando NetBeans 6.9 (Parte 2 de 5) +]
* link:http://www.youtube.com/watch?v=-Q25P-oSUJ8[+ Facelets e JSF 2: Java EE 6 e GlassFish 3 usando NetBeans 6.9 (Parte 3 de 5) +]
* link:http://www.youtube.com/watch?v=D1fyKOTO5rw[+ CDI com JSF 2: Java EE 6 e GlassFish 3 usando NetBeans 6.9 (Parte 4 de 5) +]
* link:http://www.youtube.com/watch?v=qf2Jxwpbsuo[+Web Services RESTful usando JAX-RS: Java EE 6 e GlassFish 3 usando NetBeans 6.9 (Parte 5 de 5) +]

== Aplicações de Amostra

* link:../samples/pet-catalog.html[+Castálogo Pet - Aplicação de Amostra do Java EE 6+]
* link:../samples/scrum-toys.html[+Scrum Toys: A Aplicação de Amostra Completa do JSF 2.0+]
* link:../samples/jsfjpa.html[+Aplicação Web de Autenticação de Usuário Usando Java EE+]
* link:../samples/webjpa.html[+Utilizando o Java Persistence API em uma Aplicação Web Stand-Alone+]
* link:../samples/javaee-crud.html[+Aplicação da Web JSF CRUD com o Java Persistence API+]
* link:../samples/javaee-stateless.html[+Injeção de Dependência com Beans de Sessão Sem Estado+]

== Documentos de Contribuição da Comunidade

* link:http://netbeans.dzone.com/nb-hierarchical-web-services[+Desenvolvimento de Web Service Hierárquico com NetBeans IDE+] de Jayasurya Venug (Extensão do Tutorial do NetBeans E-commerce)
* link:http://blog.mueller-bruehl.de/en/tutorial-web-development/[+Desenvolvimento da Web em tutorial (com JSF)+] de Michael Muller
* link:http://wiki.netbeans.org/DevelopJavaEE6App[+Desenvolva aplicação JavaEE 6 com JSF2, EJB3 e JPA+] (também na link:http://netbeans.dzone.com/articles/develop-java-ee-6-app-jsf2[+dzone+]) por Christopher Lam
* link:http://wiki.netbeans.org/SecureJavaEE6App[+Protegendo aplicações JavaEE 6 com o JavaEE Security+] de Christopher Lam
* link:http://wiki.netbeans.org/CreateReverseAjaxWebAppsWithDWR[+Crie Aplicações Web Reverse Ajax com DWR, GlassFish e NetBeans+] por Siegfried Bolz
* link:http://wiki.netbeans.org/wiki/view/MavenAndNetBeansForGlassFish[+Desenvolvendo Aplicações Corporativas para GlassFish utilizando Maven e NetBeans+] por Wouter van Reeven
* link:http://wiki.netbeans.org/SpringMVConNetBeansGlassFish[+Desenvolvendo uma Aplicação Spring Framework MVC utilizando GlassFish+] por Arulazi Dhesiaseelan
* link:http://wiki.netbeans.org/MavenSpringEJBsOnGlassfish[+Desenvolvimento EJB para Glassfish utilizando Maven2 e Spring+] por Kristian Rink
* link:http://www.adam-bien.com/roller/abien/entry/simplest_possible_ejb_3_13[+O Componente EJB 3.1/REST (JSR 311) Mais Simples Possível+] de Adam Bien
* link:http://wiki.netbeans.org/DevelopAjaxJSF2App[+Desenvolva aplicações JSF2 com base em Ajax com PrimeFaces utilizando o Netbeans 6.8+] por Christopher Lam

== Outros Recursos

=== _Desenvolvendo Aplicações com o NetBeans IDE_ Guia do Usuário

* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1216[+Desenvolvendo Aplicações Corporativas+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1349[+Desenvolvendo Persistência Java+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1035[+Desenvolvendo Aplicações Web+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1261[+Desenvolvendo Enterprise Beans+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1649[+Trabalhando com Servidores Web e Servidores de Aplicações+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1138[+Usando Frameworks da Aplicação Web+]

=== Perguntas Frequentes

* link:http://wiki.netbeans.org/NetBeansUserFAQ#section-NetBeansUserFAQ-WebFrameworks[+Perguntas Frequentes sobre o Framework Web do NetBeans+]
* link:http://wiki.netbeans.org/NetBeansUserFAQ#section-NetBeansUserFAQ-JavaEEDevelopment[+Perguntas Frequentes de Desenvolvimento do Java EE+]

=== Tutoriais e Outras Documentações

* link:http://docs.oracle.com/javaee/7/tutorial/doc/[+Tutorial do Java EE 7+]
* link:http://docs.oracle.com/javaee/6/tutorial/doc/[+O Tutorial do Java EE 6+]
* link:https://glassfish.java.net/[+Participe da Comunidade GlassFish +]
* link:http://www.mysql.com/why-mysql/java/[+MySQL e Java: Recursos+]
* link:https://weblogs.java.net/blog/caroljmcdonald/archive/2013/09/16/example-backbonejs-jax-rs-jpa-application[+Exemplo Backbone.js , JAX-RS, Aplicação JPA+]
* link:http://www.andygibson.net/blog/index.php/2009/12/16/getting-started-with-jsf-2-0-and-cdi-in-jee-6-part-1/[+ Introdução ao JSF 2.0 e CDI no JEE 6, Parte 1+], link:http://www.andygibson.net/blog/index.php/2009/12/22/getting-started-with-cdi-part-2-injection/[+Parte 2+]
* link:http://technology.amis.nl/blog/?p=2613[+Integrando Seam com Maven, NetBeans e GlassFish +]
* link:http://technology.amis.nl/blog/?p=2610[+Combinando Hibernate e Facelets com Maven, NetBeans e GlassFish+]

=== Weblogs

* link:http://www.java.net/blogs/edburns/[+Ed Burns+]
* link:https://blogs.oracle.com/arungupta/[+Arun Gupta+]
* link:http://www.java.net/blog/6034[+Cay Horstmann+]
* link:http://blogs.oracle.com/vkraemer/[+Vince Kraemer+]
* link:http://www.java.net/blogs/caroljmcdonald/[+Carol McDonald+]
* link:http://blogs.oracle.com/geertjan/[+Geertjan Wielenga+]
* link:http://blogs.oracle.com/theaquarium/[+The Aquarium+]
* link:http://buttso.blogspot.com/[+The Buttso Blathers+]

