此篇为《Java EE应用开发》中文版系列教程开发第一篇。英文版本请点击查看。此系列教程将从开发一个简单的笔记应用开始,使用最简单的Java EE技术,然后会继续添加高级内容,如JPA,CDI,Web Service,JMS等。另外服务端编写完之后,还会开发移动端和其他前端实现技术。
引言
首先简单介绍一下Java EE。Java EE全称Java Enterprise Edition. 相比较于Java SE来说,Java EE是为了帮助开发人员开发大规模、多层级、可伸缩、可靠并且安全的网络应用。一个典型的Java EE包含三层,客户层,业务/服务层和资源/数据层。
Java EE需要运行在容器中,容器实现了Java EE的API。举个例子,显卡厂商(如Nvidia)负责定制显卡技术规格,而生产则交给各厂商来实现,并可以有自己的品牌。这些显卡都有统一的接口,可以插在PCI-E插槽中。这些可同样适用于软件行业。Java EE是一套规范,而容器如Glassfish, Wildfly, Weblogic, Websphere都是规范的具体实现,提供一个运行Java EE应用的运行环境。本教程采用Wildfly作为容器,相对稳定简单。
第一个Java EE应用
所需工具
Eclipse
运行Eclipse需要Java运行环境,这里假设大家已安装好JDK,未安装的请参考Oracle公司官网。
到http://www.eclipse.org/downloads/eclipse-packages/下载Eclipse IDE for Java EE developers,并解压。

Wildfly
从http://wildfly.org/downloads/下载,在写本教程时版本为10.1.0 final, 选择Java EE7 Full & Web Distribution版本。下载完成后解压缩。

配置 Eclipse
选择下方Servers选项卡, 点击: No servers are available. Click this link to create a new server…

在Red Hat JBoss Middleware下选择JBoss AS, WildFly & EAP Server Tools 来下载JBoss Server适配器。

同意协议,点击Finish.

如果收到此提示:

点击OK然后会提示重启Eclipse,点击OK重启

重启后,重复之前的添加server步骤,这次选择Wildfly 10.x。然后点击Next.

在Create a new Server Adapter页面,保持默认点Next.

创建JBoss Runtime,Home directory选择Wildfly解压的目录。

创建JSF项目
项目源代码(注意:此代码已被更新版本的代码覆盖):https://github.com/zxuqian/Learning-Java-EE-2016/tree/create-jsf-project
此项目使用Maven作为管理和编译工具。
首先创建一个dynamic web project,稍后会转换为Maven项目。在Project Explorer, 右击,选择New, 然后在子菜单中选择Dynamic Web Project。

指定项目名字,这里为“notebook”. 在New Dynamic Web Project 对话框中, 点击Configuration旁边的Modify… 按钮。

勾选JavaServer Faces 来启用JSF功能。点击OK关闭对话框,并点击Next.

勾选Generate web.xml deployment descriptor,稍后会在里边配置JSF Servlet点击Finish.

转换为Maven项目。右击项目,选择Configure -> Convert to Maven Project。

填写group id,一般为域名形式。Artifact id一般为项目名称。这两个名称组合可以在Maven仓库中唯一标识此项目。点击Finish。

项目会自动转换为Maven项目,并生成pom.xml文件,用来配置Maven。
pom.xml文件如下图所示:

Web.xml文件如下图所示。现在不必知道具体配置项目,以后的教程中会逐渐提到。

标签可以定义默认首页,这里定义为index.xhtml,即如果url只输入到根路径,则默认打开index.xhtml页面。
标签定义了JSF中心Servlet,任何url以.xhtml都会跳到JSF相关页面去。

创建第一个页面。在WebContent目录创建一个HTML文件命名为index.xhtml, 点击Next.

选择New XHTML (1.0 transitional) 模板,此为Java EE官方推荐,有着更严格的HTML语法,比如标签必须成对出现。最后点击完成。

在此页面中,引用了两个命名空间: http://xmlns.jcp.org/jsf/html and http://xmlns.jcp.org/jsf/core, 前者为JSF-HTML 标签库后者是JSF核心功能标签库。在今天这个项目中,只使用JSF-HTML标签库,几乎和HTML标签一致。但是可以被JSF组件利用。下图定义了一个示例标签:

到此JSF项目创建完成。虽然是一个很简单的项目,但是从中可以了解Java EE开发的一些基本流程和概念。
现在运行项目看最终结果。右击项目,选择Run As->Maveninstall,maven会自动下载依赖的库和包,并且把项目打包成war包。

编译成功之后,右击项目,选择Run As-> Run on Server。

选择Wildfly 10.x做为服务器。

服务器启动成功后,打开浏览器,输入http://localhost:8080/notebook或http://localhost:8080/notebook/index.xhtml。因为index.xthml定义在了welcome-file标签中,所以可以不用手动输入。
最终结果

总结
现在你学到了Java EE一些基本概念,并创建了一个非常简单的JSF项目。在以后的项目中,将具体关注编写代码实现相关功能。
网友评论