Java EE 6權(quán)威指南

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

前言

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

內(nèi)容概要

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

作者簡介

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

書籍目錄

目 錄
第一部分 簡介
第1章 綜述 2
1.1 Java EE 6平臺新特性 3
1.2 Java EE應(yīng)用模型 3
1.3 分布式多層應(yīng)用 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è)務(wù)組件 8
1.3.6 企業(yè)信息系統(tǒng)層 9
1.4 Java EE容器 9
1.4.1 容器服務(wù) 10
1.4.2 容器類型 10
1.5 Web服務(wù)支持 11
1.5.1 XML 12
1.5.2 SOAP傳輸協(xié)議 12
1.5.3 WSDL標(biāo)準(zhǔn)格式 12
1.6 Java EE應(yīng)用程序裝配與部署 13
1.7 打包應(yīng)用程序 13
1.8 開發(fā)中的角色分工 14
1.8.1 Java EE產(chǎn)品提供商 15
1.8.2 工具提供商 15
1.8.3 應(yīng)用組件提供商 15
1.8.4 應(yīng)用程序裝配者 15
1.8.5 應(yīng)用程序部署者和管理員 16
1.9 Java EE 6 API 16
1.9.1 企業(yè)JavaBeans技術(shù) 19
1.9.2 Java Servlet技術(shù) 20
1.9.3 JavaServer Faces技術(shù) 20
1.9.4 JavaServer Pages技術(shù) 20
1.9.5 JavaServer Pages標(biāo)準(zhǔn)標(biāo)簽庫 21
1.9.6 Java Persistence API 21
1.9.7 Java Transaction API 21
1.9.8 支持REST式Web服務(wù)的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架構(gòu) 22
1.9.15 JavaMail API 23
1.9.16 Java容器授權(quán)合約 23
1.9.17 Java容器認(rèn)證服務(wù)提供商接口 23
1.10 Java標(biāo)準(zhǔn)版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綁定架構(gòu) 25
1.10.6 支持帶附件的SOAP消息API 25
1.10.7 基于XML的Java WebServices API 25
1.10.8 Java認(rèn)證與授權(quán)服務(wù) 25
1.11 GlassFish服務(wù)器工具 26
第2章 使用教程示例 27
2.1 必備軟件 27
2.1.1 Java 平臺標(biāo)準(zhǔn)版(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 啟動和關(guān)閉GlassFish服務(wù)器 30
2.3 啟動管理控制臺 31
2.4 啟動和關(guān)閉Java DB服務(wù)器 32
2.5 構(gòu)建示例 32
2.6 教程示例的目錄結(jié)構(gòu) 32
2.7 獲取最新版的教程 33
2.8 調(diào)試Java EE應(yīng)用 33
2.8.1 服務(wù)器日志 33
2.8.2 調(diào)試器 34
第二部分 Web層
第3章 Web應(yīng)用初步 36
3.1 Web應(yīng)用 36
3.2 Web應(yīng)用的生命周期 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應(yīng)用之hello2示例 46
3.4.1 映射URL到Web組件 46
3.4.2 hello2Web模塊分析 47
3.4.3 構(gòu)建、打包、部署以及運行hello2應(yīng)用 48
3.4.4 設(shè)置welcome文件 49
3.4.5 設(shè)置上下文以及初始化參數(shù) 49
3.4.6 映射錯誤信息到出錯頁面 50
3.4.7 資源引用聲明 51
3.5 Web應(yīng)用的更多信息 52
第4章 JSF技術(shù) 54
4.1 什么是JSF應(yīng)用 54
4.2 JSF技術(shù)的優(yōu)勢 55
4.3 創(chuàng)建簡單的JSF應(yīng)用 56
4.3.1 開發(fā)后臺bean 57
4.3.2 創(chuàng)建網(wǎng)頁 57
4.3.3 映射FacesServlet實例 58
4.3.4 hello應(yīng)用程序的生命周期 58
4.4 有關(guān)JSF技術(shù)的更多信息 59
第5章 Facelets介紹 60
5.1 什么是Facelets 60
5.2 開發(fā)簡單的Facelets應(yīng)用 61
5.2.1 創(chuàng)建Facelets應(yīng)用 61
5.2.2 配置應(yīng)用 64
5.2.3 構(gòu)建、打包、部署以及運行g(shù)uessnumber Facelets示例 65
5.3 模板化 66
5.4 復(fù)合組件 68
5.5 資源 70
第6章 表達(dá)式語言 72
6.1 EL綜述 72
6.2 即時求值和延后求值語法 73
6.2.1 即時求值 73
6.2.2 延后求值 73
6.3 值表達(dá)式和方法表達(dá)式 74
6.3.1 值表達(dá)式 74
6.3.2 方法表達(dá)式 77
6.4 定義標(biāo)簽屬性類型 79
6.5 文本表達(dá)式 80
6.6 運算符 80
6.7 保留字 81
6.8 EL表達(dá)式的例子 81
第7章 在網(wǎng)頁中使用JSF技術(shù) 83
7.1 設(shè)置頁面 83
7.2 使用HTML標(biāo)簽為頁面添加組件 84
7.2.1 組件標(biāo)簽的通用屬性 85
7.2.2 添加HTML的head和body標(biāo)簽 87
7.2.3 添加表單組件 88
7.2.4 文本組件 88
7.2.5 使用命令型組件標(biāo)簽執(zhí)行動作和導(dǎo)航 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標(biāo)簽 97
7.2.11 使用數(shù)據(jù)綁定表組件 98
7.2.12 使用h:message和h:messages顯示出錯信息 101
7.2.13 使用h:button和h:link標(biāo)簽創(chuàng)建可加入收藏夾的URL 102
7.2.14 使用視圖參數(shù)配置可加入收藏夾的URL 102
7.2.15 使用h:output標(biāo)簽實現(xiàn)資源再定位 103
7.3 核心標(biāo)簽 104
第8章 轉(zhuǎn)換器、監(jiān)聽器和驗證器 106
8.1 標(biāo)準(zhǔn)轉(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 標(biāo)準(zhǔn)驗證器 111
8.3.1 驗證組件的值 112
8.3.2 LongRange Validator 112
8.4 引用后臺bean的方法 112
8.4.1 引用執(zhí)行頁面導(dǎo)航的方法 113
8.4.2 引用處理動作事件的方法 113
8.4.3 引用執(zhí)行驗證邏輯的方法 114
8.4.4 引用處理值變更事件的方法 114
第9章 用JSF技術(shù)開發(fā)Web應(yīng)用 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 編寫處理導(dǎo)航的方法 124
9.3.2 編寫處理動作事件的方法 125
9.3.3 編寫執(zhí)行驗證的方法 126
9.3.4 編寫處理值變更事件的方法 126
9.4 使用Bean驗證 127
第10章 Java Servlet技術(shù) 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 構(gòu)造應(yīng)答信息 135
10.6 過濾請求和應(yīng)答 136
10.6.1 編程實現(xiàn)過濾器 136
10.6.2 通過編程定制請求和應(yīng)答 137
10.6.3 設(shè)定過濾器映射 138
10.7 調(diào)用其他Web資源 139
10.7.1 在應(yīng)答里包含其他資源 139
10.7.2 轉(zhuǎn)交控制權(quán)給其他Web組件 140
10.8 訪問Web上下文 140
10.9 維護(hù)客戶端狀態(tài) 140
10.9.1 訪問會話 141
10.9.2 把對象關(guān)聯(lián)到會話 141
10.9.3 會話管理 141
10.9.4 會話追蹤 142
10.10 結(jié)束servlet 142
10.10.1 追蹤服務(wù)請求 142
10.10.2 將關(guān)閉事件通知方法 143
10.10.3 妥善處理長時方法 143
10.11 mood示例應(yīng)用 144
10.11.1 mood示例應(yīng)用里的組件 144
10.11.2 構(gòu)建、打包、部署以及運行mood示例 144
10.12 有關(guān)Java Servlet技術(shù)的更多信息 145
第三部分 Web服務(wù)
第11章 Web服務(wù)簡介 148
11.1 什么是Web服務(wù) 148
11.2 Web服務(wù)的類型 148
11.2.1 “重量級”的Web服務(wù) 148
11.2.2 REST式Web服務(wù) 149
11.3 Web服務(wù)類型的選用 150
第12章 用JAX-WS構(gòu)建Web服務(wù) 151
12.1 用JAX-WS開發(fā)簡單的Web服務(wù)和客戶端 152
12.1.1 對JAX-WS端點的要求 152
12.1.2 編寫服務(wù)端點實現(xiàn)類 153
12.1.3 構(gòu)建、打包及部署服務(wù) 153
12.1.4 測試Web服務(wù)端點中的方法 154
12.1.5 簡單的JAX-WS應(yīng)用客戶端 155
12.1.6 簡單的JAX-WSWeb客戶端 156
12.2 JAX-WS支持的類型 159
12.3 Web服務(wù)的互操作性與JAX-WS 159
12.4 有關(guān)JAX-WS的更多信息 159
第13章 用JAX-RS構(gòu)建REST式Web服務(wù) 160
13.1 什么是REST式Web服務(wù) 160
13.2 創(chuàng)建一個REST式根資源類 161
13.2.1 用JAX-RS開發(fā)REST式Web服務(wù) 161
13.2.2 JAX-RS應(yīng)用概述 162
13.2.3 @Path注解和URI路徑模板 163
13.2.4 響應(yīng)HTTP資源 165
13.2.5 使用@Consumes和@Produces定制請求和應(yīng)答 167
13.2.6 從請求里提取參數(shù) 169
13.3 JAX-RS的示例應(yīng)用 172
13.3.1 REST式Web服務(wù) 172
13.3.2 rsvp示例應(yīng)用 174
13.3.3 真實示例 176
13.4 有關(guān)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 遠(yuǎn)程還是本地訪問 185
14.4.3 本地客戶端 186
14.4.4 遠(yuǎn)程客戶端 187
14.4.5 Web服務(wù)客戶端 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 有關(guān)企業(yè)bean的更多信息 194
第15章 企業(yè)bean應(yīng)用初步 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 構(gòu)建、打包、部署及運行converter示例 197
15.2 修改Java EE應(yīng)用 198
第16章 運行企業(yè)bean示例 200
16.1 cart示例 200
16.1.1 業(yè)務(wù)接口 201
16.1.2 會話bean類 201
16.1.3 @Remove方法 204
16.1.4 輔助類 204
16.1.5 構(gòu)建、打包、部署及運行cart示例 204
16.2 單件會話bean示例counter 206
16.2.1 創(chuàng)建單件會話bean 206
16.2.2 counter示例的架構(gòu) 209
16.2.3 構(gòu)建、打包、部署及運行counter示例 211
16.3 Web服務(wù)示例helloservice 212
16.3.1 Web服務(wù)端點的實現(xiàn)類 212
16.3.2 無狀態(tài)會話bean的實現(xiàn)類 213
16.3.3 構(gòu)建、打包、部署及測試helloservice示例 213
16.4 使用定時器服務(wù) 214
16.4.1 創(chuàng)建日歷型定時器表達(dá)式 215
16.4.2 可編程定時器 217
16.4.3 自動定時器 218
16.4.4 取消及保存定時器 219
16.4.5 獲得定時器的信息 219
16.4.6 事務(wù)和定時器 219
16.4.7 timersession示例 219
16.4.8 構(gòu)建、打包、部署及運行timersession示例 221
16.5 處理異?!?22
第五部分 Java EE平臺的上下文與依賴注入
第17章 Java EE平臺的上下文與依賴注入入門 226
17.1 CDI概述 227
17.2 關(guān)于bean 227
17.3 關(guān)于托管bean 228
17.4 可注入對象bean 228
17.5 使用限定詞 229
17.6 注入bean 230
17.7 使用作用域 230
17.8 為bean設(shè)定EL名稱 231
17.9 增加存取方法 232
17.10 在Facelets頁面中使用托管bean 232
17.11 使用Producer方法注入對象 233
17.12 配置CDI應(yīng)用 233
17.13 有關(guān)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 構(gòu)建、打包、部署及運行CDI示例simplegreeting 237
18.2 CDI示例guessnumber 239
18.2.1 guessnumber的源文件 239
18.2.2 Facelets頁面 243
18.2.3 構(gòu)建、打包、部署及運行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 實體關(guān)系的多樣性 254
19.1.5 實體關(guān)系的方向性 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 有關(guān)Persistence的更多信息 266
第20章 運行Persistence示例 267
20.1 order應(yīng)用 267
20.1.1 order示例中的實體關(guān)系 267
20.1.2 order應(yīng)用里的主鍵 269
20.1.3 映射多個數(shù)據(jù)庫表的實體 272
20.1.4 order應(yīng)用里的級聯(lián)操作 272
20.1.5 order應(yīng)用里的BLOB和CLOB類型 273
20.1.6 order應(yīng)用里的時間類型 273
20.1.7 管理order應(yīng)用里的實體 273
20.1.8 構(gòu)建、打包、部署以及運行order應(yīng)用 275
20.2 roster應(yīng)用 276
20.2.1 roster應(yīng)用里的關(guān)系 276
20.2.2 roster應(yīng)用里的實體繼承關(guān)系 277
20.2.3 roster里的Criteria查詢 278
20.2.4 roster應(yīng)用里的自動建表特性 280
20.2.5 構(gòu)建、打包、部署以及運行roster應(yīng)用 280
20.3 address-book應(yīng)用 282
20.3.1 address-book應(yīng)用里的Bean驗證約束 282
20.3.2 為address-book應(yīng)用里的約束指定出錯信息 283
20.3.3 驗證JSF應(yīng)用中輸入的Contact數(shù)據(jù) 283
20.3.4 構(gòu)建、打包、部署以及運行address-book應(yīng)用 284
第21章 Java Persistence查詢語言 286
21.1 查詢語言術(shù)語 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 需定位到相關(guān)實體的查詢 290
21.4.3 使用其他條件表達(dá)式的查詢 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 路徑表達(dá)式 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構(gòu)造查詢 312
22.1 Criteria和Metamodel API概述 312
22.2 使用Metamodel API為實體類建?!?13
22.3 使用Criteria API和Metamodel API創(chuàng)建類型安全的基本查詢 314
22.3.1 創(chuàng)建Criteria查詢 315
22.3.2 查詢根 315
22.3.3 使用join查詢關(guān)聯(lián)關(guān)系 316
22.3.4 Criteria查詢中的路徑定位 316
22.3.5 過濾Criteria查詢結(jié)果 317
22.3.6 處理Criteria查詢結(jié)果 319
22.3.7 查詢執(zhí)行 320
第七部分 安全
第23章 Java EE平臺安全入門 322
23.1 Java EE安全性概述 322
23.1.1 簡單的安全應(yīng)用示例 323
23.1.2 安全機制的特性 325
23.1.3 應(yīng)用安全的特征 325
23.2 安全機制 326
23.2.1 Java SE安全機制 326
23.2.2 Java EE安全機制 327
23.3 為容器增加安全性 329
23.3.1 用注解為應(yīng)用增加安全性 329
23.3.2 用部署描述文件為應(yīng)用增加安全性 329
23.3.3 使用編程式的安全機制 330
23.4 為GlassFish服務(wù)器增加安全性 330
23.5 使用域、用戶、用戶組和角色 330
23.5.1 什么是域、用戶、用戶組和角色 331
23.5.2 在GlassFish服務(wù)器中管理用戶和用戶組 333
23.5.3 設(shè)置安全角色 334
23.5.4 將角色映射至用戶和用戶組 335
23.6 使用SSL建立安全連接 336
23.6.1 驗證及配置SSL 337
23.6.2 使用數(shù)字證書 337
23.7 有關(guān)安全性的更多信息 339
第24章 Web應(yīng)用安全化入門 341
24.1 Web應(yīng)用安全性概述 341
24.2 為Web應(yīng)用增加安全性 342
24.2.1 設(shè)定安全限制 343
24.2.2 設(shè)定認(rèn)證機制 345
24.2.3 聲明安全角色 350
24.3 在Web應(yīng)用中使用編程式安全機制 351
24.3.1 以編程方式實現(xiàn)用戶認(rèn)證 351
24.3.2 以編程方式檢查發(fā)起者身份 353
24.3.3 編程安全性的代碼示例 353
24.3.4 聲明并關(guān)聯(lián)角色引用 354
24.4 為Web應(yīng)用增加安全性的示例 355
24.4.1 在servlet中使用基本認(rèn)證的示例 356
24.4.2 在JSF中使用表單認(rèn)證機制的示例 359
第25章 企業(yè)應(yīng)用安全化入門 363
25.1 為企業(yè)bean增加安全性 363
25.1.1 使用聲明方式為企業(yè)bean增加安全性 365
25.1.2 使用編程方式為企業(yè)bean增加安全性 369
25.1.3 用于身份傳播的安全標(biāo)識(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 為應(yīng)用客戶端增加安全性 377
25.3.1 使用登錄模塊 377
25.3.2 使用編程式用戶登錄 378
25.4 為企業(yè)信息系統(tǒng)應(yīng)用增加安全性 378
25.4.1 容器管理登錄 378
25.4.2 組件管理登錄 379
25.4.3 配置資源適配器安全性 379
第八部分 Java EE支持技術(shù)
第26章 Java EE支持技術(shù)簡介 384
26.1 事務(wù) 384
26.2 資源 384
26.2.1 Java EE連接器架構(gòu)和資源適配器 384
26.2.2 Java Message Service API 385
26.2.3 Java數(shù)據(jù)庫連接軟件 385
第27章 事務(wù) 386
27.1 什么是事務(wù) 386
27.2 容器托管的事務(wù) 387
27.2.1 事務(wù)屬性 387
27.2.2 回滾容器托管的事務(wù) 390
27.2.3 同步會話bean的實例變量 390
27.2.4 容器托管事務(wù)里不允許使用的方法 391
27.3 bean托管事務(wù) 391
27.3.1 JTA事務(wù) 392
27.3.2 不提交的返回 392
27.3.3 bean托管事務(wù)里不允許使用的方法 392
27.4 事務(wù)超時 392
27.5 更新多個數(shù)據(jù)庫中的數(shù)據(jù) 393
27.6 Web組件里的事務(wù) 394
27.7 有關(guān)事務(wù)的更多信息 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é)摘錄

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

編輯推薦

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

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    Java EE 6權(quán)威指南 PDF格式下載


用戶評論 (總計12條)

 
 

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

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

京ICP備13047387號-7