// 
//     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 Webの学習
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Java EEおよびJava Webの学習 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Java EEおよびJava Webの学習


== Java Webアプリケーションとは

Java Webアプリケーションは、様々なタイプのマークアップ言語(HTML、XMLなど)や動的コンテンツを含む、対話式のWebページを生成します。通常、JavaServer Pages (JSP)、サーブレット、およびJavaBeansなどのWebコンポーネントで構成され、データの変更と一時保存、データベースやWebサービスとの対話、クライアント・リクエストに応じたコンテンツのレンダリングを行います。

Webアプリケーションの開発に伴うタスクの多くは反復的であったり、過剰な定型コードが必要であったりすることがあるため、Webフレームワークを適用して、一般的なアクティビティに関連するオーバーヘッドを軽減することができます。たとえば、JavaServer Facesなどのフレームワークの多くは、ページをテンプレート化するためのライブラリやセッション管理を提供し、コードの再利用を促進します。


=== *Java EEとは*

Java EE (Enterprise Edition)は、サーバー中心の複数層アプリケーションの開発、デプロイおよび管理にかかるコストと複雑さを大幅に削減する組織的なテクノロジのセットを含み、広く使用されているプラットフォームです。Java EEはJava SEプラットフォーム上にビルドされ、移植可能、堅牢、スケーラブル、信頼性、およびセキュリティに優れたサーバー側アプリケーションを開発および実行するための一連のAPI (application programming interfaces)を提供します。

Java EEの基本的なコンポーネントには、次のものが含まれます。

* Enterprise JavaBeans (EJB): アプリケーションのビジネス・ロジックをカプセル化するために使用される、管理対象のサーバー側コンポーネント・アーキテクチャです。EJBテクノロジによって、Javaテクノロジに基づいた、分散、トランザクション、セキュリティ保護され、移植可能なアプリケーションの開発を、すばやく簡単に行うことができます。
* Java Persistence API (JPA): 管理者が、プラットフォーム上にビルドされたアプリケーションでオブジェクト・リレーショナル・マッピング(ORM)を使用して、データを管理するためのフレームワークです。


=== JavaScriptとAjaxの開発

JavaScriptはオブジェクト指向のスクリプト言語で、主にWebアプリケーションのクライアント側インタフェースで使用されます。Ajax (Asynchronous JavaScript and XML)はWeb 2.0のテクニックで、ページをリフレッシュせずに、Webページを変更できます。JavaScriptのツールキットは、Ajax対応のコンポーネントや機能をWebページに実装するために利用できます。

== 開始

* link:../docs/web/quickstart-webapps.html[+Webアプリケーション開発入門+]
* 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入門+]

== チュートリアルおよび記事

=== NetBeans Eコマースのチュートリアル

* 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[+エンティティ・クラスおよびセッションBeanの追加+]
* 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[+コンテキストと依存性の注入およびJSF 2.xの開始+]
* link:../docs/javaee/cdi-inject.html[+CDIの注入および修飾子の操作+]
* link:../docs/javaee/cdi-validate.html[+@Alternative Beanおよびライフサイクル注釈の適用+]
* link:../docs/javaee/cdi-events.html[+CDIのイベントの操作+]
* link:../docs/javaee/maven-osgiservice-cdi.html[+OSGiバンドルをサービスとして注入するためのCDIの使用+]

=== Java Webアプリケーションの開発

* link:../docs/javaee/maven-websocketapi.html[+WebアプリケーションでのWebSocket APIの使用+]
* link:../docs/web/jsf-jpa-weblogic.html[+Oracle WebLogic Serverのためのエンタープライズ・アプリケーションの開発+]
* link:../docs/web/mysql-webapp.html[+MySQLデータベースを使用した単純なWebアプリケーションの作成+]
* link:../docs/web/jsf20-crud.html[+データベースからのJavaServer Faces 2.0 CRUDアプリケーションの生成+]
* link:../docs/web/applets.html[+Webアプリケーションでのアプレットの統合+]
* link:../docs/web/security-webapps.html[+Webアプリケーションのセキュリティ保護+]
* link:../docs/java/profile-loadgenerator.html[+NetBeans IDEでの負荷ジェネレータの使用+]

=== クラウドのサポート

* link:../docs/web/oracle-cloud.html[+Oracle CloudでのWebアプリケーションの実行+]
* link:https://blogs.oracle.com/javatraining/entry/oracle_cloud_development_with_netbeans[+NetBeansおよびEclipse (OEPE)を使用したOracle Cloud開発+] (Java Training Beatブログ)
* NetBeans Wiki: link:http://wiki.netbeans.org/AmazonBeanstalkSupport[+Amazon Beanstalkのサポート+]

=== EJBテクノロジとJava Persistence

* 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 Server上でのアプリケーション・クライアントの作成と実行+]
* link:../docs/javaee/secure-ejb.html[+セキュリティ保護されたエンタープライズBeanのビルド+]
* link:../docs/javaee/profiler-javaee.html[+エンタープライズ・アプリケーションのプロファイリング+]
* link:http://wiki.netbeans.org/WebLogicJMS[+NetBeans IDEからのWebLogic JMSの使用+]

=== Webフレームワーク

* 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[+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[+Webフレームワークのサポートの追加+]

=== JavaScriptとAjaxの開発

* link:../docs/web/ajax-quickstart.html[+Ajax入門+]
* link:../docs/web/js-toolkits-jquery.html[+jQueryを使用した、Webページの見た目と使いやすさの向上+]
* link:../docs/web/js-toolkits-dojo.html[+JSONを使用したDojoツリーのArrayListへの接続+]

== スクリーンキャスト

* link:../docs/javaee/maven-primefaces-screencast.html[+Mavenを使用したPrimeFaces開発+]
* link:../docs/javaee/javaee-gettingstarted-js-screencast.html[+Java EEでのJavaScriptクライアント開発+]
* link:../docs/javaee/javaee-gettingstarted-pf-screencast.html[+PrimeFacesを使用したJava EEの開発+]
* link:../docs/javaee/weblogic-javaee-m1-screencast.html[+Oracle WebLogic ServerへのWebアプリケーションのデプロイのビデオ+]
* link:../docs/javaee/javaee-gettingstarted-screencast.html[+Java EE 6アプリケーションの開始のビデオ+]
* YouTube: link:http://www.youtube.com/watch?v=0hHkV04JPxo[+WebLogic Server 12c - GlassFishディスクリプタのサポートの5分間デモ+]
* 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[+GlassFish 3.1およびCDIを使用したOSGi動的サービスのタイプセーフ注入+]
* YouTube: link:http://www.youtube.com/watch?v=wcg2SCgTL-4[+GlassfishでのHTML5およびWebソケット+]
* YouTube: link:http://www.youtube.com/watch?v=zdYxdx3FuX0[+GlassFish 3.1.1を使用したJava EE 6のJava 7への対応+]

=== Arun Gupta氏によるOSGi対応のJava EEアプリケーション (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[+OSGiサービスを呼び出すWABクライアント(パート4/6) +]
* YouTube: link:http://www.youtube.com/watch?v=6WexZAUeFWM[+EJBサービスを呼び出すクライアントOSGiバンドル(パート5/6) +]
* YouTube: link:http://www.youtube.com/watch?v=IU4UMTnifhw[+結論および他の可能な拡張(パート6/6) +]

=== Arun Gupta氏によるJava EE 6ビデオ・チュートリアル (YouTube)

* link:http://www.youtube.com/watch?v=pwBNmAhtqk8[+ JSP+Servlet+EJB: NetBeans 6.9を使用したJava EE 6およびGlassFish 3 (パート1/5) +]
* link:http://www.youtube.com/watch?v=_D_vphsAM-Y[+ Java Persistence API 2: NetBeans 6.9を使用したJava EE 6およびGlassFish 3 (パート2/5) +]
* link:http://www.youtube.com/watch?v=-Q25P-oSUJ8[+ FaceletsおよびJSF 2: NetBeans 6.9を使用したJava EE 6およびGlassFish 3 (パート3/5) +]
* link:http://www.youtube.com/watch?v=D1fyKOTO5rw[+ CDIとJSF 2: NetBeans 6.9を使用したJava EE 6およびGlassFish 3 (パート4/5) +]
* link:http://www.youtube.com/watch?v=qf2Jxwpbsuo[+JAX-RSを使用したRESTful Webサービス: NetBeans 6.9を使用したJava EE 6およびGlassFish 3 (パート5/5) +]

== サンプル・アプリケーション

* 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を使用したユーザー認証Webアプリケーション+]
* link:../samples/webjpa.html[+スタンドアロンWebアプリケーションでのJava Persistence APIの使用+]
* link:../samples/javaee-crud.html[+Java Persistence APIを使用したJSF CRUD Webアプリケーション+]
* link:../samples/javaee-stateless.html[+ステートレス・セッションBeansを使用した依存性注入+]

== コミュニティの寄稿ドキュメント

* link:http://netbeans.dzone.com/nb-hierarchical-web-services[+NetBeans IDEを使用した階層的なWebサービス開発+]、Jayasurya Venug著(NetBeans Eコマースのチュートリアルの拡張)
* link:http://blog.mueller-bruehl.de/en/tutorial-web-development/[+チュートリアルWeb開発(JSFを使用)+]、Michael Muller著
* link:http://wiki.netbeans.org/DevelopJavaEE6App[+JSF2、EJB3およびJPAを使用したJavaEE 6アプリケーションの開発+](link:http://netbeans.dzone.com/articles/develop-java-ee-6-app-jsf2[+Dzone+]にもあり)、Christopher Lam著
* link:http://wiki.netbeans.org/SecureJavaEE6App[+JavaEEセキュリティを使用したJavaEE 6アプリケーションのセキュリティ強化+]、Christopher Lam著
* link:http://wiki.netbeans.org/CreateReverseAjaxWebAppsWithDWR[+DWR、GlassFish、およびNetBeansを使用したリバースAjax Webアプリケーションの作成+]、Siegfried Bolz著
* link:http://wiki.netbeans.org/wiki/view/MavenAndNetBeansForGlassFish[+MavenとNetBeansを使用したGlassFish用のエンタープライズ・アプリケーションの開発+]、Wouter van Reeven著
* link:http://wiki.netbeans.org/SpringMVConNetBeansGlassFish[+GlassFishを使用したSpring Framework MVCアプリケーションの開発+]、Arulazi Dhesiaseelan著
* link:http://wiki.netbeans.org/MavenSpringEJBsOnGlassfish[+Maven2とSpringを使用したGlassFish用のEJBの開発+]、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[+NetBeans 6.8でのPrimeFacesを使用したAjaxベースのJSF2アプリケーションの開発+]、Christopher Lam著

== その他のリソース

=== _NetBeans IDEによるアプリケーションの開発_ユーザーズ・ガイド

* 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[+Webアプリケーションの開発+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1261[+エンタープライズBeanの開発+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1649[+Webおよびアプリケーション・サーバーの使用+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG1138[+Webアプリケーション・フレームワークの使用+]

=== FAQ

* link:http://wiki.netbeans.org/NetBeansUserFAQ#section-NetBeansUserFAQ-WebFrameworks[+NetBeans Web FrameworkのFAQ+]
* link:http://wiki.netbeans.org/NetBeansUserFAQ#section-NetBeansUserFAQ-JavaEEDevelopment[+Java EE開発のFAQ+]

=== チュートリアルおよびその他のドキュメント

* 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/[+GlassFishコミュニティに参加する+]
* 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[+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/[+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[+Maven、NetBeansおよびGlassFishを使用したSeamの統合+]
* link:http://technology.amis.nl/blog/?p=2610[+Maven、NetBeansおよびGlassFishを使用したHibernateとFaceletsの結合+]

=== ブログ

* 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/[+The Buttso Blathers+]

