前言 基于Java语言的企业级应用开发平台Java EE经过众多知名公司的使用和改进,已经成为主流的企业级应用开发核心技术之一,在当今的企业级应用软件开发中占据重要的地位。从Java EE 9开始,Oracle公司将Java EE的控制权移交给了开源组织Eclipse,Java EE由此更名为Jakarta EE。Jakarta EE是未来基于Java的企业级应用开发的标准和趋势,所有Java EE开发人员都应该尽快转换到Jakarta EE的应用开发,适应并熟悉其新的规范、新的语法和编程特点。 Java EE借助Java语言的平台无关性和面向对象的特点,扩大了Java语言在企业级应用开发中的应用范围,打造了全新规范化的应用开发标准,提高了企业级应用的开发效率。Jakarta EE全面继承了Java EE的所有特性,随着新版本的发布,新的规范增加,已逐步适应未来Cloud Native的面向云应用开发的需求。开发基于云服务的企业级应用项目,Jakarta EE及其相关的框架技术(如Spring Boot、Spring Cloud、Spring Integration、Spring Cloud Data Flow)将是软件开发人员的最佳选择。 经过十几年的发展和改进,已经有大量企业使用Java EE开发企业级软件应用系统,今后这些企业必将使用全新的Jakarta EE技术对现有项目进行升级和改造,同时新的项目开发将会直接使用Jakarta EE,未来需要大量精通Jakarta EE的技术人才。 本书是作者在近20年开发基于Java EE的企业级应用的丰富经验基础上,结合多年来讲授Java EE课程的经验和体会,通过深入研究与学习最新的Jakarta EE的各种规范,对符合Jakarta EE规范的应用服务器进行全面而深入的实践的情况下精炼而成。本书丰富了图书市场上有关Jakarta EE的书籍的种类,能帮助广大Jakarta EE的初学者在尽可能短的时间内,学好并运用最新的企业级Java平台技术Jakarta EE,在今后的职业生涯中实现理想的人生价值。 本书的特点 1. 循序渐进,深入浅出,通俗易懂 本书在讲解Jakarta EE中的各个组成部分时,从基础开始,结合读者的体验,进行各种技术的讲解,便于读者理解。本书在介绍新的技术和概念时,避免使用生涩难懂的技术词汇,而是使用通俗易懂的语言,便于读者接受和理解。 2. 案例丰富,面向实际,案例驱动 实际应用是对技术最好的理解方式。本书在介绍Jakarta EE的各种规范和技术时,都使用具体的编程案例来形象地展示该技术的组成、功能和方法。这些案例都经过了实际测试和应用,便于读者上手并在自己的项目中加以灵活应用。 3. 重点突出,内容翔实,易于理解 由于Jakarta EE涉及的技术和概念过于繁杂,因此本书精心挑选了实际项目开发中经常使用的技术和服务加以详细讲解,并附以详尽的编程案例加以说明,旨在加强读者的印象和使用经验,对不经常使用的技术附带而过,没有浪费过多的篇幅。 4. 案例典型,实现完整,配置详细 书中的案例全部精选于软件开发企业的实际应用项目,包括各种OA、CRM、ERP和物流信息企业级应用的实际代码,帮助读者积累实际业务经验和知识,尤其对在校大中专学生,能拓展他们的认知领域(而不是局限在学生管理、图书管理等狭窄的范围之内),帮助他们尽早地适应未来就业的需要。 本书的内容 第1章讲解Jakarta EE框架的体系结构,以及每个组成部分的职责和功能,包括Jakarta EE的容器、组件、服务、通信协议和角色的规范。 第2章介绍目前市场上流行的符合Jakarta EE规范的应用服务器,包括主流服务器的功能简介、下载、安装、配置及简单的Jakarta EE Web应用项目的部署。 第3章介绍目前市场上主流的开发Jakarta EE项目的集成开发环境(Integrated Development Environment,IDE)软件,包括主流开发工具的下载、安装、配置和使用。 第4章详细介绍Jakarta EE核心Web组件Servlet的编程、配置、部署和应用。 第5章全面详尽地介绍Jakarta EE的Web请求处理编程,包括Web请求时发送的内容、Servlet API的请求对象的类型、生命周期、请求对象的取得及其功能方法,以及取得客户提交的请求数据的编程实现和实际应用。 第6章介绍Jakarta EE处理Web响应编程,包括响应对象的类型、生命周期、响应对象的功能和方法、响应对象生成不同类型响应内容的编程实现和实际应用。 第7章介绍Jakarta EE Web应用开发中的会话跟踪编程技术、各种会话跟踪技术的特点和限制,重点介绍了Jakarta EE内置的Session对象的编程和使用。 第8章介绍Jakarta EE中Web的配置内容和语法、ServletContext对象的功能和方法,以及ServletConfig对象的主要功能和使用; 另外,讲解Java Web中转发的概念、转发的实现、转发和重定向的区别,以及实际应用项目中的使用场合。 第9章介绍Jakarta EE中过滤器的概念、功能,过滤器的编程、配置和实际应用,重点介绍了几种较常用的应用案例,如登录拦截、IP拦截等。 第10章介绍Jakarta EE监听器的概念、功能、API组成,分别介绍了不同类型的Jakarta EE监听器的编程、配置和实际应用案例。 第11章介绍Jakarta EE中负责页面显示的组件技术JSP,包括JSP的概念、组成、每个组成部分的语法和使用,结合实际项目开发说明JSP各组成部分的应用。 第12章介绍建立在Jakarta EE JSP基础之上的扩展技术EL表达式、JSTL核心标记,不同EL表达式的语法和使用、不同类型JSTL标记的语法和使用。 第13章介绍Jakarta EE JNDI服务的基本知识、命名服务和目录服务的类型和特点,以及JNDI连接命名服务系统的编程实现和实际案例应用。 第14章讲解Jakarta EE中JDBC服务的框架结构、JDBC驱动的类型、连接不同主流数据库产品的配置和参数、JDBC中主要接口和类的功能及编程应用。 第15章介绍Jakarta EE中发送和接收Mail的子框架JavaMail,全面讲解JavaMail API的主要接口和类的功能和编程,并讲解发送Mail的编程和实际应用。 第16章介绍Jakarta EE在企业级应用开发中的MVC设计模式和5层架构的分层设计,详细讲解Model层、DAO层、Service层、View层和Controller层的职责和功能,以及每层组件的设计和命名规范。最后,通过实际案例展示Jakarta EE的全面应用。 第17章讲解REST API服务的概念、功能和组成,详细讲解使用Jakarta EE编写REST API微服务,并介绍使用REST API测试工具Postman实现对REST API服务的调用测试。 适合读者 (1) Jakarta EE的初学者。 (2) Jakarta EE企业级应用开发人员。 (3) 大中专院校软件工程相关专业的教师和学生。 预备知识 (1) Java编程语言。 (2) 网页编程语言HTML、JavaScript、CSS和DOM。 (3) 数据库基础知识、SQL、SQL Server或Oralce或MySQL。 致谢 编者在撰写本书过程中得到了大连理工大学城市学院软件工程专业全体教师的帮助和支持,全部的案例代码由大连英科时代发展有限公司系统集成部员工审核和全面测试。本书的撰写得到了清华大学出版社贾斌老师的倾力协助; 审稿老师对全书进行细致的审阅,其一丝不苟的精神令人敬佩,在此一并表示衷心的感谢。由于编者水平有限,书中难免有疏漏和不妥之处,欢迎广大读者批评指正。 编者2024年5月