// 
//     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.
//

= Java EE &amp; Java Web Learning Trail
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Java EE &amp; Java Web Learning Trail - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Java EE &amp; Java Web Learning Trail

== What is a Java Web Application?

A Java web application generates interactive web pages containing various types of markup language (HTML, XML, and so on) and dynamic content. It is typically comprised of web components such as JavaServer Pages (JSP), servlets and JavaBeans to modify and temporarily store data, interact with databases and web services, and render content in response to client requests.

Because many of the tasks involved in web application development can be repetitive or require a surplus of boilerplate code, web frameworks can be applied to alleviate the overhead associated with common activities. For example, many frameworks, such as JavaServer Faces, provide libraries for templating pages and session management, and often promote code reuse.

=== *What is Java EE?*

Java EE (Enterprise Edition) is a widely used platform containing a set of coordinated technologies that significantly reduce the cost and complexity of developing, deploying, and managing multi-tier, server-centric applications. Java EE builds upon the Java SE platform and provides a set of APIs (application programming interfaces) for developing and running portable, robust, scalable, reliable and secure server-side applications.

Some of the fundamental components of Java EE include:

* Enterprise JavaBeans (EJB): a managed, server-side component architecture used to encapsulate the business logic of an application. EJB technology enables rapid and simplified development of distributed, transactional, secure and portable applications based on Java technology.
* Java Persistence API (JPA): a framework that allows developers to manage data using object-relational mapping (ORM) in applications built on the Java Platform.

=== JavaScript and Ajax Development

JavaScript is an object-oriented scripting language primarily used in client-side interfaces for web applications. Ajax (Asynchronous JavaScript and XML) is a Web 2.0 technique that allows changes to occur in a web page without the need to perform a page refresh. JavaScript toolkits can be leveraged to implement Ajax-enabled components and functionality in web pages.

== Getting Started

* link:../docs/web/quickstart-webapps.html[+Introduction to Developing Web Applications+]
* link:../docs/javaee/javaee-intro.html[+Introduction to Java EE Technology+]
* link:../docs/javaee/javaee-gettingstarted.html[+Getting Started with Java EE Applications+]
* link:../docs/web/jsf20-intro.html[+Introduction to JavaServer Faces 2.x+]
* link:../docs/web/ajax-quickstart.html[+Introduction to Ajax+]

== Tutorials and Articles

=== NetBeans E-commerce Tutorial

* link:../docs/javaee/ecommerce/intro.html[+Introduction+]
* link:../docs/javaee/ecommerce/design.html[+Designing the Application+]
* link:../docs/javaee/ecommerce/setup-dev-environ.html[+Setting up the Development Environment+]
* link:../docs/javaee/ecommerce/data-model.html[+Designing the Data Model+]
* link:../docs/javaee/ecommerce/page-views-controller.html[+Preparing the Page Views and Controller Servlet+]
* link:../docs/javaee/ecommerce/connect-db.html[+Connecting the Application to the Database+]
* link:../docs/javaee/ecommerce/entity-session.html[+Adding Entity Classes and Session Beans+]
* link:../docs/javaee/ecommerce/manage-sessions.html[+Managing Sessions+]
* link:../docs/javaee/ecommerce/transaction.html[+Integrating Transactional Business Logic+]
* link:../docs/javaee/ecommerce/language.html[+Adding Language Support+]
* link:../docs/javaee/ecommerce/security.html[+Securing the Application+]
* link:../docs/javaee/ecommerce/test-profile.html[+Testing and Profiling+]
* link:../docs/javaee/ecommerce/conclusion.html[+Conclusion+]

=== Contexts and Dependency Injection

* link:../docs/javaee/cdi-intro.html[+Getting Started with Contexts and Dependency Injection and JSF 2.x+]
* link:../docs/javaee/cdi-inject.html[+Working with Injection and Qualifiers in CDI+]
* link:../docs/javaee/cdi-validate.html[+Applying @Alternative Beans and Lifecycle Annotations+]
* link:../docs/javaee/cdi-events.html[+Working with Events in CDI+]
* link:../docs/javaee/maven-osgiservice-cdi.html[+Using CDI to Inject OSGi Bundles as Services +]

=== Developing Java Web Applications

* link:../docs/javaee/maven-websocketapi.html[+Using the WebSocket API in a Web Application+]
* link:../docs/web/jsf-jpa-weblogic.html[+Developing an Enterprise Application for Oracle WebLogic Server+]
* link:../docs/web/mysql-webapp.html[+Creating a Simple Web Application Using a MySQL Database+]
* link:../docs/web/jsf20-crud.html[+Generating a JavaServer Faces 2.0 CRUD Application from a Database+]
* link:../docs/web/applets.html[+Integrating an Applet in a Web Application+]
* link:../docs/web/security-webapps.html[+Securing a Web Application+]
* link:../docs/java/profile-loadgenerator.html[+Using a Load Generator in NetBeans IDE+]

=== Cloud Support

* link:../docs/web/oracle-cloud.html[+Running Web Applications on Oracle Cloud+]
* link:https://blogs.oracle.com/javatraining/entry/oracle_cloud_development_with_netbeans[+Oracle Cloud Development with NetBeans and Eclipse (OEPE)+] (Java Training Beat blog)
* NetBeans Wiki: link:http://wiki.netbeans.org/AmazonBeanstalkSupport[+Amazon Beanstalk Support+]

=== EJB Technology and Java Persistence

* link:../docs/javaee/javaee-entapp-junit.html[+Using the Embedded EJB Container to Test Enterprise Applications+]
* link:../docs/javaee/javaee-entapp-ejb.html[+Creating an Enterprise Application with EJB 3.1+]
* link:../docs/javaee/maven-entapp.html[+Creating an Enterprise Application Using Maven+]
* link:../docs/javaee/maven-entapp-testing.html[+Testing a Maven Enterprise Application+]
* link:../docs/javaee/entappclient.html[+Creating and Running an Application Client on the GlassFish Server+]
* link:../docs/javaee/secure-ejb.html[+Building Secure Enterprise Beans+]
* link:../docs/javaee/profiler-javaee.html[+Profiling an Enterprise Application+]
* link:http://wiki.netbeans.org/WebLogicJMS[+Using WebLogic JMS from NetBeans IDE+]

=== Web Frameworks

* link:../docs/web/jsf20-intro.html[+Introduction to JavaServer Faces 2.x+]
* link:../docs/web/jsf20-support.html[+JSF 2.x Support+]
* link:http://wiki.netbeans.org/VaadinPlugin[+Vaadin+]
* 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[+Adding Support For A Web Framework+]

=== JavaScript and Ajax Development

* link:../docs/web/ajax-quickstart.html[+Introduction to Ajax+]
* link:../docs/web/js-toolkits-jquery.html[+Using jQuery to Enhance the Appearance and Usability of a Web Page+]
* link:../docs/web/js-toolkits-dojo.html[+Connecting a Dojo Tree to an ArrayList using JSON+]

== Screencasts

* link:../docs/javaee/maven-primefaces-screencast.html[+PrimeFaces Development with Maven+]
* link:../docs/javaee/javaee-gettingstarted-js-screencast.html[+JavaScript Client Development in Java EE+]
* link:../docs/javaee/javaee-gettingstarted-pf-screencast.html[+Java EE Development with PrimeFaces+]
* link:../docs/javaee/weblogic-javaee-m1-screencast.html[+Video of Deploying a Web Application to the Oracle WebLogic Server+]
* link:../docs/javaee/javaee-gettingstarted-screencast.html[+Video of Getting Started with Java EE 6 Applications+]
* YouTube: link:http://www.youtube.com/watch?v=0hHkV04JPxo[+WebLogic Server 12c - 5 Mins with GlassFish Descriptor Support+]
* YouTube: link:https://www.youtube.com/watch?v=_PDIxHyaWy4[+Get Started with PrimeFaces Development +]
* YouTube: link:http://www.youtube.com/watch?v=Uvt1byURZrw[+Unlocking the Java EE6 Platform+]
* YouTube: link:http://www.youtube.com/watch?v=vaOpJJ-Xm70[+Type-safe injection of OSGi dynamic services with GlassFish 3.1 and CDI+]
* YouTube: link:http://www.youtube.com/watch?v=wcg2SCgTL-4[+HTML5 and Web Sockets in Glassfish+]
* YouTube: link:http://www.youtube.com/watch?v=zdYxdx3FuX0[+Java EE 6 does Java 7 with GlassFish 3.1.1+]

=== OSGi-enabled Java EE Applications by Arun Gupta (YouTube)

* YouTube: link:http://www.youtube.com/watch?v=X7GwN4XSzfU[+Parent POM Project (Part 1 of 6) +]
* YouTube: link:http://www.youtube.com/watch?v=eBdLqdvOF_8[+API and Service OSGi Bundle (Part 2 of 6) +]
* YouTube: link:http://www.youtube.com/watch?v=TWRt_cFDRHE[+Client OSGi Bundle invoking an OSGi Service (Part 3 of 6) +]
* YouTube: link:http://www.youtube.com/watch?v=bSX89JjQoRM[+WAB client invoking an OSGi service (Part 4 of 6) +]
* YouTube: link:http://www.youtube.com/watch?v=6WexZAUeFWM[+Client OSGi bundle invoking EJB service (Part 5 of 6) +]
* YouTube: link:http://www.youtube.com/watch?v=IU4UMTnifhw[+Conclusion and other possible extensions (Part 6 of 6) +]

=== Java EE 6 Video Tutorial by Arun Gupta (YouTube)

* link:http://www.youtube.com/watch?v=pwBNmAhtqk8[+ JSP + Servlets + EJB: Java EE 6 &amp; GlassFish 3 using NetBeans 6.9 (Part 1 of 5) +]
* link:http://www.youtube.com/watch?v=_D_vphsAM-Y[+ Java Persistence API 2: Java EE 6 &amp; GlassFish 3 using NetBeans 6.9 (Part 2 of 5) +]
* link:http://www.youtube.com/watch?v=-Q25P-oSUJ8[+ Facelets and JSF 2: Java EE 6 &amp; GlassFish 3 using NetBeans 6.9 (Part 3 of 5) +]
* link:http://www.youtube.com/watch?v=D1fyKOTO5rw[+ CDI with JSF 2: Java EE 6 &amp; GlassFish 3 using NetBeans 6.9 (Part 4 of 5) +]
* link:http://www.youtube.com/watch?v=qf2Jxwpbsuo[+RESTful Web services using JAX-RS: Java EE 6 &amp; GlassFish 3 using NetBeans 6.9 (Part 5 of 5) +]

== Sample Applications

* link:../samples/pet-catalog.html[+Pet Catalog - Java EE 6 Sample Application+]
* link:../samples/scrum-toys.html[+Scrum Toys - The JSF 2.0 Complete Sample Application+]
* link:../samples/jsfjpa.html[+User Authentication Web App Using Java EE+]
* link:../samples/webjpa.html[+Using the Java Persistence API in a Stand-Alone Web App+]
* link:../samples/javaee-crud.html[+JSF CRUD Web Application with Java Persistence API+]
* link:../samples/javaee-stateless.html[+Dependency Injection with Stateless Session Beans+]

== Community-Contributed Docs

* link:http://netbeans.dzone.com/nb-hierarchical-web-services[+Hierarchical Web Service Development with NetBeans IDE+] by Jayasurya Venug (Extension of NetBeans E-commerce Tutorial)
* link:http://blog.mueller-bruehl.de/en/tutorial-web-development/[+Tutorial web development (with JSF)+] by Michael Muller
* link:http://wiki.netbeans.org/DevelopJavaEE6App[+Develop JavaEE 6 application with JSF2, EJB3 and JPA+] (also at link:http://netbeans.dzone.com/articles/develop-java-ee-6-app-jsf2[+dzone+]) by Christopher Lam
* link:http://wiki.netbeans.org/SecureJavaEE6App[+Securing JavaEE 6 application with JavaEE Security+] by Christopher Lam
* link:http://wiki.netbeans.org/CreateReverseAjaxWebAppsWithDWR[+Create Reverse Ajax Web-Applications with DWR, GlassFish and NetBeans+] by Siegfried Bolz
* link:http://wiki.netbeans.org/wiki/view/MavenAndNetBeansForGlassFish[+Developing Enterprise Applications for GlassFish using Maven and NetBeans+] by Wouter van Reeven
* link:http://wiki.netbeans.org/SpringMVConNetBeansGlassFish[+Developing a Spring Framework MVC application using GlassFish+] by Arulazi Dhesiaseelan
* link:http://wiki.netbeans.org/MavenSpringEJBsOnGlassfish[+EJB development for Glassfish using Maven2 and Spring+] by Kristian Rink
* link:http://www.adam-bien.com/roller/abien/entry/simplest_possible_ejb_3_13[+Simplest Possible EJB 3.1/REST (JSR 311) Component+] by Adam Bien
* link:http://wiki.netbeans.org/DevelopAjaxJSF2App[+Develop Ajax-based JSF2 applications with PrimeFaces using Netbeans 6.8+] by Christopher Lam

== Other Resources

=== _Developing Applications with NetBeans IDE_ User's Guide

* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1216[+Developing Enterprise Applications+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1349[+Developing with Java Persistence+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1035[+Developing Web Applications+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1261[+Developing with Enterprise Beans+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1649[+Working with Web and Application Servers+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1138[+Using Web Application Frameworks+]

=== FAQs

* link:http://wiki.netbeans.org/NetBeansUserFAQ#section-NetBeansUserFAQ-WebFrameworks[+NetBeans Web Framework FAQs+]
* link:http://wiki.netbeans.org/NetBeansUserFAQ#section-NetBeansUserFAQ-JavaEEDevelopment[+Java EE Development FAQs+]

=== Tutorials and Other Docs

* link:http://docs.oracle.com/javaee/7/tutorial/doc/[+The Java EE 7 Tutorial+]
* link:http://docs.oracle.com/javaee/6/tutorial/doc/[+The Java EE 6 Tutorial+]
* link:https://glassfish.java.net/[+Join the GlassFish Community +]
* link:http://www.mysql.com/why-mysql/java/[+MySQL and Java - Resources +]
* link:https://weblogs.java.net/blog/caroljmcdonald/archive/2013/09/16/example-backbonejs-jax-rs-jpa-application[+Example Backbone.js , JAX-RS, JPA Application+]
* link:http://www.andygibson.net/blog/index.php/2009/12/16/getting-started-with-jsf-2-0-and-cdi-in-jee-6-part-1/[+ Getting Started with JSF 2.0 and CDI in JEE 6, Part 1+], link:http://www.andygibson.net/blog/index.php/2009/12/22/getting-started-with-cdi-part-2-injection/[+Part 2+]
* link:http://technology.amis.nl/blog/?p=2613[+Integrating Seam with Maven, NetBeans and GlassFish +]
* link:http://technology.amis.nl/blog/?p=2610[+Combining Hibernate and Facelets with Maven, NetBeans and 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+]

