Java EE 6權威指南

出版時間:2012-9  出版社:人民郵電出版社  作者:[美]Eric Jendrock,[美] Ian Evan,[美]Devika Gollapudi,[美]Kim Hasse,[美]Chinmayee Srivathsa  頁數(shù):404  字數(shù):626000  譯者:李 鵬,韓 智  
Tag標簽:無  

前言

本書基于GlassFish服務器開源版講述如何在Java EE 6平臺上開發(fā)企業(yè)應用。Oracle GlassFish Server是一個Java EE兼容的應用服務器,它基于GlassFish服務器開源版開發(fā)而成。GlassFish服務器開源版是目前業(yè)界領先的開源項目和開放平臺,可用來構建和部署下一代應用和服務。GlassFish服務器開源版是由GlassFish項目開源社區(qū)研發(fā)的,其官方網(wǎng)站為http://glassfish.java.net,它是第一個兼容Java EE 6平臺規(guī)范的應用服務器,具備輕量、靈活和開源等特點,這使得企業(yè)不僅可以利用Java EE 6 帶來的新功能,還能通過更快捷的開發(fā)和部署流程在已有功能的基礎上添加新功能。Oracle GlassFish Server又稱GlassFish服務器商業(yè)版,它和GlassFish服務器開源版在本書中統(tǒng)稱為GlassFish服務器。閱讀須知Oracle GlassFish Server文檔集相關文檔符號約定字體約定默認路徑和文件名方面的約定文檔、支持以及培訓查找Oracle產(chǎn)品文檔第三方網(wǎng)站參考內(nèi)容閱讀須知讀者應當事先熟悉Java這門編程語言,如果并不熟悉,建議大家先通讀Addision-Wesley在2006年出版、由Sharon Zakhour等人所著的The Java Tutorial, Fourth Edition。Oracle GlassFish Server文檔集GlassFish服務器文檔集講述的是部署計劃以及系統(tǒng)的安裝。GlassFish服務器文檔的網(wǎng)址是http://docs.sun.com/coll/1343.13。有關GlassFish服務器的介紹,可以按順序參閱表1列出的文檔。表1 GlassFish服務器文檔集里的文檔文檔名 描述信息Release Notes(版本說明) 提供有關軟件和文檔的最新信息,以表格的形式全面列出它所支持的硬件、操作系統(tǒng)、Java開發(fā)包(JDK)以及數(shù)據(jù)庫的驅(qū)動程序等信息Quick Start Guide(快速入門指南) 講述如何使用GlassFish服務器Installation Guide(安裝指南) 講述如何安裝GlassFish服務器軟件以及它的各個組件Upgrade Guide(升級指南) 講述如何升級到最新版本的GlassFish服務器,并介紹相鄰版本之間的差異、配置選項的差異,這些差異可能會導致與產(chǎn)品規(guī)范不兼容Administration Guide(管理指南) 講述如何使用asadmin(1 M)實用工具,以命令行的方式配置、監(jiān)控和管理GlassFish服務器的各個子系統(tǒng)和組件。管理控制臺(Administration Console)的在線幫助里介紹了如何執(zhí)行這些任務Application Deployment Guide(應用部署指南) 講述如何把應用裝配和部署到GlassFish服務器上,還提供部署描述文件的相關信息Your First Gup: An Introduction to the Java EE Platform(Java EE平臺簡介) 為Java EE的初學者提供簡短的教程,講述開發(fā)簡單的企業(yè)應用的完整過程。示例程序是一個Web程序,包括一個基于EJB規(guī)范的組件、一個基于JAX-RS的Web服務,以及一個用于Web前端的JavaServer Faces組件Application Development Guide(應用開發(fā)指南) 講述如何創(chuàng)建和實現(xiàn)運行在GlassFish服務器上的Java EE應用。這些應用遵循開放Java標準模型,使用的是Java EE組件以及API(Application Programming Interface,應用編程接口)。本指南還提供有關開發(fā)者工具、安全以及調(diào)試的信息Add-On Component Development Guide(插件開發(fā)指南) 講述如何使用GlassFish服務器已發(fā)布的接口為GlassFish服務器開發(fā)插件。本文檔只講述那些能讓插件應用于GlassFish服務器的必要步驟Embedded Server Guide(嵌入式服務器指南) 講述如何在嵌入式GlassFish服務器環(huán)境下運行應用及如何開發(fā)嵌入GlassFish服務器的應用Scripting Framework Guide(腳本框架指南) 講述如何使用Ruby on Rails和Groovy on Grails等腳本語言為GlassFish服務器開發(fā)腳本應用Troubleshooting Guide(疑難排解指南) 講述使用GlassFish服務器過程中的常見問題及解決辦法Error Message Reference(出錯消息參考) 講述在使用GlassFish服務器過程中可能遇到的出錯消息Reference Manual(參考手冊) 提供手冊頁(manual page)格式的參考信息,講述GlassFish服務器的管理命令、實用工具命令以及相關的概念Domain File Format Reference(域配置文件格式參考) 講述GlassFish服務器的配置文件domain.xml的格式Java EE 6 Tutorial(Java EE 6教程) 講述如何使用Java EE 6平臺技術和API開發(fā)Java EE應用Message Queue Release Notes(消息隊列版本說明) 講述GlassFish消息隊列的新特性、兼容性問題以及已知bugMessage Queue Administration Guide(消息隊列管理指南) 講述如何創(chuàng)建和管理消息隊列系統(tǒng)Message Queue Developer’s Guide for JMX Clients(JMX客戶端的消息隊列開發(fā)指南) 講述消息隊列相關的API,以便開發(fā)人員在遵循JMX(Java Management Extensions,Java管理擴展)的前提下,通過編程的方式配置和監(jiān)控消息隊列的資源情況。相關文檔GlassFish服務器還提供了基于Javadoc工具的開發(fā)包參考文檔,可以以如下方式訪問。Java EE 6的API的規(guī)范位于http://docs.oracle.com/javaee/6/api/。GlassFish服務器 3.0.1版的API規(guī)范,包括Java EE 6 平臺的包以及GlassFish服務器專用的、非平臺的包,位于http://glassfish.java.net/nonav/docs/v3/api/。此外,Java EE規(guī)范也有可能用得著,其網(wǎng)址為http://www.oracle.com/technetwork/java/javaee/ tech/index.html。關于如何用NetBeans這個IDE(Integrated Development Environment,集成開發(fā)環(huán)境)創(chuàng)建企業(yè)應用,參見http://www.netbeans.org/kb/。關于如何為GlassFish服務器采用Java DB數(shù)據(jù)庫,參見http://www.oracle.com/technetwork/java/ javadb/overview/index.html。GlassFish的示例項目包括許多應用,這些應用展示了廣泛的Java EE技術。GlassFish示例項目和Java EE SDK打包到了一起,可以在GlassFish示例項目頁http://glassfish-samples.java.net/獲得。符號約定表2展示了本書中可能用到的符號。表2 符號約定符號 描述 例子 意義[  ] 括號里是可選參數(shù)或者命令的選項 ls [-l] -l選項不是必需的,可以不用{ | } 對于一個必選的命令選項,必須從括號里的幾個備選項中選擇一個 -d {y|n} -d選項要求必須用y或n作為參數(shù)${ } 指對變量的引用 ${com.sun.javaRoot} 表示com.sun.javaRoot這個變量的值- 同時按下多個按鍵 Control+A 同時按下Ctrl鍵和A鍵+ 順序按下多個按鍵 Ctrl+A+N 按下Ctrl鍵,然后松開,接著順序按下A鍵和N鍵→ 指的是在圖形用戶界面里菜單項的選擇 File→New→Templates 從File菜單里選擇New,在New子菜單里選擇Templates字體約定表3展示的是字體約定。表3 字體約定字體 意義 例子AaBbCc123 命令以及計算機屏幕上的輸出信息 使用ls -a列出所有文件machine_name% you have mail.(續(xù))字體 意義 例子AaBbCc123 用戶的輸入用粗體,以區(qū)別于計算機的輸出 machine_name% suPassword:AaBbCc123 占位符,會被真正的名字或者值替換掉 刪除文件的命令是rm filename楷體 新的術語以及需要強調(diào)的重點術語(注意,有一些強調(diào)的項以粗體形式出現(xiàn)) 緩存是指本地保存的一份數(shù)據(jù)副本不要保存文件默認路徑和文件名方面的約定表4列出了本書會用到的默認路徑和文件名。表4 默認路徑和文件名占 位 符 描述信息 默 認 值as-install 表示GlassFish服務器的安裝路徑或者SDK的安裝路徑(如果GlassFish服務器打包至SDK中) 在Solaris操作系統(tǒng)、Linux操作系統(tǒng)或者Mac操作系統(tǒng)下時為:user’s-home-directory/glassfishv3/glassfish在Windows系統(tǒng)下時為:SystemDrive:\glassfishv3\glassfishas-install-parent 表示GlassFish服務器安裝路徑的上一級路徑 在Solaris操作系統(tǒng)、Linux操作系統(tǒng)或者Mac操作系統(tǒng)下時為:user’s-home-directory/glassfishv3Windows系統(tǒng)下時為:SystemDrive:\glassfishv3tut-install 表示安裝完GlassFish服務器或者SDK后運行Update工具時,“Java EE Tutorial”(Java EE教程)所在的路徑 as-install/docs/javaee-tutorialdomain-root-dir 表示創(chuàng)建域(domain)的默認保存位置 as-install/domains/domain-dir 保存域配置文件的地方在配置文件里,domain-dir表示為:$(com.sun.aas.instanceRoot) domain-root-dir/domain-name文檔、支持以及培訓Oracle網(wǎng)站提供了如下一些輔助資源:文檔信息,參見http://docs.sun.com/;支持信息,參見http://www.sun.com/support/;培訓信息,參見http://education.oracle.com/。查找Oracle產(chǎn)品文檔除了可以在http://docs.sun.com網(wǎng)站查找Oracle產(chǎn)品的文檔以外,還可以使用搜索引擎,在搜索框里按如下語法格式輸入信息:搜索關鍵詞  site:docs.sun.com舉例來說,想查找“broker”的相關內(nèi)容,就在搜索框里輸入:broker site:docs.sun.com為了查找到Oracle其他網(wǎng)站的信息,比如說Oracle技術網(wǎng)絡中的Java開發(fā)者網(wǎng)站(http://www.oracle.com/technetwork/java/index.html),就在輸入框里把上述docs.sun.com替換成oracle.com。第三方網(wǎng)站參考內(nèi)容本書會引用一些第三方網(wǎng)站的參考內(nèi)容,主要是為了提供相關的輔助信息。注意 Oracle不對本書所引用第三方網(wǎng)站的可訪問性負責。對于第三方網(wǎng)站上及可通過其訪問的任何內(nèi)容、廣告、產(chǎn)品以及其他材料,Oracle并不表示認可,也不對其負責。任何對上述內(nèi)容(內(nèi)容、產(chǎn)品或者服務)的使用,Oracle不對其導致的實際或者潛在的損害或損失負任何責任。

內(nèi)容概要

  《Java EE 6權威指南:基礎篇(第4版)》是任務導向、示例驅(qū)動的Java EE 6基礎教程,講述如何開發(fā)企業(yè)應用,并作為第4版加入了很多新內(nèi)容,詳細介紹了最新的API和平臺特性。本書分8部分闡述了Java EE 6基礎知識、Web層技術(包括JavaServer Faces和Facelets),以及如何使用JAX-WS和JAX-RS構建Web服務、使用JavaBeans組件開發(fā)業(yè)務邏輯、使用Java Persistence API訪問數(shù)據(jù)庫、為Web應用或企業(yè)應用增強安全性、在Java EE平臺使用上下文和依賴注入。
  《Java EE 6權威指南:基礎篇(第4版)》適合初中級Java編程人員學習參考。

作者簡介

本書作者均為Oracle Java EE 6文檔團隊成員,其中Eric Jendrock是Java EE Tutorial團隊負責人,并編寫了Java Servlet技術和Java安全性技術方面的文檔,Ian Evan負責編寫Enterprise JavaBeans、Java Persistence API、Bean Validation、Java Transaction API、JAX-RS和JAX-WS等方面的文檔,Devika Gollapudi負責編寫JavaServer Faces技術和Facelets等方面的文檔,Kim Hasse負責編寫面向Java EE平臺的上下文和依賴注入、Java安全、JMS(Java Message Service)等方面的文檔,Chinmayee Srivathsa負責編寫資源連接方面的文檔。

書籍目錄

目 錄
第一部分 簡介
第1章 綜述 2
1.1 Java EE 6平臺新特性 3
1.2 Java EE應用模型 3
1.3 分布式多層應用 4
1.3.1 安全 5
1.3.2 Java EE組件 5
1.3.3 Java EE客戶端 5
1.3.4 Web組件 7
1.3.5 業(yè)務組件 8
1.3.6 企業(yè)信息系統(tǒng)層 9
1.4 Java EE容器 9
1.4.1 容器服務 10
1.4.2 容器類型 10
1.5 Web服務支持 11
1.5.1 XML 12
1.5.2 SOAP傳輸協(xié)議 12
1.5.3 WSDL標準格式 12
1.6 Java EE應用程序裝配與部署 13
1.7 打包應用程序 13
1.8 開發(fā)中的角色分工 14
1.8.1 Java EE產(chǎn)品提供商 15
1.8.2 工具提供商 15
1.8.3 應用組件提供商 15
1.8.4 應用程序裝配者 15
1.8.5 應用程序部署者和管理員 16
1.9 Java EE 6 API 16
1.9.1 企業(yè)JavaBeans技術 19
1.9.2 Java Servlet技術 20
1.9.3 JavaServer Faces技術 20
1.9.4 JavaServer Pages技術 20
1.9.5 JavaServer Pages標準標簽庫 21
1.9.6 Java Persistence API 21
1.9.7 Java Transaction API 21
1.9.8 支持REST式Web服務的Java API 21
1.9.9 Managed Beans 21
1.9.10 Java EE平臺(JSR 299)的上下文與依賴注入 22
1.9.11 Java Dependency Injection(JSR 330) 22
1.9.12 Bean Validation 22
1.9.13 Java Message Service API 22
1.9.14 Java EE Connector架構 22
1.9.15 JavaMail API 23
1.9.16 Java容器授權合約 23
1.9.17 Java容器認證服務提供商接口 23
1.10 Java標準版6.0中的Java EE6 API 23
1.10.1 Java Database ConnectivityAPI 24
1.10.2 Java命名和目錄接口API 24
1.10.3 JavaBeans ActivationFramework 24
1.10.4 Java XML API 24
1.10.5 Java XML綁定架構 25
1.10.6 支持帶附件的SOAP消息API 25
1.10.7 基于XML的Java WebServices API 25
1.10.8 Java認證與授權服務 25
1.11 GlassFish服務器工具 26
第2章 使用教程示例 27
2.1 必備軟件 27
2.1.1 Java 平臺標準版(J2SE) 27
2.1.2 Java EE 6 SDK 28
2.1.3 Java EE 6教程組件 28
2.1.4 NetBeans集成開發(fā)環(huán)境 29
2.1.5 Apache Ant 30
2.2 啟動和關閉GlassFish服務器 30
2.3 啟動管理控制臺 31
2.4 啟動和關閉Java DB服務器 32
2.5 構建示例 32
2.6 教程示例的目錄結構 32
2.7 獲取最新版的教程 33
2.8 調(diào)試Java EE應用 33
2.8.1 服務器日志 33
2.8.2 調(diào)試器 34
第二部分 Web層
第3章 Web應用初步 36
3.1 Web應用 36
3.2 Web應用的生命周期 37
3.3 Web模塊示例——hello1 39
3.3.1 hello1 Web模塊分析 40
3.3.2 打包Web模塊 42
3.3.3 部署Web模塊 43
3.3.4 運行已部署的Web模塊 44
3.3.5 查看已部署的Web模塊 44
3.3.6 更新Web模塊 45
3.3.7 動態(tài)加載 45
3.3.8 卸載Web模塊 46
3.4 配置Web應用之hello2示例 46
3.4.1 映射URL到Web組件 46
3.4.2 hello2Web模塊分析 47
3.4.3 構建、打包、部署以及運行hello2應用 48
3.4.4 設置welcome文件 49
3.4.5 設置上下文以及初始化參數(shù) 49
3.4.6 映射錯誤信息到出錯頁面 50
3.4.7 資源引用聲明 51
3.5 Web應用的更多信息 52
第4章 JSF技術 54
4.1 什么是JSF應用 54
4.2 JSF技術的優(yōu)勢 55
4.3 創(chuàng)建簡單的JSF應用 56
4.3.1 開發(fā)后臺bean 57
4.3.2 創(chuàng)建網(wǎng)頁 57
4.3.3 映射FacesServlet實例 58
4.3.4 hello應用程序的生命周期 58
4.4 有關JSF技術的更多信息 59
第5章 Facelets介紹 60
5.1 什么是Facelets 60
5.2 開發(fā)簡單的Facelets應用 61
5.2.1 創(chuàng)建Facelets應用 61
5.2.2 配置應用 64
5.2.3 構建、打包、部署以及運行guessnumber Facelets示例 65
5.3 模板化 66
5.4 復合組件 68
5.5 資源 70
第6章 表達式語言 72
6.1 EL綜述 72
6.2 即時求值和延后求值語法 73
6.2.1 即時求值 73
6.2.2 延后求值 73
6.3 值表達式和方法表達式 74
6.3.1 值表達式 74
6.3.2 方法表達式 77
6.4 定義標簽屬性類型 79
6.5 文本表達式 80
6.6 運算符 80
6.7 保留字 81
6.8 EL表達式的例子 81
第7章 在網(wǎng)頁中使用JSF技術 83
7.1 設置頁面 83
7.2 使用HTML標簽為頁面添加組件 84
7.2.1 組件標簽的通用屬性 85
7.2.2 添加HTML的head和body標簽 87
7.2.3 添加表單組件 88
7.2.4 文本組件 88
7.2.5 使用命令型組件標簽執(zhí)行動作和導航 92
7.2.6 用h:graphicImage添加圖像和圖形 93
7.2.7 用h:panelGrid和h:panelGroup實現(xiàn)組件布局 93
7.2.8 顯示選項組件 94
7.2.9 顯示多項選擇組件 96
7.2.10 使用f:selectItem和f:selectItems標簽 97
7.2.11 使用數(shù)據(jù)綁定表組件 98
7.2.12 使用h:message和h:messages顯示出錯信息 101
7.2.13 使用h:button和h:link標簽創(chuàng)建可加入收藏夾的URL 102
7.2.14 使用視圖參數(shù)配置可加入收藏夾的URL 102
7.2.15 使用h:output標簽實現(xiàn)資源再定位 103
7.3 核心標簽 104
第8章 轉(zhuǎn)換器、監(jiān)聽器和驗證器 106
8.1 標準轉(zhuǎn)換器 106
8.1.1 轉(zhuǎn)換組件的值 107
8.1.2 DateTimeConverter 108
8.1.3 NumberConverter 109
8.2 為組件注冊監(jiān)聽器 110
8.2.1 為組件注冊一個值變更監(jiān)聽器 110
8.2.2 為組件注冊動作監(jiān)聽器 111
8.3 標準驗證器 111
8.3.1 驗證組件的值 112
8.3.2 LongRange Validator 112
8.4 引用后臺bean的方法 112
8.4.1 引用執(zhí)行頁面導航的方法 113
8.4.2 引用處理動作事件的方法 113
8.4.3 引用執(zhí)行驗證邏輯的方法 114
8.4.4 引用處理值變更事件的方法 114
第9章 用JSF技術開發(fā)Web應用 115
9.1 后臺bean 115
9.1.1 創(chuàng)建后臺bean 115
9.1.2 使用EL引用后臺bean 116
9.2 為后臺bean的屬性編寫代碼 117
9.2.1 為綁定到組件值的屬性編寫代碼 118
9.2.2 為綁定到組件實例的屬性編寫代碼 122
9.2.3 為綁定到轉(zhuǎn)換器、監(jiān)聽器以及驗證器的屬性編寫代碼 123
9.3 為后臺bean的方法編寫代碼 124
9.3.1 編寫處理導航的方法 124
9.3.2 編寫處理動作事件的方法 125
9.3.3 編寫執(zhí)行驗證的方法 126
9.3.4 編寫處理值變更事件的方法 126
9.4 使用Bean驗證 127
第10章 Java Servlet技術 130
10.1 什么是servlet 130
10.2 servlet生命周期 131
10.2.1 處理servlet生命周期內(nèi)的事件 131
10.2.2 處理servlet錯誤 132
10.3 共享信息 132
10.3.1 有作用域的對象 133
10.3.2 控制對共享資源的并發(fā)訪問 133
10.4 創(chuàng)建以及初始化servlet 133
10.5 編寫service方法 134
10.5.1 從請求里提取信息 134
10.5.2 構造應答信息 135
10.6 過濾請求和應答 136
10.6.1 編程實現(xiàn)過濾器 136
10.6.2 通過編程定制請求和應答 137
10.6.3 設定過濾器映射 138
10.7 調(diào)用其他Web資源 139
10.7.1 在應答里包含其他資源 139
10.7.2 轉(zhuǎn)交控制權給其他Web組件 140
10.8 訪問Web上下文 140
10.9 維護客戶端狀態(tài) 140
10.9.1 訪問會話 141
10.9.2 把對象關聯(lián)到會話 141
10.9.3 會話管理 141
10.9.4 會話追蹤 142
10.10 結束servlet 142
10.10.1 追蹤服務請求 142
10.10.2 將關閉事件通知方法 143
10.10.3 妥善處理長時方法 143
10.11 mood示例應用 144
10.11.1 mood示例應用里的組件 144
10.11.2 構建、打包、部署以及運行mood示例 144
10.12 有關Java Servlet技術的更多信息 145
第三部分 Web服務
第11章 Web服務簡介 148
11.1 什么是Web服務 148
11.2 Web服務的類型 148
11.2.1 “重量級”的Web服務 148
11.2.2 REST式Web服務 149
11.3 Web服務類型的選用 150
第12章 用JAX-WS構建Web服務 151
12.1 用JAX-WS開發(fā)簡單的Web服務和客戶端 152
12.1.1 對JAX-WS端點的要求 152
12.1.2 編寫服務端點實現(xiàn)類 153
12.1.3 構建、打包及部署服務 153
12.1.4 測試Web服務端點中的方法 154
12.1.5 簡單的JAX-WS應用客戶端 155
12.1.6 簡單的JAX-WSWeb客戶端 156
12.2 JAX-WS支持的類型 159
12.3 Web服務的互操作性與JAX-WS 159
12.4 有關JAX-WS的更多信息 159
第13章 用JAX-RS構建REST式Web服務 160
13.1 什么是REST式Web服務 160
13.2 創(chuàng)建一個REST式根資源類 161
13.2.1 用JAX-RS開發(fā)REST式Web服務 161
13.2.2 JAX-RS應用概述 162
13.2.3 @Path注解和URI路徑模板 163
13.2.4 響應HTTP資源 165
13.2.5 使用@Consumes和@Produces定制請求和應答 167
13.2.6 從請求里提取參數(shù) 169
13.3 JAX-RS的示例應用 172
13.3.1 REST式Web服務 172
13.3.2 rsvp示例應用 174
13.3.3 真實示例 176
13.4 有關JAX-RS的更多信息 176
第四部分 企業(yè)bean
第14章 企業(yè)bean 180
14.1 什么是企業(yè)bean 180
14.1.1 使用企業(yè)bean的好處 180
14.1.2 何時使用企業(yè)bean 181
14.1.3 企業(yè)bean的類型 181
14.2 什么是會話bean 181
14.2.1 會話bean的類型 181
14.2.2 何時使用會話bean 182
14.3 什么是消息驅(qū)動bean 183
14.3.1 消息驅(qū)動bean與會話bean的區(qū)別 183
14.3.2 何時使用消息驅(qū)動bean 184
14.4 訪問企業(yè)bean 184
14.4.1 在客戶端中使用企業(yè)bean 185
14.4.2 遠程還是本地訪問 185
14.4.3 本地客戶端 186
14.4.4 遠程客戶端 187
14.4.5 Web服務客戶端 188
14.4.6 方法的參數(shù)和方法的訪問 189
14.5 企業(yè)bean的內(nèi)容 189
14.5.1 在EJB的JAR模塊中打包企業(yè)bean 189
14.5.2 在WAR模塊中打包企業(yè)bean 190
14.6 企業(yè)bean的命名規(guī)范 191
14.7 企業(yè)bean的生命周期 191
14.7.1 有狀態(tài)會話bean的生命周期 191
14.7.2 無狀態(tài)會話bean的生命周期 192
14.7.3 單件會話bean的生命周期 193
14.7.4 消息驅(qū)動bean的生命周期 193
14.8 有關企業(yè)bean的更多信息 194
第15章 企業(yè)bean應用初步 195
15.1 創(chuàng)建企業(yè)bean 195
15.1.1 編寫企業(yè)bean 的類 195
15.1.2 創(chuàng)建converter的Web客戶端 196
15.1.3 構建、打包、部署及運行converter示例 197
15.2 修改Java EE應用 198
第16章 運行企業(yè)bean示例 200
16.1 cart示例 200
16.1.1 業(yè)務接口 201
16.1.2 會話bean類 201
16.1.3 @Remove方法 204
16.1.4 輔助類 204
16.1.5 構建、打包、部署及運行cart示例 204
16.2 單件會話bean示例counter 206
16.2.1 創(chuàng)建單件會話bean 206
16.2.2 counter示例的架構 209
16.2.3 構建、打包、部署及運行counter示例 211
16.3 Web服務示例helloservice 212
16.3.1 Web服務端點的實現(xiàn)類 212
16.3.2 無狀態(tài)會話bean的實現(xiàn)類 213
16.3.3 構建、打包、部署及測試helloservice示例 213
16.4 使用定時器服務 214
16.4.1 創(chuàng)建日歷型定時器表達式 215
16.4.2 可編程定時器 217
16.4.3 自動定時器 218
16.4.4 取消及保存定時器 219
16.4.5 獲得定時器的信息 219
16.4.6 事務和定時器 219
16.4.7 timersession示例 219
16.4.8 構建、打包、部署及運行timersession示例 221
16.5 處理異?!?22
第五部分 Java EE平臺的上下文與依賴注入
第17章 Java EE平臺的上下文與依賴注入入門 226
17.1 CDI概述 227
17.2 關于bean 227
17.3 關于托管bean 228
17.4 可注入對象bean 228
17.5 使用限定詞 229
17.6 注入bean 230
17.7 使用作用域 230
17.8 為bean設定EL名稱 231
17.9 增加存取方法 232
17.10 在Facelets頁面中使用托管bean 232
17.11 使用Producer方法注入對象 233
17.12 配置CDI應用 233
17.13 有關CDI的更多信息 234
第18章 運行簡單的上下文與依賴注入示例 235
18.1 CDI示例simplegreeting 235
18.1.1 simplegreeting的源文件 235
18.1.2 Facelets模板和頁面 236
18.1.3 配置文件 237
18.1.4 構建、打包、部署及運行CDI示例simplegreeting 237
18.2 CDI示例guessnumber 239
18.2.1 guessnumber的源文件 239
18.2.2 Facelets頁面 243
18.2.3 構建、打包、部署及運行CDI示例guessnumber 244
第六部分 持久化
第19章 Java Persistence API簡介 248
19.1 實體 248
19.1.1 實體類的需求 248
19.1.2 實體類的持久化字段和屬性 249
19.1.3 實體里的主鍵 253
19.1.4 實體關系的多樣性 254
19.1.5 實體關系的方向性 255
19.1.6 實體里的可嵌入類 256
19.2 實體繼承 257
19.2.1 抽象實體 257
19.2.2 映射超類 258
19.2.3 非實體超類 258
19.2.4 實體繼承映射策略 259
19.3 管理實體 261
19.3.1 EntityManager接口 261
19.3.2 持久化單元 264
19.4 查詢實體 265
19.5 有關Persistence的更多信息 266
第20章 運行Persistence示例 267
20.1 order應用 267
20.1.1 order示例中的實體關系 267
20.1.2 order應用里的主鍵 269
20.1.3 映射多個數(shù)據(jù)庫表的實體 272
20.1.4 order應用里的級聯(lián)操作 272
20.1.5 order應用里的BLOB和CLOB類型 273
20.1.6 order應用里的時間類型 273
20.1.7 管理order應用里的實體 273
20.1.8 構建、打包、部署以及運行order應用 275
20.2 roster應用 276
20.2.1 roster應用里的關系 276
20.2.2 roster應用里的實體繼承關系 277
20.2.3 roster里的Criteria查詢 278
20.2.4 roster應用里的自動建表特性 280
20.2.5 構建、打包、部署以及運行roster應用 280
20.3 address-book應用 282
20.3.1 address-book應用里的Bean驗證約束 282
20.3.2 為address-book應用里的約束指定出錯信息 283
20.3.3 驗證JSF應用中輸入的Contact數(shù)據(jù) 283
20.3.4 構建、打包、部署以及運行address-book應用 284
第21章 Java Persistence查詢語言 286
21.1 查詢語言術語 286
21.2 使用Java Persistence查詢語言創(chuàng)建查詢 287
21.2.1 查詢里的命名參數(shù) 287
21.2.2 查詢里的位置參數(shù) 288
21.3 查詢語言的簡要語法 288
21.3.1 選擇語句 288
21.3.2 更新和刪除語句 289
21.4 查詢示例 289
21.4.1 簡單查詢 289
21.4.2 需定位到相關實體的查詢 290
21.4.3 使用其他條件表達式的查詢 291
21.4.4 批量更新和刪除 292
21.5 查詢語言語法全本 293
21.5.1 BNF符號 293
21.5.2 Java Persistence查詢語言的BNF語法 293
21.5.3 FROM語句 297
21.5.4 路徑表達式 300
21.5.5 WHERE語句 301
21.5.6 SELECT語句 309
21.5.7 ORDER BY 語句 310
21.5.8 GROUP BY和HAVING語句 311
第22章 使用Criteria API構造查詢 312
22.1 Criteria和Metamodel API概述 312
22.2 使用Metamodel API為實體類建模 313
22.3 使用Criteria API和Metamodel API創(chuàng)建類型安全的基本查詢 314
22.3.1 創(chuàng)建Criteria查詢 315
22.3.2 查詢根 315
22.3.3 使用join查詢關聯(lián)關系 316
22.3.4 Criteria查詢中的路徑定位 316
22.3.5 過濾Criteria查詢結果 317
22.3.6 處理Criteria查詢結果 319
22.3.7 查詢執(zhí)行 320
第七部分 安全
第23章 Java EE平臺安全入門 322
23.1 Java EE安全性概述 322
23.1.1 簡單的安全應用示例 323
23.1.2 安全機制的特性 325
23.1.3 應用安全的特征 325
23.2 安全機制 326
23.2.1 Java SE安全機制 326
23.2.2 Java EE安全機制 327
23.3 為容器增加安全性 329
23.3.1 用注解為應用增加安全性 329
23.3.2 用部署描述文件為應用增加安全性 329
23.3.3 使用編程式的安全機制 330
23.4 為GlassFish服務器增加安全性 330
23.5 使用域、用戶、用戶組和角色 330
23.5.1 什么是域、用戶、用戶組和角色 331
23.5.2 在GlassFish服務器中管理用戶和用戶組 333
23.5.3 設置安全角色 334
23.5.4 將角色映射至用戶和用戶組 335
23.6 使用SSL建立安全連接 336
23.6.1 驗證及配置SSL 337
23.6.2 使用數(shù)字證書 337
23.7 有關安全性的更多信息 339
第24章 Web應用安全化入門 341
24.1 Web應用安全性概述 341
24.2 為Web應用增加安全性 342
24.2.1 設定安全限制 343
24.2.2 設定認證機制 345
24.2.3 聲明安全角色 350
24.3 在Web應用中使用編程式安全機制 351
24.3.1 以編程方式實現(xiàn)用戶認證 351
24.3.2 以編程方式檢查發(fā)起者身份 353
24.3.3 編程安全性的代碼示例 353
24.3.4 聲明并關聯(lián)角色引用 354
24.4 為Web應用增加安全性的示例 355
24.4.1 在servlet中使用基本認證的示例 356
24.4.2 在JSF中使用表單認證機制的示例 359
第25章 企業(yè)應用安全化入門 363
25.1 為企業(yè)bean增加安全性 363
25.1.1 使用聲明方式為企業(yè)bean增加安全性 365
25.1.2 使用編程方式為企業(yè)bean增加安全性 369
25.1.3 用于身份傳播的安全標識(run-as) 370
25.1.4 部署經(jīng)過安全加固的企業(yè)bean 371
25.2 為企業(yè)bean增加安全性的一組示例 371
25.2.1 使用聲明方式為企業(yè)bean增加安全性的示例 371
25.2.2 使用編程方式為企業(yè)bean增加安全性的示例 375
25.3 為應用客戶端增加安全性 377
25.3.1 使用登錄模塊 377
25.3.2 使用編程式用戶登錄 378
25.4 為企業(yè)信息系統(tǒng)應用增加安全性 378
25.4.1 容器管理登錄 378
25.4.2 組件管理登錄 379
25.4.3 配置資源適配器安全性 379
第八部分 Java EE支持技術
第26章 Java EE支持技術簡介 384
26.1 事務 384
26.2 資源 384
26.2.1 Java EE連接器架構和資源適配器 384
26.2.2 Java Message Service API 385
26.2.3 Java數(shù)據(jù)庫連接軟件 385
第27章 事務 386
27.1 什么是事務 386
27.2 容器托管的事務 387
27.2.1 事務屬性 387
27.2.2 回滾容器托管的事務 390
27.2.3 同步會話bean的實例變量 390
27.2.4 容器托管事務里不允許使用的方法 391
27.3 bean托管事務 391
27.3.1 JTA事務 392
27.3.2 不提交的返回 392
27.3.3 bean托管事務里不允許使用的方法 392
27.4 事務超時 392
27.5 更新多個數(shù)據(jù)庫中的數(shù)據(jù) 393
27.6 Web組件里的事務 394
27.7 有關事務的更多信息 394
第28章 資源連接 395
28.1 資源和JNDI命名 395
28.2 DataSource對象和連接池 396
28.3 資源注入 397
28.3.1 字段級別的注入方式 398
28.3.2 方法級別的注入方式 398
28.3.3 類級別的注入方式 399
28.4 資源適配器和契約 399
28.4.1 管理契約 400
28.4.2 通用工作上下文契約 401
28.4.3 外向型和內(nèi)向型契約 401
28.5 元數(shù)據(jù)注解 402
28.6 公共客戶端接口 404
28.7 參考資源 404

章節(jié)摘錄

版權頁:   插圖:   還需要使用部署描述文件進行安全設定。認證機制必須在服務器上進行配置才能生效?;菊J證機制是GlassFish服務器的默認認證方法。 本書將介紹如何通過為企業(yè)應用的業(yè)務方法增加訪問控制注解,來實現(xiàn)基于用戶名和密碼的認證機制。 為了簡化部署人員的工作,應用開發(fā)人員可以定義安全角色。安全角色是一組權限的組合,特定類型的用戶必須具備這些權限才可以訪問應用。例如,在一個工資單管理系統(tǒng)中,某些用戶可查看自己的工資信息(即員工),某些用戶可以查看其他用戶的工資信息(如經(jīng)理),某些用戶可以修改其他用戶的工資信息(如人事部門)。應用開發(fā)人員將負責確定應用的潛在用戶,以及哪些用戶可以訪問哪些方法,即用戶與方法訪問的對應關系。于是,應用開發(fā)人員為企業(yè)bean的類或方法增加注解,聲明授權訪問方法的用戶類型。 關于如何通過注解的方式聲明授權用戶,將在25.1.1節(jié)中的“通過角色聲明指定授權用戶”進行介紹。 如果使用某種注解定義方法的訪問權限,則部署系統(tǒng)在運行并收到請求時,將自動觸發(fā)用戶名和密碼的驗證。在這種認證機制中,用戶被提示輸入用戶名和密碼。這些數(shù)據(jù)將被傳送至服務器端,與用戶數(shù)據(jù)庫中的已知用戶信息進行比較。如果找到用戶且密碼匹配,則服務器將比較用戶的角色與被授權訪問該方法的角色。如果用戶認證通過,且具備可訪問該方法的角色,則數(shù)據(jù)將返回給用戶。 25.1.1節(jié)將詳細討論如何實現(xiàn)聲明式安全性。 編程式安全性對于企業(yè)bean,嵌入至業(yè)務方法中的代碼片段將以編程的方式訪問調(diào)用者的用戶信息,并使用該信息進行進一步的判定。當聲明式的安全機制不能完全滿足應用的特定安全需求時,編程式安全機制是一種重要的補充手段。 通常來說,應用的安全策略應該對企業(yè)bean中的業(yè)務方法透明,且由容器強制執(zhí)行。本章介紹的編程式安全性API并不常用。當企業(yè)bean的業(yè)務方法需要訪問有關安全的上下文信息時,如按照時段設定訪問權限,或為某個角色增加其他重要檢查時,才會用到這些API。 25.1.2節(jié)將詳細討論編程式安全性。 本章中講述的某些內(nèi)容,需要讀者首先閱讀并掌握第14章、第15章及第23章的內(nèi)容。 如前所述,企業(yè)bean運行在EJB容器中,對于GlassFish服務器來說,EJB容器是一個應用運行時環(huán)境。如圖25—1所示。 本節(jié)將討論如何為Java EE應用增加安全性。Java EE應用通常由一個或多個模塊組成,如EJBJAR文件,并打包至EAR文件中(保存應用的歸檔文件)。安全注解用在Java的類文件中,設定授權用戶,以及聲明使用基本認證機制(基于用戶名和密碼)。 企業(yè)bean通常為Web應用提供業(yè)務邏輯。在這種場景中,將企業(yè)bean打包至Web應用的WAR模塊中,會簡化應用的部署過程和組織方式。企業(yè)bean可以以Java類文件的形式打包至wAR模塊中,或先打包成JAR文件,再集成至WAR模塊中。

編輯推薦

Oracle Java EE 6文檔團隊成員精準解說Java EE 6平臺以任務為導向,通過示例闡釋企業(yè)應用開發(fā)最新API和平臺特性詳解

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    Java EE 6權威指南 PDF格式下載


用戶評論 (總計12條)

 
 

  •   如果想快速入門J2EE的話,選這本,準沒錯的。
  •   這本是不足夠的~~~需要結合官網(wǎng)的文檔一起看~...
  •   還沒看呢,上課的教材
  •   明確說了叫基礎篇,也就是入門看吧
  •   估計基礎不夠 看不大懂
  •   很好,對自己幫助很大,靜心學習提高很好。謝謝
  •   內(nèi)容還可以,指導學習方向,適合作為大學教材
  •   范圍光但是每一點介紹的都很簡略,而且書不是很厚,
  •   首先,這本書就是Java EE 6 Tutorial的一個實體書版本,所以有英文基礎的朋友還是直接看文檔吧,畢竟不花錢而且還能方便的存放到pad上。連接給出:[...]然后吐槽一下翻譯,Tutorial居然能給翻譯成權威指南,真不知道該說什么好了。。。還有EJB, Enterprise Java Bean有時候叫EJB,有時候給翻譯成企業(yè)bean,讓我說點什么好。。。說明一下給分,3星是因為我真的沒必要將一本網(wǎng)上文檔的書籍版本引入國內(nèi)并翻譯,書籍本身的內(nèi)容肯定是很棒的,畢竟有能比Java EE團隊的人更適合講Java EE的入門級內(nèi)容呢?
  •   感覺很好不錯 感覺很好不錯 感覺很好不錯 感覺 感覺很好不錯 感覺很好不錯 感覺很好不錯 感覺 感覺很好不錯 感覺很好不錯 感覺很好不錯 感覺
  •   相當不錯!推薦!相當不錯!推薦!
  •   是對Java EE 6的一個總體上的介紹及示例,很適合了解Java EE 6平臺技術體系的人。其實Java EE每一項核心技術都可以作為一個專題深入展開,而作為整體介紹的書,該書挺好的;紙質(zhì)還可以,不會太差。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7