// 
//     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 页。它通常由 Web 组件组成（如 JavaServer Pages (JSP)、servlet 和 JavaBeans），可用来修改和临时存储数据、与数据库和 Web 服务交互，以及根据客户端的请求呈现内容。

由于 Web 应用程序开发中涉及的很多任务都可以重复或需要多余的模板代码，因此可以应用 Web 框架来减少与常见活动相关联的开销。例如，很多框架（如 JavaServer Faces）为模板页面和会话管理提供了库，并经常提高代码的重用率。

=== *什么是 Java EE？*

Java EE (Enterprise Edition) 是一种广泛使用的平台，包含了一组协调技术，可显著降低成本以及开发、部署和管理以服务器为中心的多层应用程序的复杂性。Java EE 是基于 Java SE 平台构建的，并提供了一组用于开发和运行可移植、强健、可伸缩、可靠和安全的服务器端应用程序的 API（应用程序编程接口）。

Java EE 的一些基本组件包括：

* Enterprise JavaBeans (EJB)：一种用于封装应用程序业务逻辑的托管的、服务器端组件体系结构。EJB 技术加速并简化开发基于 Java 技术的分布式、事务性、安全和便携的应用程序。
* Java 持久性 API (JPA)：一种使开发者能够在基于 Java 平台构建的应用程序中使用对象关系映射 (ORM) 来管理数据的框架。


=== JavaScript 和 Ajax 开发

JavaScript 是面向对象的脚本语言，主要用在 Web 应用程序的客户端接口中。Ajax（异步 JavaScript 和 XML）是一种 Web 2.0 技术，能使 Web 页发生变化而无需执行页面刷新。JavaScript 工具包可用于在 Web 页中实现支持 Ajax 的组件和功能。

== 入门指南

* 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 电子商务教程

* 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[+准备页面视图和控制器 Servlet+]
* 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[+使用 CDI 将 OSGi 包作为服务注入+]

=== 开发 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 持久性

* 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[+将 Web 应用程序部署到 Oracle WebLogic Server 的视频+]
* link:../docs/javaee/javaee-gettingstarted-screencast.html[+Java EE 6 应用程序入门指南的视频+]
* YouTube：link:http://www.youtube.com/watch?v=0hHkV04JPxo[+WebLogic Server 12c - 5 分钟演示 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[+Glassfish 中的 HTML5 和 Web 套接字+]
* YouTube：link:http://www.youtube.com/watch?v=zdYxdx3FuX0[+Java EE 6 可发挥 Java 7 和 GlassFish 3.1.1 的作用+]

=== 启用 OSGi 的 Java EE 应用程序（作者：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[+涉及 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 部分）+]

=== Java EE 6 视频教程（作者：Arun Gupta）(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 持久性 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 的 REST 风格的 Web 服务：使用 NetBeans 6.9 的 Java EE 6 和 GlassFish 3（第 5 部分，共 5 部分）+]

== 社区提供的文档

* link:http://netbeans.dzone.com/nb-hierarchical-web-services[+NetBeans IDE 中的分层 Web 服务开发+]，作者：Jayasurya Venug（NetBeans 电子商务教程的续本）
* link:http://blog.mueller-bruehl.de/en/tutorial-web-development/[+教程：使用 JSF 的 Web 开发+]（作者：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 Security 确保 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 持久性进行开发+]
* 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 应用程序框架+]

=== 常见问题解答

* link:http://wiki.netbeans.org/NetBeansUserFAQ#section-NetBeansUserFAQ-WebFrameworks[+NetBeans Web Framework 常见问题解答+]
* 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/[+JEE 6 中的 JSF 2.0 和 CDI 入门指南，第 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[+使用 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/[+The Aquarium+]
* link:http://buttso.blogspot.com/[+The Buttso Blathers+]

