第3章〓Jakarta EE开发环境的安装和配置
市场上主流Jakarta EE集成开发工具的类型和比较
Eclipse开发工具的安装和配置
Eclipse开发和部署Jakarta EE Web项目
Spring Tools 4 for Eclipse集成开发工具的安装和配置
Spring Tools 4 for Eclipse开发和部署Jakarta EE Web项目
IntelliJ IDEA Community Edition集成开发工具的安装和配置
IntelliJ IDEA Community Edition开发和部署Jakarta EE Web项目
3.1Jakarta EE开发工具的比较和选择
开发Java企业级应用项目,不能像传统的Java桌面应用项目,使用类似文本编辑器加上javac编译工具就可以完成编程和部署任务。Java企业级项目涉及众多技术和配置,使用简单的记事本开发是难以想象的。软件企业在开发基于Java EE或Jakarta EE的企业级项目时,都使用集成的开发工具(IDE Tools)进行项目的创建、依赖库的管理、代码的编写、部署的生成等开发任务。目前市场上有非常多的支持Jakarta EE及Java EE企业级应用项目开发的集成工具,如下IDE工具是软件开发企业普遍使用的。
1. Eclipse
Eclipse是一个优秀的平台无关的IDE开发环境,为开发Java、Java EE和Jakarta EE提供了强大的开发和调试功能。Eclipse遵循OSGi规范,其本身只是一个框架平台,但可依赖丰富的插件完成各种强大的功能。Eclipse采用SWT本地GUI库,使得运行速度较AWT和Swing有了很大提高,并提供了与操作系统一致的用户界面。
2. Spring Tools 4 for Eclipse
Spring Tools 4 for Eclipse(STS)是对Eclipse IDE的扩展,它内置了最新版的Eclipse,可以在Jakarta EE的开发、发布,以及与应用程序服务器的整合方面极大地提高工作效率,尤其是开发Spring框架的应用项目有天然优势。STS具有功能丰富的支持最新Jakarta EE规范的集成开发环境,完整支持Web开发,如HTML、CSS、JavaScript,内置支持Spring Framework、Spring Boot和Spring Cloud等,成为许多软件企业开发项目的首选工具。
3. IntelliJ IDEA
IntelliJ IDEA一度被认为是最好的Java IDE集成开发平台,其以强大的即时分析和方便的重构功能深受Java开发人员的喜爱。IntelliJ IDEA提供了一整套Java开发工具,包括: 重构、Java EE和Jakarta EE支持、Maven、JUnit,并集成了CVS、Git和GitHub等。
4. Apache NetBeans
NetBeans是由Sun公司建立的开放源代码的IDE工具,现在Sun公司的购并者Oracle公司已经把NetBeans捐献给了Apache软件基金会,其商标已变成Apache NetBeans。NetBeans是一个开放的、可扩展的开发平台,支持各种插件。除了可用于Java、Java EE、Java ME开发外,NetBeans也通过插件提供C++等应用的开发,开发人员也可以为NetBeans提供各种第三方模块以扩展NetBeans的功能。
另外,还有其他的IDE工具,但由于使用不是非常普遍,因此不再一一赘述。本章简要介绍软件开发企业使用较多的Eclipse、STS和IntelliJ IDEA 这3种工具的安装、配置,以及开发和部署Jakarta EE Web项目的步骤和注意事项。
3.2Eclipse IDE工具的安装和配置
在Java EE及最新的Jakarta EE应用开发领域,Eclipse是软件公司普遍使用的开发工具; 另外,Eclipse是开源产品,不需要付费,也没有版权限制。本节详细介绍Eclipse IDE的安装配置和项目开发。
3.2.1Eclipse IDE的下载
Eclipse官方下载页面(http://www.eclipse.org/downloads/)如图31所示。截至编写本书时,最新的Eclipse IDE版本是202312。下载页面会自动检查用户使用的平台类型,如作者使用的是Windows 10,则其自动提供Windows平台的下载链接,
图31Eclipse IDE官方下载页面
且默认是EXE文件。但是,不推荐下载EXE的可执行文件版本,推荐下载其压缩文件版本。
单击Download Packages超链接,进入压缩文件版本下载页面,如图32所示。
图32Eclipse IDE压缩文件版本下载页面
对应Java项目的开发,Eclipse IDE提供了开发普通桌面单机应用的Eclipse IDE for Java Developers版本,以及开发企业级应用(Jakarta EE应用)的Eclipse IDE for Enterprise Java and Web Developers版本,这里选择开发企业版Java应用的版本。
针对不同的操作系统,Eclipse分别提供了用于Windows、macOS和Linux平台的开发工具。如果使用Windows平台,则单击Windows x8664超链接,下载其压缩版本文件eclipsejee202312Rwin32x86_64.zip,将其保存到计算机的本地硬盘目录即可。
3.2.2Eclipse IDE的安装和启动
1. 安装Eclipse
Eclipse是典型的绿色软件,只需将下载的ZIP文件解压,不需要安装即可使用。推荐将其解压到目录D:\tools\eclipse202312。
2. 启动Eclipse
双击Eclipse解压目录下的eclipse.exe文件,即启动Eclipse。
3. 选择工作区目录
Eclipse要求在项目的开发过程中选择指定的目录作为工作区,每个工作区保存所有配置信息,包括工作区的字符编码集、JDK目录、Java编译版本、服务器类型、Maven的版本等。工作区选择界面如图33所示。
图33Eclipse IDE启动时工作区选择界面
工作区的目录名最好不要有汉字和空格,以免将来代码测试和运行时出现Bug。
4. Eclipse工作环境
启动Eclipse后,关闭其默认的Welcome标题页,即进入项目开发工作台界面,如图34所示。
图34Eclipse IDE工作台界面
Eclipse IDE工作台主要包含以下区域。
(1) 功能菜单区: 在工作台界面的最上方,提供了Eclipse所有功能选择的菜单。
(2) 便捷按钮区: 在菜单区下面是便捷按钮区,该区域提供了常用功能的按钮,避免了到菜单中选择,加快了功能选择速度。
(3) 项目显示区: 在工作台界面的左边,用于显示和管理当前工作区内的项目列表。由于现在没有项目开发,因此此时显示的是常用的项目创建选择功能,如Create a Maven project(创建Maven项目)等。
(4) 代码编写区: 在工作台界面的中间,便捷按钮下方和调试标题栏的上方。Eclipse IDE的代码编辑器与普通的文本编辑器相比,具备所支持编程语言的智能补齐功能,如编写Java代码,会自动提示对象的属性和方法,这是普通文本编辑器所不具备的,能极大加快代码的编写速度,提高项目的开发效率。目前因为没有代码打开,所以代码编写区处于未激活状态。
(5) 调试和日志区: 在工作台的右下方默认提供了Servers、Markers、Terminal等标题区,用于查看项目的运行、服务器的启动/停止和运行状态等。
虽然可以将各个工作区的位置进行重新调整,但推荐使用此默认的布局安排,尽量不要调整各自的位置。
一般情况下,可以把Outline标题页关闭,这样可以增加代码工作区的面积,有利于代码的编写和查看。关闭Outline标题页后,工作台界面变成图35所示的样式。
图35关闭Outline标题页后的工作台界面
3.2.3配置Java SE JDK环境
Eclipse IDE开发Jakarta EE应用项目,需要先配置Java SE的运行环境。在安装了Java SE后,确保使用java version指令对Java SE的运行环境进行了测试,并需要记住JDK的安装位置。
应尽可能安装Java SE JDK的最新版本,如JDK 17、JDK 19等。现在很多Java应用框架已经不支持比较老的JDK版本,如JDK 7、JDK 8等,如Spring 6.0版本就要求至少JDK 17版本才能运行。
启动Eclipse IDE后,依次选择Windows→Preferences→Java→Installed JREs,即可进入Java配置界面,如图36所示。
Eclipse IDE自身也内置了Java SE的JRE运行引擎,但是没有包含全部的JDK软件,推荐配置自己计算机上安装的JDK版本。
要配置使用自己的JDK版本,可单击Add按钮,打开图37所示的JDK版本选择界面。
选择默认选中的Standard VM即可,单击Next按钮,进入JDK安装目录选择界面,如图38所示。
选择JRE home的目录,即D:/apps/jdk17(此处需要根据自己的安装路径选择,这是作者的JDK安装路径); 默认的JRE name为jdk17,通常不需要更改此名称; 在JRE system libraries列表框中自动选择JDK 17的核心库jrtfs.jar,该库包括所有JDK 17的内置的包、接口和类的定义。
单击Finish按钮,即完成Java JDK的安装配置,IDE工具会显示刚刚配置的JDK的安装信息,包括Name和Location(安装位置)属性及其取值。
图36Java JDK配置界面
图37JDK版本选择界面
图38JDK安装目录选择界面
安装新的JDK后,需要将此JDK设置为默认的Java运行环境,即选中前面的复选框即可,如图39所示。
图39设置安装的JDK为默认的Java运行环境
选中默认的JDK后,需要单击Apply或Apply and Close按钮,以使新的JDK开始启用。
安装完JDK后,还需要配置IDE的Java编译版本,即生成哪个Java版本的代码,这里推荐使用与JDK版本相符的编译版本。依次选择Windows→Preferences→Java→Compiler,进入Java编译版本配置界面,如图310所示。
图310Java编译版本配置界面
这里选择Compiler compliance level为17即可,单击Apply或Apply and Close按钮,完成Java编译版本的配置。
通常配置的JDK版本可以支持低于其版本的Java编译,但无法编译高于其版本的代码编译,如安装配置了JDK 17,不能选择编译版本为18或19,因为JDK是向下兼容的,不能向上兼容。
3.2.4配置Jakarta EE服务器
在使用Eclipse IDE开发Jakarta EE应用项目之前,需要配置符合Jakarta EE规范的服务器,如Tomcat、WildFly、GlassFish等,以便将项目部署和运行在这些服务器上。本书主要以Apache Tomcat服务器为项目的部署服务器。
下面以配置Tomcat 10.1.17为例配置Jakarta EE服务器,此版本Tomcat是本书编写时的最新版本。
在顶部菜单中依次选择Window→Preferences→Server→Runtime Environments,进入服务器配置界面,如图311所示。
图311服务器配置界面
在此服务器配置界面,可以完成符合Jakarta EE规范的服务器的增加、修改和删除操作。因为首次选择了新的工作区,所以没有任何服务器的配置,Server runtime environments的服务器列表为空。
按如下顺序依次进行完成服务器的配置。
1. 选择服务器类型
在图311中,单击Add按钮,进入服务器类型选择界面。Eclipse支持市场上流行的各种Jakarta EE服务器,在此选择能支持的最新Apache版本Tomcat 10.1服务器,如图312所示。
2. 配置服务器的安装目录和JDK版本
选择服务器的安装目录和JDK版本,如图313所示。这里选择Tomcat 10.1.17,此处为作者计算机的安装路径D:\apps\apachetomcat10.1.17,具体位置应根据读者自己的安装目录确定。另外,还需要将服务器的运行JRE环境选择为新安装的JDK环境。
单击Finish按钮,即可完成Tomcat 10.1.17服务器的配置。
3.2.5创建Jakarta EE Web项目
Eclipse IDE内置了创建Jakarta EE Web项目的向导,使用此向导可以非常方便地创建符合Jakarta EE Web Profile规范的动态Web项目。
图312选择服务器类型和版本
图313选择服务器目录和JDK版本
在Eclipse工作台界面依次选择File→New→Dynamic Web Project,启动Jakarta EE Web项目创建向导,如图314所示。
图314选择File→New→Dynamic Web Project
当工作区中没有项目时,其左侧也有创建动态Web项目的超链接,即Create a Dynamic Web project,单击后,即可进入动态Web项目创建界面,如图315所示。
如果工作区中已经有项目,则此超链接不会出现,因此推荐使用菜单命令进行项目的创建。选择创建Dynamic Web Project,进入动态Web项目输入界面,如图316所示。
在图316中输入如下动态Web项目参数配置:
(1) Project name(项目名称): javaweb01。
(2) Project location(项目目录): 使用默认工作区目录,即选中Use default location复选框。
(3) Target runtime(项目目标运行环境,即服务器): 选择安装的Apache Tomcat 10.1。
(4) Dynamic web module version(Web规范的版本): 6.0。这是Jakarta EE 10 Web Profile规范支持的最新版本。
图315没有项目时直接创建动态Web项目的选择界面
图316创建动态Web项目输入界面
其他参数取默认值即可,单击Next按钮,进入如图317所示的动态Web项目的站点地址(Context root)和Web文档存储位置(Content directory)的配置界面。
图317Web项目站点地址和Web文档存储位置配置界面
图317中,Context root指定Web站点的访问起始路径,默认是项目名,即javaweb01。当将此项目部署到Tomcat上运行时,其访问路径是http://localhost:8080/javaweb01。
Content directory指定Web文档的存储目录,在项目的src/main/webapp目录下。注意,这里只能存储Web文档,如HTML文件(.html)、CSS(.css)、JavaScript(.js)、JSP(.jsp),以及Web应用需要的其他辅助文件,如图片、视频、纯文本文件等; 此目录不能存储Java源代码文件。
默认情况下,Generate web.xml deployment descriptor复选框是不选中的,即不生成Web应用的配置文件web.xml。这是因为新版的Java EE和Jakarta EE支持注解类配置方式,可以不用配置文件web.xml; 而旧版本只支持XML配置方式,因此必须要有web.xml文件。实际项目开发时,可以根据需要决定是否选择生成Web的配置文件。这里推荐选中此复选框,生成配置文件web.xml。即使不用该配置文件,也可以查看配置文件的结构和内容。
图318生成的Jakarta EE Web应用项目
单击Finish按钮,生成图318所示的Jakarta EE Web应用项目。
在项目javaweb01目录下,生成如下主要核心的目录。
(1) Java Resources/src/main/java: 存储Java代码的目录。
(2) Java Resources/Libraries: 项目引入的依赖库,目前有JRE和Apache Tomcat 10.1。
(3) build: 此目录存储编译后的Java类文件,即.class和依赖库文件.jar。
(4) src/main/webapp: 存储Web文档目录。
(5) src/main/webapp/METAINF: 存储项目的配置信息。此目录为受保护的目录,客户端无法请求此目录下的文件。
(6) src/main/webapp/WEBINF: 存储Web项目的配置信息和关键文件。此目录不能被客户端访问,是受保护的目录。
(7) src/main/webapp/WEBINF/web.xml: 生成的Java Web配置文件。
通常Web项目需要一个启动文件,动态Web项目推荐的文件是index.jsp。选择项目的webapp目录,右击,在弹出的快捷菜单中选择new→JSP File命令,弹出JSP文件生成向导界面,如图319所示,在File name文本框中输入JSP文件名index.jsp。
图319JSP文件生成向导界面
单击Next按钮,进入JSP文件模板选择界面,如图320所示。
图320JSP文件模板选择界面
在图320中自动选择html 5的模板语法来生成JSP页面代码。目前项目采用HTML 5的编程规范已经成为标准,因此保持默认的选择即可。使用JSP向导创建的JSP文件如图321所示。
图321使用JSP向导创建的JSP文件
默认生成的JSP的代码文本编码集都是ISO88591,但现在项目中都采用UTF8字符编码标准,因此需要手动修改JSP文件中所有的ISO88591,都改成UTF8,也可以在项目中修改JSP默认的字符编码集,即选择Window→Preferences→Web→JSP Files,打开JSP配置界面,如图322所示。
图322JSP配置界面
在Encoding下拉框中选择ISO 10646/Unicode (UTF8),则以后创建的JSP文件默认的字符编码集就是UTF8。
在JSP文件的
之间输入JSP页面要显示的内容,这里只输入了简单的显示标题文本: 欢迎使用Jakarta EE Web
。
3.2.6部署Jakarta EE Web项目
Eclipse IDE支持在不离开工作台环境下直接部署Web项目到配置的服务器上,大大缩短了程序员的开发和测试时间。3.2.5小节已经创建了动态Web项目,并创建了项目的首页index.jsp文件,下面讲解如何将此项目部署到配置的Tomcat 10.1.17服务器并使用浏览器请求该页面。
1. 部署Jakarta EE Web项目
选择项目并右击,在弹出的快捷菜单中选择Run As→1Run on Server命令,启动Web项目部署向导,如图323所示。
图323启动Web项目部署向导
2. 选择服务器并输入基本项目信息
弹出部署服务器选择界面,如图324所示。当首次执行部署任务时,选中Manually define a new server单选按钮, 在Select the server type列表框中选择配置的服务器类型,这里选择Tomcat v10.1 server。IDE工具自动根据配置的服务器确定Servers host name、Server name和Server runtime environment这3个参数值,通常不需要修改,直接取默认值即可。
图324部署服务器选择界面
单击Next按钮,进入部署项目选择界面,如图325所示。
图325部署项目选择界面
默认情况下,要部署的项目会自动出现在右侧部署区内,左侧是此工作区的所有没有选择部署的项目。当前工作区只有一个项目,因此左侧未部署项目的区域为空; 如果工作区创建多个项目,此区域就会有没有被选择部署的项目列表。Eclipse IDE支持同时部署多个项目到服务器,因此工作区内的项目名称不能相同,否则无法部署; 当然,也无法创建相同项目名称的项目。
3. 启动服务器并测试Web项目运行
单击图325中的Finish按钮,Eclipse自动启动选择的部署服务器,这里选择Tomcat 10.1.17,在工作台的Console窗口会显示Tomcat 10.1.17的启动信息,如图326所示。
图326部署服务器启动信息
图326所示的服务器的启动信息包括服务器的类型、监听HTTP请求的端口(当前显示为8080)、服务器启动时间(1522毫秒)。服务器启动后,Eclipse IDE自动启动操作系统默认的浏览器(作者计算机默认的浏览器是Google的Chrome),并自动请求Web项目的默认主页,显示请求的index.jsp的HTTP响应内容,如图327所示。
图327Eclipse IDE启动服务器并请求项目的默认主页
图327表明项目已成功部署到Tomcat 10.1.17,并开始监听客户端浏览器的请求。
3.2.7Maven的安装和配置
使用创建Dynamic Web Project方式创建Jakarta EE Web项目对于初学者学习Jakarta EE项目编程非常简洁方便,但是这种方式在开发大型企业级项目时,尤其是当项目中需要引入非常多的依赖库时,需要手动复制各种JAR文件,会导致依赖库管理混乱、版本不统一和冲突等问题。
软件企业在开发Jakarta EE企业级项目时,通常使用项目构建工具对项目的代码、依赖和编译进行管理,目前使用最多的构建工具有Maven和Gradle。本书使用Maven构建工具,对于Gradle的使用请读者参阅相关文档。
Maven是Apache软件基金会的开源项目,访问其官网(https://maven.apache.org),可以参阅Maven的文档并下载发布的最新版本。Maven官方网站主页显示如图328所示。
图328Maven官方网站主页显示
其中,Use栏目中包括Download、Install、Configure、Run Maven超链接,开发人员可以完成Maven的下载、安装、配置和运行。
1. 下载Maven
在图328中单击Download超链接,进入Maven下载页面,如图329所示。
图329Maven下载页面
从Maven下载页面可见,目前Maven的最新版本是3.9.6。其中,System Requirements中介绍了Maven 3.9.6需要的环境信息,包括JDK版本必须在8以上和硬盘容量在10MB以上,而对内存和操作系统没有最低要求,可见Maven能适应任何操作系统。
推荐下载Maven的二进制(Binary)版本。Maven提供了两种格式的压缩文件,分别为ZIP和tar.gz,对于Windows平台,推荐下载ZIP文件; 而Linux和macOS平台推荐下载tar.gz文件。
单击apachemaven3.9.6bin.zip下载超链接,将下载的文件保存到指定目录即可。
2. 安装Maven
Maven也是绿色软件产品,直接将下载的ZIP文件解压即可。在作者的计算机上将其解压到D:/apps/maven396目录下,解压后的安装目录和文件结构如图330所示。
图330Maven的安装目录和文件结构
注意,解压后的目录没有m3子目录,该目录是新创建的,用于存储Maven下载的依赖库jar的目录。读者可以自己创建任意位置的目录作为本地仓库的位置,但推荐在Maven目录下创建,这样比较容易管理; 同时,推荐使用m3目录名,使用Maven 2时用户大都习惯使用m2作为本地仓库的目录名,到Maven 3时应自然过渡到m3目录名。
3. 配置Maven
需要对安装好的Maven进行配置,以便使用创建的本地仓库目录m3。另外,Maven在下载项目需要的依赖库时,默认从国外的Maven中央仓库中读取,对于国内的开发者,其下载速度非常慢,经常由于下载超时导致Maven项目错误。为解决这一问题,阿里云在国内创建了Maven的镜像仓库,其中保存了与国外中央仓库相同的库文件,并保持同步,为此一定要配置阿里云Maven镜像仓库。
Maven的配置通过安装目录下的conf子目录中的settings.xml文件完成。使用记事本打开该文件,找到标记,如图331所示。
图331Maven本地仓库目录的配置
在settings.xml文件中增加如下配置代码,完成本地仓库存储目录的设置:
D:\apps\maven390\m3
其中,本地仓库的位置根据自己创建的目录确定,这里设置为作者前面创建的m3目录。
配置好本地仓库的位置后,下一步需要配置阿里云Maven镜像仓库。在settings.xml文件中找到标记,在其内部增加如下Maven阿里云镜像的配置代码:
nexus-aliyun
central
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
配置Maven阿里云镜像仓库后的内容如图332所示。
图332Maven阿里云镜像仓库的配置代码
配置后,保存settings.xml文件即可。
3.2.8Eclipse IDE配置Maven
安装完Maven后,Eclipse IDE需要配置Maven,以实现Maven项目的构建和管理。依次选择Window→Preferences→Maven→Installations,弹出Maven安装配置界面,如图333所示。
图333Maven安装配置界面
图333的Installations列表框中列出了IDE已经安装的Maven及其版本,可见IDE已经内置了Maven,其版本是3.9.5。如果直接使用此版本,就不需要安装Maven,直接使用即可。
由于这里安装的是Maven 3.9.5,而上节下载和安装的是3.9.6,因此需要对Maven进行配置。单击图333图中的Add按钮,弹出如图334所示的Maven安装向导界面。
图334Maven安装向导界面
选择Maven 3.9.6的安装目录,IDE自动给出Installation name,即maven396,直接使用此名称即可。如果确实需要,可以手动修改此安装名。
单击Finish按钮,IDE会自动更新Maven的安装列表,如图335所示。
图335Maven的安装列表界面
安装成功Maven后,还需要选中新安装的Maven 3.9.6,作为IDE的默认Maven。单击Apply and Close按钮,使其配置激活并启用。
完成Maven的安装后,下一步需要使用Maven的配置文件。依次选择Window→Preferences→Maven→User Settings,进入Maven配置文件选择界面,如图336所示。
图336Maven配置文件选择界面
将Global Settings和User Settings都选择为刚刚修改过的Maven配置文件D:\apps\maven396\conf\settings.xml,可以看到Local Repository(本地仓库)的目录自动更改为前面配置的本地仓库的目录。
单击Apply and Close按钮,完成Maven的配置工作。
3.2.9创建Maven Web项目
安装并配置好Maven后,就可以创建Maven Web项目。但是,由于Maven Web项目模板一直没有更新,使用的JDK版本是1.5, Web版本是2.5,因此无法创建最新版的Jakarta EE Web项目。因此,在使用Maven Web模板创建项目后,还需要对配置进行修改,使其符合最新版Jakarta EE规范的Web项目后,才能使用Jakarta EE Web规范进行企业级Web项目的开发。下面详细介绍创建Maven Web项目及修改配置的步骤。
1. 创建Maven Web项目
在Eclipse IDE中依次选择File→New→Maven Project,弹出Maven项目创建界面,如图337所示。
图337Maven项目创建界面
在此界面中选择使用默认的工作区目录(选中Use default Workspace location复选框)作为项目的目录即可,单击Next按钮,进入Maven项目的模板选择界面,如图338所示。
图338Maven项目的模板选择界面
在Catalog下拉列表中选择Internal,即内置模板库,系统会自动更新此类别下的所有Maven项目模板列表; 再选择Artifact Id为mavenarchetypewebapp 1.0,此模板用于生成Maven Web项目。单击Next按钮,进入Maven项目信息输入界面,如图339所示。
图339Maven项目信息输入界面
在此界面中输入如下信息。
(1) Group Id: 项目的公司信息,通常使用域名,如com.city、com.ibm。
(2) Artifact Id: 项目的名称,如cityoa、oaerp, 此名称作为工作区的项目名称。
(3) Version:项目的版本号,模板自动给出0.0.1SNAPSHOT。该参数可以改为1.0,也可以输入任意版本号。
(4) Package: 项目的起始包名,默认给出groupid.artifactid作为包名,如com.city.oaweb00。该参数可以使用默认值,也可以输入新的起始包名,如com.city.oa。
(5) Properties available from archetype: 不需要输入任何新的属性名。
单击Finish按钮,Eclipse IDE会使用Maven选择的模板生成Maven Web项目。
2. 修改Maven Web项目的JDK版本
由于Maven Web模板版本比较旧,生成的Maven Web项目默认使用JDK 1.8,因此首先需要将其改为现在使用的JDK 17。
选择项目并右击,在弹出的快捷菜单中选择Properties→Java Build Paths→Libraries命令,进入图340所示的项目JDK配置界面。
图340项目依赖库配置界面
选择JRE System Library[JavaSE1,8],单击Edit按钮,弹出JDK版本修改界面,如图341所示。
图341JDK版本修改界面
选择Alternate JRE复选框,并在其下拉列表中选择前面安装的jdk17,单击Finish按钮,完成JDK版本的修改。
在修改JDK版本的同时,也需要修改Java的编译版本。选择图340左侧功能区中的Java Compiler,进入Java编译版本界面,如图342所示。
图342配置Maven Web项目的Java编译版本界面
在JDK Compliance下的Compiler compliance level下拉框中选择17即可,单击Apply and Close按钮,启用并激活配置。与此同时,需要修改项目的Maven配置文件pom.xml, 增加支持编译JDK 17的插件(plugins)。打开项目根目录中的pom.xml文件,在标记下增加2个插件,如图343所示。
其中,插件mavencompilerplugin用于指定Maven编译的Java源代码和目标类的版本,这里设置为JDK 17; 插件mavenwarplugin用于Maven生成Jakarta EE Web项目的WAR部署文件。
修改Maven的配置文件pom.xml后,需要进行Maven项目的更新操作。选择项目并右击,在弹出的快捷菜单中选择Maven→Update Project命令,弹出Maven项目更新对话框,如图344所示。
选择要更新的项目,单击OK按钮即可。
图343Maven项目配置文件pom.xml增加插件
图344Maven项目更新对话框
3. 增加项目的Server依赖
新创建的Maven Web项目是没有Jakarta EE服务器依赖的,不增加服务器依赖就无法编写Web组件(如Servlet和JSP等)。增加服务器依赖与修改JDK依赖都在相同的界面操作,在此Java Build Path界面中选择Libraries标签,如图345所示,进入项目的依赖库配置窗口。
图345Java Build Path界面
在图345中,首先选择Classpath文件夹,再单击右侧的Add Library按钮,弹出Add Library窗口,如图346所示。
选择Server Runtime,单击Next按钮,进入Server Library依赖库选择界面,如图347所示。
图346Add Library窗口
图347Server Library依赖库选择界面
在图347选择配置的Apache Tomcat v10.1,单击Finish按钮,即完成项目的服务器依赖配置,配置后的Libraries在Classpath下新增了Server Runtime[Apache Tomcat v10.1],如图348所示。
图348增加服务器依赖后的Libraries
最后,单击Apply或Apply and Close按钮,启用项目中此服务器依赖。
配置完服务器依赖后,需要将Maven Web模板生成的Web配置文件web.xml内容更新为符合Jakarta EE 10 Web Profile规范的版本,这里直接将使用Dynamic Web Project创建的Web项目的web.xml内容复制并替换即可。
Maven模板默认创建的web.xml的代码如下所示:
Archetype Created Web Application
从以上代码可见,Maven默认创建的Web的版本是2.3,对应的Tomcat版本是6.0,无法支持Jakarta EE Web项目。
替换后的web.xml代码如下所示:
javaweb01
index.html
index.jsp
index.htm
default.html
default.jsp
default.htm
从代码可见,其Web Module版本是6.0,这是Jakarta EE 10 Web 规范的最新版本。
最后修改项目的配置信息,步骤如下: 选择项目并右击,在弹出的快捷菜单中选择Properties→Project Facets命令,进入项目的配置参数界面,如图349所示。
图349Maven Web项目的参数配置界面
将Dynamic Web Module的值改为6.0,将Java的版本改为17,其他属性参数不用修改,单击Apply and Close按钮,即完成参数的配置。
再次选择项目并右击,在弹出的快捷菜单中选择Maven→Update Project命令,完成项目的更新。
为测试项目的部署和运行,通常在Maven Web中创建一个主页JSP文件。选择项目中的src/main/webapp目录,右击,在弹出的快捷菜单中选择New→JSP File命令,创建Web项目的主页文件index.jsp。在index.jsp文件的和之间输入HTML代码:
欢迎使用Maven Web项目
修改后的index.jsp文件内容如图350所示。
图350修改后的index.jsp文件内容
4. 部署和运行Maven Web项目
Maven Web项目编写完成后,即可部署和运行。Eclipse IDE工具内部署和运行Maven Web项目与传统的Dynamic Web Project相同,其执行过程如下:选择项目并右击,在弹出的快捷菜单中选择Run As→Run on Server命令,进入服务器选择界面,会提示选择指定的服务器。如果已经配置了部署的服务器,则应该选中Choose an existing server单选按钮,并选择已有的Tomcat v10.1 Server at localhost,如图351所示。
选择已有的Tomcat 10.1服务器后,单击Next按钮,进入项目部署选择界面,如图352所示。
从图352可以看出,左侧的Available列表框显示的是工作区未部署的项目,右侧Configured显示的是要部署到服务器的项目。通过选择Add或Add All按钮,可以将项目增加到Configured部署区; 也可以选择Remove或Remove All按钮,将部署区的项目移动非部署区。
选择好要部署的项目,单击Finish按钮,启动Tomcat服务器,并运行部署的项目,可以从IDE工具的Servers标题区看到服务器的启动状态和部署的项目,如图353所示。
图351服务器选择界面
图352项目选择界面
图353Servers的标题区
如果Eclipse IDE没有Servers标题区,可以按照如下顺序操作显示该标题区: 依次选择Window→Show Views→Other→Server→Servers,在图354所示界面中选择Servers,单击Open按钮,即可打开监控Server运行的Servers标题区。
图354打开监控服务器运行标题区
3.3Spring Tools 4 for Eclipse的安装和配置
由于在企业级Jakarta EE应用项目开发中都使用各种框架技术,尤其是Spring框架技术,而传统的Eclipse IDE工具没有对Spring项目提供支持,因此开发者需要安装各种Spring支持插件,比较麻烦且容易出错。
Spring项目开发组为此专门开发了Spring Tools 4 for Eclipse开发工具(以下简称STS),该工具内置了最新版的Eclipse,并自动安装好需要的各种插件,极大地方便了广大开发者使用Spring框架技术,并提高了项目的开发效率,深受软件开发企业的欢迎。目前STS在软件企业中的使用已经超过了Eclipse。
3.3.1STS的下载和安装
访问STS的官方网址(https://spring.io/tools/),进入STS下载页面,可以看到不同平台的STS工具的下载超链接,如图355所示。
图355STS下载页面
针对不同的平台,选择对应的STS下载超链接即可。例如,Windows平台选择4.21.0WINDOWDS X86_64,下载的文件类型为JAR的Java类库,其文件名比较长,具体如下: springtoolsuite44.21.0.RELEASEe4.30.0win32.win32.x86_64.selfextracting.jar。
下载完成后,推荐将其改为较短的文件名,如sts4.21.0.jar。如果计算机安装JDK正确无误,Windows平台会自动将JAR文件关联到Java JRE,在文件名前显示Java虚拟机的图标,如图356所示。
图356修改文件名后的STS安装文件
选择下载的文件,直接双击即可启动Java引擎并执行该JAR文件进行解压,解压后的目录结构如图357所示。
图357解压后的STS目录结构
图358选择JAR文件的打开方式
如果Windows平台没有自动关联到JRE引擎,也可以手动选择关联,方法如下: 选择文件并右击,在弹出的快捷菜单中选择打开方式,这里选择Java(TM)Platform SE binary,如图358所示。
推荐选中“始终使用此应用打开.jar文件”复选框,如此可直接双击JAR文件运行。
如果无法找到JRE,则进入cmd命令行,导航到下载的JAR文件目录,直接输入如下命令,也可以执行解压和安装工作:
java -jar sts4.21.0.jar
需要注意的是,不要使用解压软件如360压缩、WAR工具等直接解压JAR文件,否则生成的目录与要求不符,影响工具的启用和运行。
3.3.2STS插件的安装
由于现在软件企业很少开发纯Jakarta EE Web项目,也很少直接编程Servlet和JSP,都是开发以Spring Boot为基础的REST API微服务项目,因此STS工具默认没有内置安装Java Web的插件工具,这一点与Eclipse IDE不同。但是,本书内容以Jakarta EE Web开发为主,涉及编写其Web组件代码,因此需要原有Eclipse内置的企业级Java Web开发插件,应手动安装。
Eclipse IDE提供的开发Java企业级Web应用的插件名称是Eclipse Enterprise Java and Web Developer Tools。
启动STS,选择工作区目录后(此操作与Eclipse相同),按如下操作顺序完成此插件的安装。选择Help→Eclipse Marketplace,进入Eclipse Marketplacec安装插件界面,如图359所示。
图359Eclipse Marketplace安装插件界面
在Find文本框中输入插件的名称,即Eclipse Enterprise Java and Web Developer Tools,单击Go按钮,即开始在Marketplace中查找此插件。如成功找到该插件,则会显示插件的名称和版本(编写本书时的版本是3.31,该插件会不断更新),单击Install按钮,下载和安装此插件,并弹出插件模块选择界面,如图360所示。
图360插件模块选择界面
这里不需要选择额外的模块,直接单击Confirm按钮,STS工具即开始进行插件的安装。安装插件过程中会提示是否信任所安装插件的界面,单击Select All按钮,再单击Trust Selected按钮,表示信任所有的插件,即可继续安装过程,如图361所示。
图361选择信任插件界面
进入提示重启界面,如图362所示。
图362提示重启界面
单击Restart Now按钮,重新启动STS开发工具后,需要进行与Eclipse IDE相同的配置任务,其配置方法与Eclipse IDE相同,如配置JDK、Java编译版本、部署的服务器、Maven安装、Maven配置和JSP字符编码集,这里不再赘述。STS配置完成后,即可进行Web项目的开发,编写Web组件,如Servlet和JSP等,其与Eclipse IDE都相同,这里不再赘述。
3.4IntelliJ IDEA工具的安装和配置
IntelliJ IDEA(以下简称IDEA)是JetBrains公司的旗舰产品,其是Java编程语言的集成开发环境(IDE),被业界公认为优秀的Java开发工具,尤其在智能代码助手、代码自动提示、重构、Java EE支持、版本管理工具(git、svn等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面,其功能可以说是超常的。IDEA的宗旨就是“Develop with pleasure”,全球越来越多的开发者开始选择IDEA作为其Java项目的开发工具。
IDEA在2001年1月发布1.0版本,同年7月发布2.0版本,之后基本每年发布一个版本。3.0版本之后,IDEA屡获大奖,其中又以2003年赢得的Jolt Productivity Award和JavaWorld Editors’s Choice Award为标志,奠定了IDEA在IDE中的地位。IDEA于2018年8月发布新版本18.2.2,同时将版本更改为2018.2.2,以后的版本号命名都遵循此标准。目前IDEA的最新版本Version: 2023.3.2 Build: 233.13135.103于2023年12月20日发布。
IDEA分为Ultimate Edition(旗舰版)和Community Edition(社区版)两个版本。其中旗舰版可以免费试用30天,到期需要付费使用; 社区版完全免费,从不过期,但是功能上对比旗舰版有所删减。图363展示了IDEA旗舰版和社区版的功能对比。
图363IDEA 旗舰版和社区版的功能对比
图364IDEA旗舰版购买价格
通过图363比较可见,IDEA社区版不能直接支持Jakarta EE,因此开发Spring的企业级项目时选择IDEA旗舰版。但是,不是所有人都有能力每年付费,IDEA旗舰版价格不菲,其官网给出的价格如图364所示。
从2023年开始IDEA支持人民币付费,图364所示的价格是针对企业每个用户的第1年价格; 第2年是4000元; 第3年是3000元。针对个人用户第1年是1400元; 第2年是1120元; 第3年是840元。国内的软件企业规模大的有上万开发者,小的也有几百开发者,如果使用IDEA也是一笔不小的开支。因此,国内软件公司很少使用IDEA旗舰版本进行项目开发,要么使用IDEA 社区版,要么使用开源的其他IDE工具,如STS或Eclipse IDE。
IDEA社区版虽然不直接支持Jakarta EE企业级项目开发,但是通过安装第三方插件,一般也能满足开发需要。
3.4.1IDEA的下载和安装
进入IDEA的官方网站(https://www.jetbrains.com/idea/),其主页如图365所示。
图365IDEA主页
单击Download超链接,进入IDEA下载页面,选择IDEA社区版,如图366所示。
图366IDEA社区版下载页面
IDEA下载页面自动检查客户使用的平台,生成符合平台的安装软件超链接。对应Windows平台,推荐下载EXE文件。单击.exe下载超链接,开始下载IDEA社区版的IDE软件。将下载的社区版安装软件ideaIC2023.3.2.exe保存到指定的目录,并双击启动该安装程序,如图367所示。
图367IDEA社区版安装时指定安装目录
选择指定的安装目录,单击Next按钮,进入选择关联文件和启动配置界面,如图368所示。
图368选择IDEA关联文件和启动配置界面
这里推荐选中创建桌面快捷方式 IntelliJ IDEA Community Edition复选框,其他复选框不用选中,直接单击Next按钮,安装软件便开始复制文件操作,文件复制完成后,即完成了IDEA的安装。
3.4.2IDEA的启动和配置
IDEA安装完成后,操作系统的桌面上会生成此工具的快捷启动图标,双击即可启动IDEA开发工具,如图369所示。
图369IDEA社区版的初始启动界面
与Eclipse和STS不同,IDEA启动时自动识别平台安装的JDK,前提是平台需要设置JAVA_HOME和PATH环境变量,IDEA根据这两个环境变量的值自动配置Java JDK,极大地简化了Java项目的开发。
由于IDEA社区版没有提供对Java EE或Jakarta EE的支持,因此默认情况情况下其无法创建Jakarta EE Web项目。但是,IDEA社区版提供了对Maven的支持,开发者可以使用Maven Web模板创建Maven Web项目方式实现Java EE或Jakarta EE Web项目的开发,这一点与Eclipse或STS是相同的。
为开发Maven Web项目,IDEA需要配置Maven环境。启动IDEA,在图369中选择Customize选项卡,再单击All settings超链接,如图370所示。
图370IDEA设置选择界面
进入IDEA配置界面,选择“Build, Execution, Deployment”→Build Tools→Maven,可以看到图371所示的Maven配置界面。
Maven主路径(Maven home path)选择Maven 3.9.6的安装路径,用户设置文件(User settings file)选择confi目录下的setting.xml文件,修改本地仓库(Local repository)的路径为maven396下的m3,单击Apply按钮,完成Maven的配置。
为将来测试Web项目的运行和访问,推荐配置Web浏览器和预览。在配置界面中选择Tools→Web Browsers and Preview,进入浏览器选择界面,如图372所示。
图371Maven配置界面
图372浏览器选择界面
在浏览器选择界面中,IDEA自动列出操作系统安装的浏览器类型,并默认选中。因此,通常不需要更改此设置,使用默认选中的浏览器即可。
由于IDEA社区版没有内置对Jakarta EE应用部署和运行的支持,无法直接部署和运行Jakarta EE Web项目,因此需要使用第三方插件解决这个问题。目前开发者大都使用Smart Tomcat插件,以实现IDEA中对Tomcat的配置。
在IDEA的配置界面中选择“Plugins”,进入插件管理界面,如图373所示。
图373插件管理界面
在插件搜索文本框中输入smart tomcat,IDEA会在Marketplace中搜索此插件,成功找到后显示其安装信息; 如果没有安装Smart Tomcat插件,则会显示“Install”按钮,单击此按钮,即可完成Smart Tomcat插件的安装。
安装Smart Tomcat插件后,会在配置界面最下方增加Tomcat Server配置项,如图374所示。
图374Tomcat服务器配置界面
选择此配置项,即可进入Tomcat服务器配置界面。选择Tomcat Server配置项,会出现Tomcat Server配置列表。如果没有配置过,则列表为空。单击 + 号图标,选择Tomcat安装的目录,IDEA自动显示服务器的如下信息。
(1) 服务器名称: Apache Tomcat/10.1.17。
(2) Version(版本): 10.1.17。
(3) Location(安装路径): D:/apps/apachetomcat10.1.17。
至此完成了IDEA社区版开发Jakarta EE Web应用的所有配置工作,接下来就可以创建Maven Web项目,进行Jakarta EE Web项目的开发工作。
3.4.3IDEA开发Jakarta EE Web项目
IDEA社区版不支持直接创建Jakarta EE Web项目,可以通过创建Maven Web项目的方式实现Jakarta EE项目的编程。
在IDEA启动界面中单击New Project按钮,弹出New Project对话框,如图375所示。
图375New Project对话框
选择Maven Archetype,提示输入Maven项目的如下基本信息。
(1) Name(名称): 输入项目的名称,这里输入jakartaweb01。
(2) Location(位置): 选择项目路径。
(3) JDK: 默认选择IDEA自动识别出来的JDK,这里是JDK 17。
(4) Catalog(Maven模板目录): 默认选Internal(内置模板)即可。
(5) Archetype(模板类型): 选择org.apache.maven.archetypes:mavenarchetypewebapp。
(6) Version(项目版本): 默认输入1.0。
单击Create按钮,即开始创建Maven Web项目,创建后的项目和目录结构如图376所示。
图376创建的Maven Web项目目录结构
从图376可以看到,创建的Maven Web项目没有包含编写Java代码的目录,需要开发者自己创建。在项目的src/main下手动创建java目录,创建后的目录结构如图377所示。
图377创建java目录后的目录结构
在Maven项目的依赖配置文件pom.xml中的标记下增加如下插件代码,用于指定Java编译版本和WAR打包方式:
org.apache.maven.plugins
maven-compiler-plugin
17
17
org.apache.maven.plugins
maven-war-plugin
3.4.0
编写Jakarta EE Web的组件,如Servlet、JSP、Filter、Listener等,需要引入配置的Tomcat的依赖库。在Maven的中央仓库,搜索tomcat,如图378所示。
图378Maven中央仓库搜索tomcat的显示结果
选择Tomcat Catalina,并选择与配置的Tomcat对应的版本,这里选择Tomcat10.1.17,如图379所示。
图379选择指定版本的Tomcat依赖库
单击10.1.17超链接后,显示Maven的依赖配置代码,如图380所示。
图380Tomcat 10.1.17 Maven依赖库
将Maven标签下的代码复制到项目的pom.xml文件中的标记下,则pom.xml文件中依赖库部分的显示内容如下:
junit
junit
3.8.1
test
org.apache.tomcat
tomcat-catalina
10.1.17
保存pom.xml文件,IDEA的Maven引擎自动下载指定的依赖库。
使用Maven模板创建的Web项目,其默认的Web模块版本是2.3,而开发Jakarta EE Web项目对应的Web Module版本是6.0, 因此需要将项目的Web配置文件/webapp/WEBINF/web.xml的内容修改如下:
javaweb01
index.html
index.jsp
index.htm
default.html
default.jsp
default.htm
此文件内容在Eclipse IDE开发Maven Web项目中已经介绍过,这里不再赘述。
推荐将原有webapp目录下的index.jsp文件删除,重新创建index.jsp。index.jsp文件中要包括JSP的指令代码和HTML代码,将此index.jsp的内容修改为如下代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
欢迎使用Jakarta EE Web
编写好JSP文件后,需要将此Web项目部署到Tomcat服务器,并启动Tomcat服务器,以测试项目的运行。
IDEA需要配置Tomcat服务器,在Current File配置下拉列表中选择Edit Configurations,如图381所示。
图381选择配置Edit Configurations
编辑配置界面中默认的配置项目为空白,单击+图标,在配置项目列表中选择Smart Tomcat,显示Tomcat配置界面,如图382所示。
图382Tomcat配置界面
在Tomcat配置界面中输入或选择如下信息。
(1) Name(配置名称): 这里输入Tomcat10.1.17或任意输入其他配置名称。
(2) Tomcat server(服务器): 默认显示已经配置的Apache Tomcat/10.1.17。
(3) Deployment directory(部署的目录): 默认当前项目的webapp目录,即Web站点目录,不需要修改。
(4) Context path(站点名称): 部署运行的Web应用的站点名称,默认为项目名,不需要修改。
(5) Server port(服务器端口): Web应用的服务端口号,IDEA配置默认值8080。
(6) Admin port: 后台管理站点的端口号,这里默认为8005。 如果与系统的其他服务不冲突,此默认值可不用修改。
其他选项可以不用配置,单击OK按钮,完成此配置,在“配置”下拉列表内会显示刚刚配置好的名称,如图383所示。
图383配置名称显示
在配置项目的右边出现“运行”按钮,单击此按钮,会启动Tomcat服务器,并部署开发的Maven Web项目。Tomcat服务器启动完成后,会在控制台窗口显示图384所示的启动日志信息。
图384启动Maven Web的日志信息
在日志的最后,给出了Web项目的访问地址,即http://localhost:8080/jakartaweb2024。启动浏览器,如Google的Chrome,访问该地址,会显示Web站点的主页(index.jsp)内容,如图385所示。
图385浏览器访问部署的Web站点默认主页内容
现在Jakarta EE的Web组件之一JSP可以正常工作,下面再增加一个Web组件Servlet。在src/main/java目录下创建包com.city.oa.servlet,在此包下创建Servlet类: Test01,IDEA的工作台显示如图386所示。
图386增加Servlet组件的显示结果
Servlet Test01的Java代码如程序31所示。
程序31Test01Java测试Servlet的Java代码。
package com.city.oa.servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/test001")
public class Test001 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
PrintWriter out=response.getWriter();
out.println("测试Servlet
");
out.flush();
out.close();
}
}
Jakarta EE Servlet与传统的Java EE的代码基本相同,不同的是所有Servlet API的接口和类的包名都以jakarta开头,而不再以javax开头; 传统的Java EE Web的请求对象类型是javax.servlet.http.HttpServletRequest,而现在Jakarta EE Web的请求对象类型是 jakarta.servlet.http.HttpServletRequest,这一点之前使用Java EE的开发者尤其需要注意。
编写好Servlet后,重新启动Tomcat服务器,在浏览器的地址栏中输入此Servlet的请求地址(http://localhost:8080/jakartaeeweb01/test01),Tomcat会运行此Servlet,显示图387所示的响应内容。
图387IDEA启动Tomcat并运行Servlet的响应结果
至此,可以使用IDEA社区版进行Jakarta EE Web项目的编程和部署,不必再付费购买IDEA旗舰版。
简答题
1. 市场上流行的Jakarta EE服务器产品主要有哪些?请比较它们各自的优缺点。
2. 主流的Jakarta EE应用开发工具有哪些?