Java EE 7权威指南:卷2(原书第5版)

Java EE 7权威指南:卷2(原书第5版) pdf epub mobi txt 电子书 下载 2025

埃里克·珍兆科(Eric Jendrock),里卡多·塞维拉 - 纳瓦罗(Ricardo Cervera-Navarro),伊恩·埃文斯(Ian Evans),金姆·哈泽(Kim Haase),威廉·马基特(William Markito) 著,苏金国,江健 等 译
图书标签:
  • Java EE
  • Java
  • 企业级开发
  • J2EE
  • Servlet
  • JSP
  • EJB
  • Web Services
  • RESTful
  • 持久化
  • 事务管理
想要找书就要到 新城书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 机械工业出版社
ISBN:9787111497110
版次:1
商品编码:11693896
品牌:机工出版
包装:平装
丛书名: Java核心技术系列
开本:16开
出版时间:2015-05-01
用纸:胶版纸
页数:469

具体描述

产品特色


编辑推荐

  Oracle Java EE 7文档团队成员精准解说Java EE 7平台,为深入理解Java EE 7企业应用开发提供翔实指导;
  更简洁明确的概念介绍,更具体完整的应用示例,全面解读Java EE 7平台特性,手把手教你运行和测试示例,帮助你真正掌握Java EE 技术,成为Java EE企业应用开发的高手。

内容简介

  伴随着Java EE的发展脚步,从2001年《The J2EE Tutorial》第1版问世,到本书与大家见面,已走过了十余年的演进历程,其间多次改版,一直热销不衰。
  《Java EE 7专业指南·卷2(原书第5版)》分为七部分,共30章。第一部分(第1~2章)介绍Java EE企业应用开发的相关概念和技术,以及安装、构建和支持本书示例需要了解的所有知识;第二部分(第3~7章)研究企业JavaBeans组件,从EJB入门开始,介绍如何开发、部署和运行Java EE应用示例,如何使用嵌入式企业bean容器在Java SE环境中而不是Java EE服务器中运行,如何在会话bean中实现异步业务方法,以及如何从企业bean客户端调用这些方法;第三部分(第8~15章)讲解Java持久化API,包括Java持久化API简介、如何使用Java 持久化示例、Java持久化查询语言、使用Criteria API创建查询、创建和使用基于字符串的Criteria查询、使用锁定控制对实体数据的并发访问、用实体图创建获取计划、对Java持久化API应用使用二级缓存等内容;第四部分(第16~17章)介绍消息传送,包括Java消息服务概念和示例;第五部分(第18~21章)讲解安全概念和示例,从介绍一些基本的安全概念和安全机制开始,解释如何为Web组件和Java EE组件增加安全性,之后介绍一些Java EE安全的高级主题;第六部分(第22~27章)研究Java EE平台的多种支持技术,包括事务、资源适配器和契约、使用Java EE拦截器、批处理和Java EE的并发工具;第七部分(第28~30章)提供一些使用多种Java EE技术的案例研究,包括Duke书店案例、Duke辅导案例和Duke综合案例研究示例。
  《Java EE 7专业指南·卷2(原书第5版)》是一个面向任务的实用指南,通过一系列实用示例介绍如何开发Java EE 7(Java平台企业版7)企业应用,由Oracle的Java EE文档小组成员倾力撰写,能够帮助初学者和中级Java程序员深入了解这个平台。
  本书包括平台特性的全面描述,并提供使用全新版本NetBeans IDE和GlassFish服务器开源版的有关说明。书中介绍了EJB组件、Java持久化API、Java消息服务(JMS)API、Java EE安全、事务、资源适配器、Java EE拦截器、Java平台批处理应用以及Java EE并发工具。本书最后提供了3个案例研究,展示了如何综合使用多个Java EE 7 API。

作者简介

  埃里克·珍兆科(Eric Jendrock),领导着Oracle的Java EE Tutorial团队,撰写了Java安全和并发工具有关的章节。

  里卡多·塞维拉 - 纳瓦罗(Ricardo Cervera-Navarro),撰写了Java平台批处理应用的有关章节,补充了资源适配器技术领域的有关内容和示例,并参与了案例研究部分的工作。

  伊恩·埃文斯(Ian Evans),撰写了EJB、Java持久化API和Java事务API的有关章节。

  金姆·哈泽 (Kim Haase),撰写了Java消息服务(JMS)的有关章节,并参与了案例研究部分的工作。

  威廉·马基特(William Markito),曾是Oracle平台技术解决方案小组成员,创建了Duke综合案例研究以及多项其他技术的示例。




目录

译者序 前言 第一部分引言 第1章概述2 1.1Java EE 7平台新增特性3 1.2Java EE应用模型3 1.3分布式多层应用4 1.3.1安全4 1.3.2Java EE组件5 1.3.3Java EE客户端6 1.3.4Web组件7 1.3.5业务组件8 1.3.6企业信息系统层8 1.4Java EE容器9 1.4.1容器服务9 1.4.2容器类型10 1.5Web服务支持11 1.5.1XML11 1.5.2SOAP传输协议12 1.5.3WSDL标准格式12 1.6Java EE应用装配与部署12 1.7开发角色13 1.7.1Java EE产品提供商13 1.7.2工具提供商13 1.7.3应用组件提供商13 1.7.4应用装配人员14 1.7.5应用部署人员和管理员14 1.8Java EE 7 API14 1.8.1EJB技术16 1.8.2Java servlet技术17 1.8.3JSF技术18 1.8.4JSP技术18 1.8.5JSP标准标记库19 1.8.6Java持久化API19 1.8.7Java事务API19 1.8.8RESTful Web服务Java API19 1.8.9托管bean20 1.8.10Java EE 的上下文和依赖注入20 1.8.11Java的依赖注入20 1.8.12bean验证20 1.8.13Java消息服务API20 1.8.14Java EE连接器架构21 1.8.15JavaMail API21 1.8.16Java容器授权契约21 1.8.17Java容器认证服务提供者接口21 1.8.18WebSocket Java API22 1.8.19JSON处理Java API22 1.8.20Java EE的并发工具22 1.8.21Java平台的批处理应用22 1.9Java平台标准版7的Java EE 7 API23 1.9.1Java数据库互连API23 1.9.2Java命名和目录接口API23 1.9.3JavaBeans激活框架24 1.9.4XML处理Java API24 1.9.5Java XML绑定架构24 1.9.6XML Web服务Java—API24 1.9.7带附件SOAP Java API25 1.9.8Java认证和授权服务25 1.9.9Java平台的公共注解25 1.10GlassFish服务器工具25 第2章使用教程示例27 2.1必要软件27 2.1.1Java EE 7软件开发包28 2.1.2Java平台标准版28 2.1.3Java EE 7教程组件28 2.1.4NetBeans IDE29 2.1.5Apache Maven30 2.2启动和停止GlassFish服务器30 2.2.1使用NetBeans IDE启动GlassFish服务器30 2.2.2使用NetBeans IDE停止GlassFish服务器30 2.2.3使用命令行启动GlassFish服务器30 2.2.4使用命令行停止GlassFish服务器31 2.3启动管理控制台31 2.3.1使用NetBeans IDE启动管理控制台31 2.4启动和停止Java DB服务器32 2.4.1使用NetBeans IDE启动数据库服务器32 2.5构建示例32 2.6教程示例目录结构32 2.7教程中的Java EE 7 Maven原型33 2.7.1安装教程Maven原型33 2.8获取教程最新更新34 2.8.1使用NetBeans IDE更新教程34 2.8.2使用命令行更新教程34 2.9调试Java EE应用34 2.9.1使用服务器日志34 2.9.2使用调试器35 第二部分企业bean 第3章企业bean38 3.1什么是企业bean38 3.1.1企业bean的好处39 3.1.2何时使用企业bean39 3.1.3企业bean类型39 3.2什么是会话bean39 3.2.1会话bean类型40 3.2.2何时使用会话bean41 3.3什么是消息驱动bean41 3.3.1消息驱动bean与会话bean的区别41 3.3.2何时使用消息驱动bean42 3.4访问企业bean42 3.4.1在客户端使用企业bean43 3.4.2确定远程或本地访问44 3.4.3本地客户端45 3.4.4远程客户端46 3.4.5Web服务客户端47 3.4.6方法参数和访问47 3.5企业bean的内容48 3.6企业bean的命名约定48 3.7企业bean的生命周期48 3.7.1有状态会话bean的生命周期48 3.7.2无状态会话bean的生命周期49 3.7.3单例会话bean的生命周期50 3.7.4消息驱动bean的生命周期50 3.8有关企业bean的更多信息51 第4章企业bean入门52 4.1创建企业bean52 4.1.1编写企业bean类53 4.1.2创建converter Web客户端53 4.1.3运行converter示例54 4.2修改Java EE应用55 4.2.1修改类文件55 第5章运行企业bean示例56 5.1cart示例56 5.1.1业务接口57 5.1.2会话bean类57 5.1.3@Remove方法61 5.1.4辅助类61 5.1.5运行cart示例61 5.2一个单例会话bean示例:counter62 5.2.1创建一个单例会话bean63 5.2.2counter示例的架构67 5.2.3运行counter示例69 5.3一个Web服务示例:helloservice69 5.3.1Web服务端点实现类69 5.3.2无状态会话bean实现类70 5.3.3运行helloservice示例71 5.4使用定时器服务72 5.4.1创建基于日历的定时器表达式72 5.4.2编程定时器74 5.4.3自动定时器76 5.4.4取消和保存定时器76 5.4.5获得定时器信息77 5.4.6事务和定时器77 5.4.7timersession示例77 5.4.8运行timersession示例80 5.5处理异常81 第6章使用嵌入式企业bean容器82 6.1嵌入式企业bean容器概述82 6.2开发嵌入式企业bean应用82 6.2.1运行嵌入式应用83 6.2.2创建企业bean容器83 6.2.3查找会话bean引用84 6.2.4关闭企业bean容器85 6.3standalone示例应用85 6.3.1使用NetBeans IDE运行standalone示例应用86 6.3.2使用Maven运行standalone示例应用87 第7章在会话bean中使用异步方法调用88 7.1异步方法调用88 7.1.1创建异步业务方法88 7.1.2从企业bean客户端调用异步方法89 7.2async示例应用90 7.2.1async—war模块的架构91 7.2.2运行async示例92 第三部分持久化 第8章Java持久化API介绍96 8.1实体96 8.1.1实体类的需求97 8.1.2实体类中的持久化字段和属性97 8.1.3实体的主键101 8.1.4实体关系中的多重性103 8.1.5实体关系中的方向103 8.1.6实体中的可嵌入类105 8.2实体继承106 8.2.1抽象实体106 8.2.2映射超类106 8.2.3非实体超类107 8.2.4实体继承映射策略107 8.3管理实体109 8.3.1EntityManager接口109 8.3.2持久化单元113 8.4查询实体114 8.5数据库模式创建114 8.5.1配置应用以创建或删除数据库表115 8.5.2使用SQL脚本加载数据116 8.6有关持久化的更多信息116 第9章运行持久化示例118 9.1order应用118 9.1.1order应用中的实体关系119 9.1.2order应用中的主键121 9.1.3实体映射到多个数据库表125 9.1.4order应用中的层叠操作125 9.1.5order应用中的BLOB和CLOB数据库类型126 9.1.6order应用中的时态类型126 9.1.7管理order应用的实体127 9.1.8运行order示例129 9.2roster应用129 9.2.1roster应用中的关系130 9.2.2roster应用中的实体继承131 9.2.3roster应用中的Criteria查询132 9.2.4roster应用中的自动表生成134 9.2.5运行roster示例135 9.3address—book应用136 9.3.1address—book中的bean验证约束136 9.3.2在address—book中为约束指定错误消息137 9.3.3验证JSF应用的联系信息输入138 9.3.4运行address—book示例139 第10章Java持久化查询语言140 10.1查询语言术语140 10.2使用Java持久化查询语言创建查询141 10.2.1查询中的命名参数142 10.2.2查询中的位置参数142 10.3简化的查询语言语法142 10.3.1选择语句142 10.3.2更新和删除语句143 10.4示例查询143 10.4.1简单查询143 10.4.2导航到相关实体的查询144 10.4.3包含其他条件表达式的查询146 10.4.4批处理更新和删除147 10.5完整的查询语言语法148 10.5.1BNF符号148 10.5.2Java持久化查询语言的BNF文法148 10.5.3FROM子句152 10.5.4路径表达式157 10.5.5WHERE子句158 10.5.6SELECT子句165 10.5.7ORDER BY子句167 10.5.8GROUP BY和HAVING子句167 第11章使用Criteria API创建查询168 11.1Criteria和Metamodel API概述168 11.2使用Metamodel API为实体类建模170 11.2.1使用元模型类170 11.3使用Criteria API和Metamodel API创建基本的类型安全查询171 11.3.1创建Criteria查询171 11.3.2查询根172 11.3.3使用联接查询关系172 11.3.4Criteria查询中的路径导航173 11.3.5限制Criteria查询结果173 11.3.6管理Criteria查询结果175 11.3.7执行查询176 第12章创建和使用基于字符串的Criteria查询178 12.1基于字符串的Criteria API查询概述178 12.2创建基于字符串的查询178 12.3执行基于字符串的查询179 第13章使用锁定控制对实体数据的并发访问180 13.1实体锁定和并发概述180 13.1.1使用乐观锁定181 13.2锁模式181 13.2.1设置锁模式182 13.2.2使用悲观锁定183 第14章用实体图创建获取计划185 14.1实体图基础185 14.1.1默认实体图186 14.1.2在持久化操作中使用实体图186 14.2使用命名实体图187 14.2.1对实体类应用命名实体图注解187 14.2.2从命名实体图获得EntityGraph实例188 14.3在查询操作中使用实体图189 第15章对Java持久化API应用使用二级缓存190 15.1二级缓存概述190 15.1.1控制实体是否可以缓存191 15.2指定缓存模式设置来提高性能192 15.2.1设置缓存获取和存储模式192 15.2.2通过编程方式控制二级缓存194 第四部分消息传送 第16章Java消息服务概念198 16.1JMS API概述198 16.1.1什么是消息传送198 16.1.2什么是JMS API199 16.1.3何时使用JMS API199 16.1.4Java EE平台如何使用JMS API200 16.2基本JMS API概念201 16.2.1JMS API架构201 16.2.2消息传送方式201 16.2.3消息使用203 16.3JMS API编程模型204 16.3.1JMS受管理对象205 16.3.2连接206 16.3.3会话206 16.3.4JMSContext对象207 16.3.5JMS消息生产者208 16.3.6JMS消息消费者208 16.3.7JMS消息213 16.3.8JMS队列浏览器215 16.3.9JMS异常处理216 16.4使用高级JMS特性216 16.4.1控制消息确认217 16.4.2为发送消息指定选项218 16.4.3创建临时目的地220 16.4.4使用JMS本地事务221 16.4.5异步发送消息223 16.5在Java EE应用中使用JMS API223 16.5.1为Java EE应用创建资源223 16.5.2在企业bean或Web组件中使用资源注入225 16.5.3使用Java EE组件生成和同步接收消息226 16.5.4使用消息驱动bean异步接收消息227 16.5.5管理JTA事务229 16.6关于JMS的更多信息231 第17章Java消息服务示例232 17.1JMS示例概述233 17.2编写简单的JMS应用233 17.2.1启动JMS提供者234 17.2.2创建JMS受管理对象234 17.2.3构建所有简单示例235 17.2.4发送消息235 17.2.5同步接收消息238 17.2.6使用消息监听器完成异步消息传送240 17.2.7浏览队列中的消息242 17.2.8在同一个目的地运行多个消费者245 17.2.9确认消息245 17.3编写更高级的JMS应用247 17.3.1使用持久订阅247 17.3.2使用本地事务249 17.4编写高性能和可扩展的JMS应用254 17.4.1使用共享非持久订阅254 17.4.2使用共享持久订阅256 17.5使用一个简单Web应用发送和接收消息257 17.5.1websimplemessage Facelets页面257 17.5.2websimplemessage托管bean258 17.5.3运行websimplemessage示例259 17.6使用消息驱动bean异步接收消息261 17.6.1simplemessage示例概述261 17.6.2simplemessage应用客户端261 17.6.3simplemessage消息驱动bean类262 17.6.4运行simplemessage示例263 17.7从会话bean向MDB发送消息264 17.7.1为clientsessionmdb示例编写应用组件265 17.7.2运行clientsessionmdb示例267 17.8使用实体联接两个MDB的消息268 17.8.1clientmdbentity示例应用概述269 17.8.2为clientmdbentity示例编写应用组件270 17.8.3运行clientmdbentity示例272 17.9使用NetBeans IDE创建JMS资源274 17.9.1使用NetBeans IDE创建JMS资源274 17.9.2使用NetBeans IDE删除JMS资源275 第五部分安全 第18章Java EE平台安全介绍278 18.1Java EE安全概述278 18.1.1简单的应用安全演示279 18.1.2安全机制特性281 18.1.3应用安全特点281 18.2安全机制282 18.2.1Java SE安全机制282 18.2.2Java EE安全机制283 18.3保护容器安全285 18.3.1使用注解指定安全信息285 18.3.2使用部署描述文件提供声明式安全285 18.3.3使用编程式安全286 18.4保护GlassFish服务器安全286 18.5使用安全域、用户、组和角色286 18.5.1什么是安全域、用户、组和角色287 18.5.2在GlassFish服务器中管理用户和组289 18.5.3建立安全角色290 18.5.4角色映射到用户和组291 18.6使用SSL建立安全连接292 18.6.1验证和配置SSL支持293 18.7有关安全的更多信息293 第19章Web应用安全入门295 19.1Web应用安全概述295 19.2保护Web应用安全296 19.2.1指定安全约束297 19.2.2指定认证机制300 19.2.3在部署描述文件中指定认证机制302 19.2.4声明安全角色303 19.3Web应用使用编程式安全304 19.3.1通过编程方式认证用户304 19.3.2通过编程方式检查调用者身份306 19.3.3编程式安全的示例代码306 19.3.4声明和链接角色引用308 19.4示例:保护Web应用安全309 19.4.1设置系统来运行安全示例309 19.4.2hello2—basicauth示例:对servlet使用基本认证310 19.4.3hello1—formauth示例:对JSF应用使用基于表单的认证312 第20章企业应用安全入门316 20.1企业应用的基本安全任务316 20.2保护企业bean安全316 20.2.1使用声明式安全保护企业bean安全318 20.2.2通过编程方式保护企业bean安全321 20.2.3传播安全身份(Run—As)323 20.2.4部署安全企业bean324 20.3示例:保护企业bean安全324 20.3.1cart—secure示例:使用声明式安全保护企业bean安全324 20.3.2converter—secure示例:使用编程式安全保护企业bean安全328 第21章Java EE安全:高级主题331 21.1使用数字证书331 21.1.1创建服务器证书332 21.1.2向证书安全域增加用户334 21.1.3为GlassFish服务器使用一个不同的服务器证书334 21.2认证机制335 21.2.1客户端认证335 21.2.2相互认证335 21.3使用JDBC安全域完成用户认证338 21.3.1配置JDBC认证安全域339 21.4保护HTTP资源安全340 21.5保护应用客户端安全343 21.5.1使用登录模块343 21.5.2使用编程式登录344 21.6保护企业信息系统应用安全344 21.6.1容器托管登录344 21.6.2组件托管登录345 21.6.3配置资源适配器安全345 21.6.4将应用主体映射到EIS主体346 21.7使用部署描述文件配置安全347 21.7.1在部署描述文件中指定基本认证安全347 21.7.2在部署描述文件中指定非默认主体—角色映射348 21.8关于高级安全主题的更多信息348 第六部分Java EE支持技术 第22章事务352 22.1Java EE应用中的事务352 22.2什么是事务353 22.3容器托管事务353 22.3.1事务属性354 22.3.2回滚容器托管事务357 22.3.3同步会话bean的实例变量357 22.3.4容器托管事务中不允许的方法358 22.4bean托管事务358 22.4.1JTA事务358 22.4.2不提交返回359 22.4.3bean托管事务中不允许的方法359 22.5事务超时359 22.5.1设置事务超时359 22.6更新多个数据库360 22.7Web组件中的事务361 22.8关于事务的更多信息361 第23章资源适配器和契约362 23.1什么是资源适配器362 23.1.1管理契约363 23.1.2通用工作上下文契约364 23.1.3出站和入站契约364 23.2元数据注解365 23.3公共客户端接口366 23.4对Java EE上下文和依赖注入(CDI)使用资源适配器367 23.5关于资源适配器的更多信息368 第24章资源适配器示例369 24.1trading示例369 24.1.1使用出站资源适配器370 24.1.2实现出站资源适配器372 24.1.3运行trading示例373 24.2traffic示例374 24.2.1使用入站资源适配器375 24.2.2实现入站资源适配器376 24.2.3运行traffic示例378 第25章使用Java EE拦截器380 25.1拦截器概述380 25.1.1拦截器类381 25.1.2拦截器生命周期381 25.1.3拦截器和CDI381 25.2使用拦截器381 25.2.1拦截方法调用382 25.2.2拦截生命周期回调事件384 25.2.3拦截超时事件385 25.2.4为组件绑定拦截器386 25.2.5拦截器排序387 25.3interceptor示例应用388 25.3.1运行interceptor示例389 第26章批处理390 26.1批处理介绍391 26.1.1批处理作业中的步骤391 26.1.2并行处理392 26.1.3状态和判定元素392 26.1.4批处理框架功能393 26.2Java EE中的批处理394 26.2.1批处理框架394 26.2.2创建批处理应用394 26.2.3批处理作业的元素395 26.2.4属性和参数395 26.2.5作业实例和作业执行395 26.2.6批处理和退出状态395 26.3简单用例396 26.3.1块步骤397 26.3.2任务步骤399 26.4使用作业规范语言399 26.4.1job元素400 26.4.2step元素401 26.4.3flow元素406 26.4.4split元素406 26.4.5decision元素406 26.5创建批处理工件407 26.5.1批处理工件接口407 26.5.2批处理工件中的依赖注入409 26.5.3从批处理运行时环境使用上下文对象410 26.6向批处理运行时环境提交作业411 26.6.1开始作业411 26.6.2检查作业的状态411 26.6.3在应用中调用批处理运行时环境412 26.7打包批处理应用412 26.8webserverlog示例应用412 26.8.1webserverlog示例应用架构412 26.8.2运行webserverlog示例应用418 26.9phonebilling示例应用419 26.9.1phonebilling示例应用架构419 26.9.2运行phonebilling示例应用425 26.10关于批处理的更多信息426 第27章Java EE的并发工具427 27.1并发基础427 27.1.1线程和进程428 27.2并发工具的主要组件428 27.3并发和事务429 27.4并发和安全430 27.5jobs并发示例430 27.5.1运行jobs示例430 27.6taskcreator并发示例433 27.6.1运行taskcreator示例435 27.7关于并发工具的更多信息436 第七部分案例研究 第28章Duke书店案例研究示例438 28.1Duke书店的设计和架构438 28.2Duke书店接口439 28.2.1Book Java持久化API实体439 28.2.2Duke书店中使用的企业bean440 28.2.3Duke书店中使用的Facelets页面和托管bean440 28.2.4Duke书店中使用的定制组件和其他定制对象441 28.2.5Duke书店中使用的属性文件442 28.2.6Duke书店中使用的部署描述文件443 28.3运行Duke书店案例研究应用443 28.3.1使用NetBeans IDE构建和部署Duke书店443 28.3.2使用Maven构建和部署Duke书店443 28.3.3运行Duke书店应用444 第29章Duke辅导案例研究示例445 29.1Duke辅导应用的设计和架构445 29.2主界面447 29.2.1主界面中使用的Java持久化API实体447 29.2.2主界面中使用的企业bean448 29.2.3主界面中使用的WebSocket端点448 29.2.4主界面中使用的Facelets文件448 29.2.5主界面中使用的辅助类449 29.2.6属性文件449 29.2.7Duke辅导应用中使用的部署描述文件450 29.3管理界面450 29.3.1管理界面中使用的企业bean450 29.3.2管理界面中使用的Facelets文件451 29.3.3管理界面中使用的CDI托管bean451 29.3.4管理界面中使用的辅助类451 29.4运行Duke辅导案例研究应用452 29.4.1运行Duke辅导应用452 第30章Duke综合案例研究示例455 30.1Duke综合应用的设计和架构456 30.1.1events工程458 30.1.2entities工程459 30.1.3dukes—payment工程461 30.1.4dukes—resources工程461 30.1.5Duke商店工程461 30.1.6Duke货运工程465 30.2构建和部署Duke综合案例研究应用467 30.2.1使用NetBeans IDE构建和部署Duke综合应用467 30.2.2使用Maven构建和部署Duke综合应用467 30.3运行Duke综合应用467 30.3.1注册为Duke商店顾客468 30.3.2购买产品468 30.3.3批准产品发货468 30.3.4创建新产品469

精彩书摘

  8.4查询实体   Java持久化API提供了以下方法来查询实体:   Java持久化查询语言(Java Persistence query language,JPQL)是一个简单的基于字符串的语言,类似于SQL,用来查询实体及实体的关系。更多信息参见第10章。   Criteria API使用Java语言API来创建类型安全的查询,用于查询实体及实体的关系。   更多信息参见第11章。   JPQL和Criteria API都各有自己的优缺点。   简单地讲,JPQL查询通常比Criteria查询更简洁、更可读。熟悉SQL的开发人员会发现JPQL的语法很容易学习。JPQL查询可以在实体类中使用Java编程语言注解定义,或者在应用的部署描述文件中定义。不过,JPQL查询不是类型安全的,从实体管理器获取查询结果时需要一个强制类型转换。这说明,编译时可能无法捕获到类型转换错误。另外JPQL查询不支持不定数目的参数。   Criteria查询允许在应用的业务层定义查询。尽管使用JPQL动态查询也可以做到这一点,不过Criteria查询提供了更好的性能,因为JPQL动态查询每一次调用时都必须解析。   Criteria查询是类型安全的,因此不要求像JPQL查询那样完成类型强制转换。Criteria API实际上就是一个Java编程语言API,不需要开发人员学习另一种查询语言的语法。Criteria查询通常比JPQL查询更麻烦,需要开发人员创建多个对象,要在这些对象上完成操作之后再向实体管理器提交查询。  ……

前言/序言





Java EE 7 权威指南:卷2(原书第5版) 深入探索 Java EE 7 的核心 API 与高级应用 《Java EE 7 权威指南:卷2(原书第5版)》作为一本全面深入的 Java EE 7 技术教程,其核心目标是为广大 Java 开发者提供一套系统、详实的学习路径,帮助他们掌握 Java EE 平台的关键技术,并能将其娴熟地应用于实际的企业级应用开发中。本书专注于 Java EE 7 规范中的一系列重要 API,涵盖了从基础概念到高级特性的广泛内容,旨在培养开发者构建现代化、可扩展、高性能的分布式系统的能力。 一、 Web 层核心技术: Servlet、JSP 与 WebSocket 的精深剖析 本书首先将目光聚焦于 Java EE 平台中处理 Web 请求的核心技术。Servlet API 作为 Java Web 开发的基石,本书将对其进行细致入微的讲解。开发者将学习到 Servlet 的生命周期管理、请求与响应的处理机制、线程安全问题、过滤器(Filter)与监听器(Listener)的协同工作原理,以及如何构建高效、可维护的 Web 应用。此外,对于 Servlet 3.1 引入的非阻塞 I/O (NIO) 支持,本书也将深入探讨其在提升 Web 服务器吞吐量和响应能力方面的优势与实际应用。 JavaServer Pages (JSP) 技术作为构建动态 Web 内容的强大工具,本书将从其基本语法、指令、内置对象,到如何通过 Expression Language (EL) 和 JSTL (JSP Standard Tag Library) 简化开发,以及如何与 Servlet 结合实现 Model-View-Controller (MVC) 架构模式,进行全方位的解析。本书将重点讲解如何利用 JSP 构建清晰、模块化的视图层,并强调最佳实践,以避免常见的性能问题和代码冗余。 随着 Web 应用对实时交互需求的不断增长,WebSocket API 已经成为不可或缺的技术。本书将全面介绍 WebSocket 的工作原理,包括其与 HTTP 的握手过程、消息传输模型(文本消息与二进制消息),以及如何利用 Java EE 7 提供的 WebSocket API 构建实时聊天应用、在线协作工具以及其他需要双向通信的 Web 服务。本书还将探讨 WebSocket 的可靠性、安全性以及在不同场景下的性能优化策略。 二、 持久化技术的深度挖掘: JPA 2.1 与 Bean Validation 2.0 数据持久化是企业级应用的核心环节。本书将对 Java Persistence API (JPA) 2.1 进行深度剖析,使其成为开发者掌握对象关系映射 (ORM) 技术的利器。开发者将学习到 JPA 的核心概念,包括实体(Entity)、映射关系(一对一、一对多、多对多)、查询语言 (JPQL)、条件查询 (Criteria API),以及如何利用注解 (Annotation) 进行声明式映射。本书还将深入讲解实体生命周期管理、缓存机制(一级缓存与二级缓存)、事务管理,以及如何利用 JPA 与数据库进行高效交互。对于 JPA 2.1 引入的新特性,如 the metamodel API 和 updated query syntax,本书也将提供详实的指导。 Bean Validation 2.0 作为 Java EE 平台标准的约束验证框架,本书将详细介绍其在数据校验方面的应用。开发者将学习如何定义和应用各种内置约束注解(如 `@NotNull`, `@Size`, `@Pattern`, `@Email` 等),以及如何创建自定义约束注解以满足特定业务需求。本书还将讲解如何将 Bean Validation 集成到 JPA 实体、JSF 组件以及 JAX-RS 资源中,实现端到端的输入验证,确保数据的完整性和一致性。 三、 服务层与业务逻辑: EJB 3.2 的强大支撑 Enterprise JavaBeans (EJB) 3.2 作为 Java EE 平台的核心组件技术,本书将对其进行系统而深入的讲解。开发者将学习到 EJB 的不同类型,包括无状态会话 Bean (Stateless Session Bean)、有状态会话 Bean (Stateful Session Bean)、单例会话 Bean (Singleton Session Bean) 以及消息驱动 Bean (Message-Driven Bean)。本书将详细介绍 EJB 的生命周期管理、事务管理(声明式与编程式)、安全性(角色、方法级安全),以及如何利用依赖注入 (Dependency Injection) 和拦截器 (Interceptor) 来简化业务逻辑的开发和管理。对于 EJB 3.2 在简化开发、提高性能和可伸缩性方面所做的改进,本书也将进行重点阐述,并提供丰富的代码示例,帮助开发者理解和应用这些强大的特性。 四、 消息传递与异步通信: JMS 2.0 的高效实现 在分布式系统中,异步消息传递是实现解耦、提高系统弹性和可伸缩性的关键。本书将全面介绍 Java Message Service (JMS) 2.0 API。开发者将学习到 JMS 的两种核心模式:点对点 (Point-to-Point) 模式(队列 Queue)和发布/订阅 (Publish/Subscribe) 模式(主题 Topic)。本书将详细讲解 JMS 消息的发送与接收、消息的确认机制、事务性消息,以及如何处理持久化消息和非持久化消息。此外,本书还将介绍 JMS 2.0 引入的简化 API,如 `JMSContext`,以提高开发效率,并探讨 JMS 在实际应用场景中的部署与调优。 五、 Web 服务构建: JAX-RS 2.1 与 JAX-WS 2.2 的实战指南 构建 RESTful Web 服务是现代 Web 应用开发的重要组成部分。本书将深入讲解 Java API for RESTful Web Services (JAX-RS) 2.1。开发者将学习如何利用 JAX-RS 注解(如 `@Path`, `@GET`, `@POST`, `@PUT`, `@DELETE`, `@Consumes`, `@Produces` 等)来定义 Web 资源,如何处理请求参数、请求体,以及如何返回不同格式的响应(如 JSON, XML)。本书还将介绍 JAX-RS 的过滤器、拦截器、参数解析器、异常处理机制,以及如何利用 HATEOAS (Hypermedia as the Engine of Application State) 来构建更具表现力的 RESTful API。 对于传统的 SOAP Web 服务,本书也将提供 Java API for XML Web Services (JAX-WS) 2.2 的详细介绍。开发者将学习如何创建和消费 SOAP Web 服务,包括 WSDL (Web Services Description Language) 的理解与应用、服务终端点的发布,以及如何处理 SOAP 消息。本书将通过实例演示,帮助开发者理解 JAX-WS 在构建与遗留系统集成或需要强类型契约的场景下的作用。 六、 安全性与上下文管理: Java EE 安全模型与 CDI 2.0 安全性是企业级应用的首要考量。本书将深入剖析 Java EE 安全模型,包括认证(Authentication)与授权(Authorization)的实现机制,如基于角色的访问控制 (RBAC)、Login Modules、Form-based Login、HTTP Basic Authentication 等。开发者将学习如何配置和集成各种安全提供者,以及如何保护 Web 资源和 EJB 组件。 Contexts and Dependency Injection (CDI) 2.0 作为 Java EE 平台中用于简化组件管理的声明式依赖注入框架,本书将对其进行全面介绍。开发者将学习 CDI 的核心概念,如 Bean、Producer、Observer、Scope、Stereotype,以及如何利用注解进行类型安全的依赖注入。本书还将探讨 CDI 在简化 EJB 开发、集成其他 Java EE API 以及实现可插拔组件方面的优势,并重点介绍 CDI 2.0 对异步事件和 `CDI.current()` 方法的改进。 七、 部署、管理与最佳实践 本书的最后部分将侧重于 Java EE 应用的实际部署与管理。开发者将了解 Java EE 应用服务器(如 WildFly/JBoss EAP, GlassFish, Tomcat with EE extensions)的部署模型、配置选项,以及如何进行性能监控和调优。本书还将总结贯穿全书的最佳实践,包括代码组织、设计模式的应用、错误处理策略,以及如何构建高可用、可扩展的分布式系统。 《Java EE 7 权威指南:卷2(原书第5版)》力求通过清晰的阐述、丰富的示例和深入的分析,帮助开发者在 Java EE 7 的世界中游刃有余,构建出满足企业级需求的健壮、高效、可维护的应用程序。本书不仅仅是一本技术手册,更是通往 Java EE 开发高级领域的必经之路。

用户评价

评分

说实话,对于《Java EE 7权威指南:卷2》这本书,我的期望值简直爆表!我之前接触过一些Java EE的初学者教程,感觉像是在走马观花,很多东西只停留在表面。这次选择这本书,是看中了它“权威指南”的名头,以及“卷2”暗示的深度和广度。我尤其关注书里对一些核心技术点的深入剖析,比如EJB的精髓、JPA的最佳实践、以及RESTful Web Services的开发模式。我希望这本书能提供一些“点石成金”的窍门,让我能够跳出新手村,真正掌握构建高性能、高可用企业级应用的秘诀。同时,我也希望书中能包含一些关于性能调优和架构设计的思考,毕竟在实际项目中,这些往往比单纯掌握API更重要。我追求的是一种“授人以渔”的学习体验,能够让我举一反三,触类旁通,而不是仅仅依赖书本上的例子。

评分

拿到《Java EE 7权威指南:卷2》这本书,我的心情格外激动!作为一名在Java EE领域摸爬滚打多年的开发者,我深知一本好的参考书对于职业发展的巨大助益。这本书的原书第五版,加上“权威指南”的头衔,让我对其内容质量充满信心。我尤其对书中可能包含的关于微服务架构、容器化部署(如Docker和Kubernetes与Java EE的集成)、以及现代化开发流程(CI/CD)的探讨抱有极大的期待。我希望这本书能不仅仅停留在Java EE 7的API层面,更能引领我思考如何将Java EE技术与当前流行的微服务理念相结合,构建更具时代特征的企业级解决方案。我也期望书中能提供一些关于云原生应用开发、安全性最佳实践以及性能监控方面的深度内容,帮助我提升在复杂项目中的应对能力。

评分

说实话,我购买《Java EE 7权威指南:卷2》这本书,主要看中了它的“权威”二字。作为一名刚踏入企业级Java开发不久的菜鸟,我迫切需要一本能够系统梳理Java EE知识体系,并且深入浅出的教材。我特别希望书中能够对Java EE 7的核心规范,如Servlet、JSP、EJB、JPA、CDI等进行详细的讲解,并且能提供大量贴近实际项目开发的例子。我希望通过这本书,能够彻底理解这些技术的内在原理,掌握如何正确地使用它们来构建稳定、高效的应用程序。我也希望书中能够包含一些关于数据库访问、安全性设计以及性能优化方面的实用技巧,帮助我少走弯路,快速成长为一名合格的Java EE开发者。

评分

我选择《Java EE 7权威指南:卷2》这本书,更多的是基于一种职业发展的考量。作为一名经验丰富的Java开发者,我深知持续学习的重要性,尤其是对于像Java EE这样庞大且不断演进的技术体系。这本书原书第五版,意味着其内容经过了长时间的打磨和验证,相信能够为我提供宝贵的见解。我特别关注书中关于Java EE 7在云环境下的部署和管理,以及如何利用其特性构建可伸缩、弹性的企业级应用。我也希望书中能够深入探讨一些高级主题,比如分布式系统的设计模式、消息驱动的架构、以及如何与Spring Boot等其他流行框架进行整合。我希望这本书能帮助我打开新的视野,将我现有的知识体系提升到一个新的高度,让我能够更从容地应对未来的技术挑战。

评分

终于入手了这本《Java EE 7权威指南:卷2》,期待了好久!我之前读过不少Java EE相关的书籍,但总感觉差那么点意思,要么过于理论化,要么举例不够深入。这本书的名字就透着一股“权威”劲儿,原书第五版也说明了其历史积淀和不断更新。我主要关注的是它在实际项目开发中的应用,比如如何更好地利用Java EE的各个技术栈来构建健壮、可扩展的企业级应用。尤其对其中关于分布式事务、消息队列、安全性等方面的讲解特别感兴趣,希望这本书能提供清晰的思路和实用的技巧,帮助我解决工作中遇到的实际问题。我希望它不只是枯燥的技术罗列,而是能通过丰富的案例,将抽象的概念具象化,让我能深刻理解各个组件的协同工作原理,以及在不同场景下的最佳实践。我已经迫不及待地想翻开它,跟着作者的指引,在Java EE的广阔世界里探索一番了!

评分

上午下单下午就到了,京东的快递我是服的。书还没看,应该不错

评分

书挺不错的,在网上看了pdf版本,才决定买的,好多书有好有坏,所以买书前先提前看看,不过建议结合编程思想那本一起看。京东的配货速度挺快的,配送员的态度也特别好,所以才一直在京东买的。

评分

希望包装好些,用气泡塑料装最好了

评分

以前不看书,现在还喜欢看书了,莫非是老了

评分

选了很久,觉得这边比编程思想要浅显,恰好618减五十,很划算

评分

很不错,小白表示很不错,膜拜各位大佬,一起加油努力吧(•??•?)

评分

用知识武装自己的大脑,幸福的时光在文字上游走

评分

这本已经看得差不多了。确实值得买。之前在公众号上看的。看书比较系统,公众号看的有点累。

评分

每个java程序猿必备的书,值得研读

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有