// 
//     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 и веб-приложениям Java
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Учебная карта по Java EE и веб-приложениям Java - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Учебная карта по Java EE и веб-приложениям Java


== Общее представление о веб-приложении Java

Веб-приложение Java создает интерактивные веб-страницы, содержащие различные типы языков разметки (HTML, XML и т.д.), а также динамическое содержимое. Это содержимое обычно формируется веб-компонентами, например страницами JavaServer (JSP), сервлетами и компонентами JavaBean, которые позволяют изменять данные и осуществлять их временное хранение, взаимодействовать с базами данных и веб-службами, а также отображать содержимое в ответ на запросы клиентов.

Так как многие задачи разработки веб-приложения могут повторяться или требовать наличия избыточного шаблонного кода, то для уменьшения количества общих действий следует применять веб-платформы. Многие платформы (например, JavaServer Faces) предоставляют библиотеки для создания шаблонов страниц и управления сеансами, а также часто обеспечивают повторное использование кода.


== *Общие сведения о Java EE*

Java EE (Enterprise Edition) представляет собой широко используемую платформу, содержащую набор взаимосвязанных технологий, которые существенно сокращают стоимость и сложность разработки, развертывания многоуровневых серверных приложений, а также управления ими. Платформа Java EE основана на платформе Java SE и предоставляет набор интерфейсов API (интерфейсов разработки приложений) для разработки и запуска портируемых, надежных, масштабируемых и безопасных серверных приложений.

Java EE в числе прочих содержит следующие компоненты:

* Enterprise JavaBeans (EJB): управляемая серверная архитектура компонентов, используемая для инкапсуляции бизнес-логики приложения. Технология EJB позволяет осуществлять быструю и упрощенную разработку распределенных, транзакционных, безопасных и переносимых приложений, основанных на технологии Java.
* Интерфейс API сохранения состояния Java (Java Persistence API, JPA): инфраструктура, позволяющая разработчикам управлять данными с помощью объектно-реляционного сопоставления (ORM) в приложениях, созданных на платформе Java.


== Разработка на JavaScript и Ajax

JavaScript представляет собой объектно-ориентированный язык сценариев и в основном используется в клиентских интерфейсах веб-приложений. Ajax (асинхронный JavaScript и XML) является технологией Web 2.0, позволяющей выполнять изменения веб-страницы без ее обновления. Для реализации компонентов и функций Ajax на веб-страницах можно использовать наборы инструментов JavaScript.

 

image::../../images_www/v6/trails/trails-box-tr.png[] image::../../images_www/v6/trails/trails-box-tl.png[]

== Начало работы

* link:../docs/web/quickstart-webapps.html[+Введение в разработку веб-приложений+]
* link:../docs/javaee/javaee-intro.html[+Введение в технологию Java EE +]
* link:../docs/javaee/javaee-gettingstarted.html[+Начало работы с приложениями Java EE+]
* link:../docs/web/jsf20-intro.html[+Введение в JavaServer Faces 2.x+]
* link:../docs/web/ajax-quickstart.html[+Введение в Ajax+]
image::../../images_www/v6/trails/trails-box-br.png[] image::../../images_www/v6/trails/trails-box-bl.png[]image::../../images_www/v6/trails/trails-box-tr.png[] image::../../images_www/v6/trails/trails-box-tl.png[]

== Учебные курсы и статьи

*Учебный курс по электронной коммерции в среде NetBeans*

* link:../docs/javaee/ecommerce/intro.html[+Введение+]
* link:../docs/javaee/ecommerce/design.html[+Проектирование приложения+]
* link:../docs/javaee/ecommerce/setup-dev-environ.html[+Настройка среды разработки+]
* link:../docs/javaee/ecommerce/data-model.html[+Проектирование модели данных+]
* link:../docs/javaee/ecommerce/page-views-controller.html[+Подготовка представлений страниц и сервлета контроллера+]
* link:../docs/javaee/ecommerce/connect-db.html[+Подключение приложения к базе данных+]
* link:../docs/javaee/ecommerce/entity-session.html[+Добавление классов сущностей и сеансных компонентов+]
* link:../docs/javaee/ecommerce/manage-sessions.html[+Управление сеансами+]
* link:../docs/javaee/ecommerce/transaction.html[+Интеграция транзакционной бизнес-логики+]
* link:../docs/javaee/ecommerce/language.html[+Добавление поддержки языков+]
* link:../docs/javaee/ecommerce/security.html[+Обеспечение безопасности приложений+]
* link:../docs/javaee/ecommerce/test-profile.html[+Тестирование и профилирование+]
* link:../docs/javaee/ecommerce/conclusion.html[+Заключение+]

*Внедрение контекстов и зависимостей*

* link:../docs/javaee/cdi-intro.html[+Начало работы с Contexts and Dependency Injection и JSF 2.x+]
* link:../docs/javaee/cdi-inject.html[+Работа с внедрением и квалификаторами в CDI+]
* link:../docs/javaee/cdi-validate.html[+Применение аннотации @Alternative и аннотаций жизненного цикла+]
* link:../docs/javaee/cdi-events.html[+Обработка событий в CDI+]
* link:../docs/javaee/maven-osgiservice-cdi.html[+Использование CDI для внедрения пакетов OSGi в качестве служб +]

*Разработка веб-приложений на Java*

* link:../docs/javaee/maven-websocketapi.html[+Использование WebSocket API в веб-приложении+]
* link:../docs/web/jsf-jpa-weblogic.html[+Разработка приложений уровня предприятия для Oracle WebLogic Server+]
* link:../docs/web/mysql-webapp.html[+Создание простого веб-приложения, использующего базу данных MySQL+]
* link:../docs/web/jsf20-crud.html[+Создание приложения CRUD JavaServer Faces 2.0 из базы данных+]
* link:../docs/web/applets.html[+Интеграция апплета в веб-приложение+]
* link:../docs/web/security-webapps.html[+Обеспечение безопасности веб-приложения+]
* link:../docs/java/profile-loadgenerator.html[+Использование генератора нагрузки в IDE NetBeans+]

*Поддержка облаков*

* link:../docs/web/oracle-cloud.html[+Запуск веб-приложений в Oracle Cloud+]
* link:https://blogs.oracle.com/javatraining/entry/oracle_cloud_development_with_netbeans[+Разработка Oracle Cloud с помощью NetBeans и Eclipse (OEPE)+] (блог Java Training Beat)
* Страница wiki NetBeans: link:http://wiki.netbeans.org/AmazonBeanstalkSupport[+Поддержка Amazon Beanstalk+]

*Технология EJB и сохранение состояния объектов Java*

* link:../docs/javaee/javaee-entapp-junit.html[+Использование встроенного контейнера EJB для тестирования приложений уровня предприятия+]
* link:../docs/javaee/javaee-entapp-ejb.html[+Создание приложения уровня предприятия с помощью EJB 3.1+]
* link:../docs/javaee/maven-entapp.html[+Создание приложения уровня предприятия с помощью Maven+]
* link:../docs/javaee/maven-entapp-testing.html[+Тестирование приложения Maven уровня предприятия+]
* link:../docs/javaee/entappclient.html[+Создание и выполнение клиента приложения на сервере GlassFish+]
* link:../docs/javaee/secure-ejb.html[+Создание безопасных компонентов уровня предприятия+]
* link:../docs/javaee/profiler-javaee.html[+Профилирование приложения уровня предприятия+]
* link:http://wiki.netbeans.org/WebLogicJMS[+Использование JMS WebLogic из IDE NetBeans+]

*Веб-платформы*

* link:../docs/web/jsf20-intro.html[+Введение в JavaServer Faces 2.x+]
* link:../docs/web/jsf20-support.html[+Поддержка JSF 2.x+]
* link:../docs/web/quickstart-webapps-spring.html[+Веб-модель MVC Spring+]
* 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[+Добавление поддержки веб-платформы+]

*Разработка на JavaScript и Ajax*

* link:../docs/web/ajax-quickstart.html[+Введение в Ajax+]
* link:../docs/web/js-toolkits-jquery.html[+Использование jQuery для улучшения внешнего вида веб-страницы и упрощения работы с ней+]
* link:../docs/web/js-toolkits-dojo.html[+Подключение дерева Dojo к списку ArrayList с помощью JSON+]
image::../../images_www/v6/trails/trails-box-br.png[] image::../../images_www/v6/trails/trails-box-bl.png[]image::../../images_www/v6/trails/trails-box-tr.png[] image::../../images_www/v6/trails/trails-box-tl.png[]

== Экранные демонстрации

* link:../docs/javaee/maven-primefaces-screencast.html[+Разработка PrimeFaces с помощью Maven+]
* link:../docs/javaee/javaee-gettingstarted-js-screencast.html[+Разработка клиентов JavaScript в Java EE+]
* link:../docs/javaee/javaee-gettingstarted-pf-screencast.html[+Разработка на Java EE с использованием PrimeFaces+]
* link:../docs/javaee/weblogic-javaee-m1-screencast.html[+Видео развертывания веб-приложения на сервере Oracle WebLogic+]
* link:../docs/javaee/javaee-gettingstarted-screencast.html[+Видеоролик о начале работы с приложениями для Java EE 6+]
* YouTube: link:http://www.youtube.com/watch?v=0hHkV04JPxo[+WebLogic Server 12c – пятиминутное видео о поддержке дескрипторов в GlassFish+]
* YouTube: link:https://www.youtube.com/watch?v=_PDIxHyaWy4[+Начало работы с разработкой PrimeFaces+]
* YouTube: link:http://www.youtube.com/watch?v=Uvt1byURZrw[+Разблокирование платформы Java EE6+]
* YouTube: link:http://www.youtube.com/watch?v=vaOpJJ-Xm70[+Корректное по отношению к типам внедрение динамических служб OSGi при помощи GlassFish 3.1 и CDI +]
* YouTube: link:http://www.youtube.com/watch?v=wcg2SCgTL-4[+HTML5 и веб-сокеты в Glassfish+]
* YouTube: link:http://www.youtube.com/watch?v=zdYxdx3FuX0[+Java EE 6 с использованием языков Java 7 на базе GlassFish 3.1.1+]

*Видеоролики о приложении Java EE с поддержкой OSGi, подготовленные Аруном Гупта (Arun Gupta)* (YouTube)

* YouTube: link:http://www.youtube.com/watch?v=X7GwN4XSzfU[+Вышестоящий проект POM (часть 1 из 6) +]
* YouTube: link:http://www.youtube.com/watch?v=eBdLqdvOF_8[+Интерфейс API и пакет OSGi для службы (часть 2 из 6) +]
* YouTube: link:http://www.youtube.com/watch?v=TWRt_cFDRHE[+Пакет OSGi для клиента, вызывающий службу OSGi (часть 3 из 6) +]
* YouTube: link:http://www.youtube.com/watch?v=bSX89JjQoRM[+Клиент WAB, вызывающий службу OSGi (часть 4 из 6) +]
* YouTube: link:http://www.youtube.com/watch?v=6WexZAUeFWM[+Пакет OSGi для клиента, вызывающий службу EJB (часть 5 из 6) +]
* YouTube: link:http://www.youtube.com/watch?v=IU4UMTnifhw[+Заключение и другие возможные расширения (часть 6 из 6) +]

*Учебный видеокурс по Java EE 6, представленный Аруном Гупта (Arun Gupta)* (YouTube)

* link:http://www.youtube.com/watch?v=pwBNmAhtqk8[+ JSP + сервлеты + EJB: Java EE 6 и GlassFish 3 на платформе NetBeans 6.9 (часть 1 из 5) +]
* link:http://www.youtube.com/watch?v=_D_vphsAM-Y[+ Java Persistence API 2: Java EE 6 и GlassFish 3 на платформе NetBeans 6.9 (часть 2 из 5) +]
* link:http://www.youtube.com/watch?v=-Q25P-oSUJ8[+ Facelets и JSF 2: Java EE 6 и GlassFish 3 на платформе NetBeans 6.9 (часть 3 из 5) +]
* link:http://www.youtube.com/watch?v=D1fyKOTO5rw[+ CDI и JSF 2: Java EE 6 и GlassFish 3 на платформе NetBeans 6.9 (часть 4 из 5) +]
* link:http://www.youtube.com/watch?v=qf2Jxwpbsuo[+Веб-службы RESTful и JAX-RS: Java EE 6 и GlassFish 3 на платформе NetBeans 6.9 (часть 5 из 5) +]

image:::../../images_www/v6/arrow-button.gif[role="left", link="../docs/screencasts.html"]image::../../images_www/v6/trails/trails-box-br.png[] image::../../images_www/v6/trails/trails-box-bl.png[]image::../../images_www/v6/trails/trails-box-tr.png[] image::../../images_www/v6/trails/trails-box-tl.png[]

== Примеры приложений

* link:../samples/pet-catalog.html[+Pet Catalog – пример приложения на Java EE 6+]
* link:../samples/scrum-toys.html[+Scrum Toys – полный пример приложения JSF 2.0+]
* link:../samples/jsfjpa.html[+Проверка подлинности пользователя веб-приложения при помощи Java EE+]
* link:../samples/webjpa.html[+Использование интерфейса API сохранения состояния объектов Java в автономном веб-приложении +]
* link:../samples/javaee-crud.html[+Веб-приложение CRUD на базе JSF с интерфейсом API сохранения состояния объектов Java+]
* link:../samples/javaee-stateless.html[+Учет зависимостей при работе с сеансными компонентами без сохранения состояния+]

image:::../../images_www/v6/arrow-button.gif[role="left", link="../samples/index.html"]image::../../images_www/v6/trails/trails-box-br.png[] image::../../images_www/v6/trails/trails-box-bl.png[]image::../../images_www/v6/trails/trails-box-tr.png[] image::../../images_www/v6/trails/trails-box-tl.png[]

== Документы от сообщества

* link:http://netbeans.dzone.com/nb-hierarchical-web-services[+Иерархическая разработка веб-служб с помощью IDE NetBeans+] (автор Джайсурая Венуг (Jayasurya Venug)) (дополнение к учебному курсу по электронной коммерции в NetBeans)
* link:http://blog.mueller-bruehl.de/en/tutorial-web-development/[+Учебный курс по веб-разработке (с помощью JSF)+], Майкл Мюллер (Michael Muller)
* link:http://wiki.netbeans.org/DevelopJavaEE6App[+Разработка приложения JavaEE 6 с помощью JSF2, EJB3 и JPA+]link:http://netbeans.dzone.com/articles/develop-java-ee-6-app-jsf2[+, Кристофер Лэм (Christopher Lam)+]
* link:http://wiki.netbeans.org/SecureJavaEE6App[+Обеспечение безопасности приложения JavaEE 6 с помощью функций безопасности JavaEE+], Кристофер Лэм (Christopher Lam)
* link:http://wiki.netbeans.org/CreateReverseAjaxWebAppsWithDWR[+Создание веб-приложений обратного Ajax с помощью DWR, GlassFish и среды NetBeans+], Зигфрид Болз (Siegfried Bolz)
* link:http://wiki.netbeans.org/wiki/view/MavenAndNetBeansForGlassFish[+Разработка приложений уровня предприятия для GlassFish с помощью Maven и NetBeans+], Вутер Ван Ривен (Wouter van Reeven)
* link:http://wiki.netbeans.org/SpringMVConNetBeansGlassFish[+Разработка приложения шаблона "модель-представление-контроллер" на платформе Spring с помощью GlassFish+], Арулази Дхесиасилан (Arulazi Dhesiaseelan)
* link:http://wiki.netbeans.org/MavenSpringEJBsOnGlassfish[+Разработка EJB для Glassfish при помощи Maven2 и Spring+], Кристиан Ринк (Kristian Rink)
* link:http://www.adam-bien.com/roller/abien/entry/simplest_possible_ejb_3_13[+Простейший компонент EJB 3.1/REST (JSR 311) +], Эдам Бьен (Adam Bien)
* link:http://wiki.netbeans.org/DevelopAjaxJSF2App[+Разработка приложений JSF2 с использованием Ajax в Netbeans 6.8 и PrimeFaces+], Кристофер Лэм (Christopher Lam)

image:::../../images_www/v6/arrow-button.gif[role="left", link="http://wiki.netbeans.org/CommunityDocs_Contributions"]image::../../images_www/v6/trails/trails-box-br.png[] image::../../images_www/v6/trails/trails-box-bl.png[]image::../../images_www/v6/trails/trails-box-tr.png[] image::../../images_www/v6/trails/trails-box-tl.png[]

== Другие источники

*_Разработка приложений в IDE NetBeans_ - Руководство пользователя*

* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1216[+Разработка корпоративных приложений+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1349[+Разработка с использованием Java Persistence+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1035[+Разработка веб-приложений+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1261[+Разработка с использованием корпоративных компонентов+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1649[+Работа с веб-серверами и серверами приложений+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1138[+Работа с платформами веб-приложений+]

*Часто задаваемые вопросы*

* link:http://wiki.netbeans.org/NetBeansUserFAQ#section-NetBeansUserFAQ-WebFrameworks[+Часто задаваемые вопросы по веб-структурам NetBeans+]
* link:http://wiki.netbeans.org/NetBeansUserFAQ#section-NetBeansUserFAQ-JavaEEDevelopment[+Часто задаваемые вопросы по разработке в Java EE+]

*Учебные курсы и другие документы*

* link:http://docs.oracle.com/javaee/7/tutorial/doc/[+Учебный курс по Java EE 7+]
* link:http://docs.oracle.com/javaee/6/tutorial/doc/[+Учебный курс по Java EE 6+]
* link:https://glassfish.java.net/[+Присоединяйтесь к сообществу GlassFish! +]
* link:http://www.mysql.com/why-mysql/java/[+Материалы по MySQL и Java+]
* link:https://weblogs.java.net/blog/caroljmcdonald/archive/2013/09/16/example-backbonejs-jax-rs-jpa-application[+Примеры приложений Backbone.js, JAX-RS, 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/[+ Введение в JSF 2.0 и CDI в JEE 6, Часть 1+], link:http://www.andygibson.net/blog/index.php/2009/12/22/getting-started-with-cdi-part-2-injection/[+Часть 2+]
* link:http://technology.amis.nl/blog/?p=2613[+Интеграция Seam с Maven, NetBeans и GlassFish +]
* link:http://technology.amis.nl/blog/?p=2610[+Совместное использование библиотеки "Hibernate" и компонентов "Facelet" с Maven, NetBeans и GlassFish+]

*Блоги*

* 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/[+Aquarium+]
* link:http://buttso.blogspot.com/[+Buttso Blathers+]
image::../../images_www/v6/trails/trails-box-br.png[] image::../../images_www/v6/trails/trails-box-bl.png[]
