出版時間:2008-7 出版社:清華大學出版社 作者:覃慶炎 等編著 頁數(shù):419
Tag標簽:無
前言
本書向廣大讀者介紹全面、系統(tǒng)而深入的輕量級J2EE構架技術及其相關的應用知識,具有如下特點?! ≈髁骷夹g解析:本書以Java開源項目為理念,選擇目前行業(yè)內前沿的輕量級J2EE架構技術為介紹對象,順應了行業(yè)的技術發(fā)展趨勢,將廣大讀者帶到嶄新的技術前沿,迎合了廣大讀者的學習需求。 代碼實例分析:本書以理論概念為輔,強調培養(yǎng)讀者的實際應用能力,在本書的各個章節(jié)中都通過代碼實例來逐步闡述構架技術的核心,減輕讀者的理論負擔,讓讀者通過實例來掌握本書各章節(jié)的核心。需要特別指出的是,讀者通過對本書實例的學習,學到的不僅僅是某一段代碼的重用,而是一個通用開發(fā)框架的重用,本書在編寫的思想上是一個巨大的創(chuàng)新?! 〗Y構主次分明:本書層次分明,由淺入深,共分為4篇,分別為基礎應用篇、基礎實例篇、高級應用篇、高級實例篇。以培養(yǎng)讀者的基礎能力為起點,讓讀者在學習了每一章之后都能掌握實際的構架能力,通過每一章節(jié)的積累,最終將讀者培養(yǎng)成全面的熟練的構架人才?! ≈v解通俗易懂:本書的講解符合廣大讀者的學習習慣,使用通俗的語言,摒棄高深的理論詞匯。在各章節(jié)中均以豐富的圖表說明為主,減少繁瑣的文字敘述,讓廣大讀者輕松、形象地學習?! ”緯w系完整,共分為4篇?! 〉?篇為基礎應用篇,包括第1章-第6章。本篇主要介紹了Hibernate、Struts以及Spring等相關的知識點,并對每一個知識點都引入一個快速入門的例子,對于學習一門新的技術體系,本書認為例子往往要比純粹的理論直接,對初學者的幫助更大?! 〉?篇為基礎實例篇,包括第7章-第9章。在本篇中本書引入了新聞發(fā)布系統(tǒng)、在線拍賣系統(tǒng)和博客系統(tǒng)等開發(fā)實例,這3個例子都是先從系統(tǒng)構架的角度開始闡述如何構建Web應用程序的框架,接著用一個應用實例來詳細地闡述如何在該框架上進行快速的開發(fā)。讀者通過這樣一個過程,不管學習的是什么例子,都能夠從本書所提供的例子中學到構架的思想以及詳細的構架過程,也就是說讀者可以從框架層次上面對例子進行復用,而不是低級的代碼級的復用?! 〉?篇為高級應用篇,包括第10章-第13章,本篇將會把讀者提高到一個更高的水平。本篇主要介紹開源搜索引擎Lucene、模板引擎Freemarker、安全框架Acegi、上傳組件Commons FileUpload的集成。同樣,在本篇中,為了使讀者能夠快速入門,采用了每講解一個知識點就詳細介紹一個快速入門例子。 第4篇為高級實例篇,包括第14章。在本篇中,也安排了一個代碼實例,這個例子的不同尋常之處是加入了一些前面所介紹的高級特性,這個例子不僅僅是代碼重用,重要的是這個例子所采用的框架本身就是一個成熟的Web應用的解決方案?! ”緯诰帉戇^程中引用了成都理工大學李申申的碩士論文,在此表示感謝。同時,還引用了其他材料,在此向原作者表示深切的感謝。 本書由覃慶炎、張偉編著,冼進審校。同時,參與本書編寫的人員還有馮強、曾德惠、許慶華、程亮、周聰、黃志平、胡松、邢永峰、邵軍、邊海龍、劉達因、趙婷、馬鴻娟、侯桐、趙光明、李勝、李輝、侯杰、王紅研、王磊、閆守紅、康涌泉、李歡、蔣杼倩、王小東、張森、張正亮、宋利梅、何群芬、程瑤等,在此一并表示感謝?! ∮捎诰帉憰r間倉促,書中疏漏之處在所難免,歡迎廣大讀者和同行批評指正。
內容概要
本書以Java開源項目為理念,以Spring+Hibernate+Struts開源項目為基礎,由淺入深地講解了輕量級J2EE系統(tǒng)構架技術的原理和開發(fā)過程。本書共分為4篇14章,分別以Hibernate、Struts、Spring開源項目為基礎詳細地介紹其開發(fā)原理和開發(fā)過程,基礎實例篇講解了新聞發(fā)布系統(tǒng)、在線拍賣系統(tǒng)和博客系統(tǒng)3個實用系統(tǒng)的開發(fā)過程,其他部分介紹了開源搜索引擎Lucene、模板引擎Freemarker、安全框架Acegi、上傳組件Commons FileUpload等內容,并介紹了科研資料信息管理系統(tǒng)的開發(fā)過程。 本書結構脈絡清晰,代碼實例豐富且針對性強,適合缺乏項目經驗的Java初、中級讀者學習使用,也可作為IT培訓班的教材。
書籍目錄
第一篇 基礎應用篇 第1章 輕量級J2EE構架技術 1.1 Java Web應用開發(fā)基礎知識 1.1.1 部署Web應用程序 1.1.2 組織Web應用程序源代碼 1.1.3 Web應用程序開發(fā)流程 1.2 輕量級開發(fā)技術 1.2.1 輕量級開發(fā)概念 1.2.2 輕量級容器 1.3 輕量級J2EE構架技術 1.3.1 業(yè)務邏輯層 1.3.2 數(shù)據(jù)持久層 1.3.3 視圖表現(xiàn)層 1.4 基于Java開源項目構架輕量級J2EE Web應用 1.4.1 Java開源Web框架Struts 1.4.2 Java開源持久層框架Hibernate 1.4.3 Java開源J2EE框架Spring 1.4.4 Spring+Hibernate+Struts整合構架輕量級J2EE Web應用 1.5 本章小結 第2章 搭建開發(fā)平臺 2.1 配置開發(fā)環(huán)境 2.1.1 下載和安裝JDK 2.1.2 下載和安裝開源應用服務器Tomcat 2.1.3 下載和安裝開源編譯工具Ant 2.1.4 下載和安裝開源數(shù)據(jù)庫MySQL 2.1.5 配置環(huán)境變量 2.2 安裝開發(fā)工具 2.2.1 下載和安裝開源開發(fā)工具Eclipse 2.2.2 下載和安裝Eclipse語言包 2.3 Ant下常用的Web項目構建腳本 2.3.1 Ant下的Web應用服務器控制 2.3.2 Ant下的Web項目構建與部署 2.3.3 Ant下的Web項目管理與監(jiān)控 2.4 開發(fā)一個簡單的Java Web測試實例 2.4.1 創(chuàng)建Java Web工程HelloWorld 2.4.2 編輯HelloWorld源代碼 2.4.3 部署HelloWorld 2.4.4 運行HelloWorld 2.5 本章小結 第3章 Spring+Hibernate+Struts整合應用入門實例:注冊登錄系統(tǒng) 3.1 概述 3.2 下載Spring、Struts、Hibernate以及相應的JAR包 3.2.1 配置運行環(huán)境 3.2.2 配置開發(fā)環(huán)境 3.3 注冊登錄系統(tǒng)的目錄結構 3.4 創(chuàng)建實體對象modle 3.4.1 基礎業(yè)務對象BaseObject 3.4.2 創(chuàng)建實體對象 3.5 創(chuàng)建DAO類 3.5.1 創(chuàng)建DAO基類 3.5.2 創(chuàng)建實體對象User和Role相應的DAO文件 3.5.3 實現(xiàn)實體對象User 和Role相應的DAO文件的接口 3.5.4 配置applicationContext-hibernate.xml文件 3.5.5 為DAO編寫單元測試代碼DaoTest 3.6 創(chuàng)建Managers 3.6.1 創(chuàng)建基礎邏輯處理對象Manager接口 3.6.2 創(chuàng)建實體對象User和Role的Managers接口 3.6.3 實現(xiàn)實體對象User和Role的Managers接口 3.6.4 配置applicationContext-service.xml文件 3.6.5 為Managers編寫單元測試代碼ManagerTest 3.7 新用戶注冊 3.7.1 創(chuàng)建UserForm、RoleForm以及AddressForm 3.7.2 創(chuàng)建SignupAction實現(xiàn)用戶注冊 3.7.3 為SignupAction編寫單元測試代碼SignupActionTest 3.8 用戶登錄 3.8.1 創(chuàng)建UserAction實現(xiàn)用戶登錄 3.8.2 為UserAction編寫單元測試代碼UserActionTest 3.9 部署運行注冊登錄系統(tǒng) 3.9.1 部署registration.war 3.9.2 配置數(shù)據(jù)庫 3.9.3 運行注冊登錄系統(tǒng) 3.10 本章小結 第4章 數(shù)據(jù)持久層技術Hibernate 4.1 Hibernate框架概述 4.1.1 概述 4.1.2 核心接口 4.2 Hibernate開發(fā)環(huán)境配置 4.2.1 下載Hibernate 4.2.2 下載和安裝Hibernate開發(fā)插件 4.2.3 創(chuàng)建由Spring控制的數(shù)據(jù)源 4.2.4 創(chuàng)建SessionFactory 4.2.5 配置Hibernate的基本屬性 4.3 Hibernate對象持久化 4.3.1 POJO概述 4.3.2 構建數(shù)據(jù)持久層的基類 4.3.3 實現(xiàn)equals()和hashCode()方法 4.4 Hibernate數(shù)據(jù)映射 4.4.1 基本的對象關系映射 4.4.2 一對多映射 4.4.3 多對一映射 4.5 數(shù)據(jù)庫操作的實現(xiàn) 4.5.1 編寫CRUD(創(chuàng)建、檢索、更改、刪除)操作的DAO(數(shù)據(jù)進入層)接口 4.5.2 編寫applicationContext-hibernate. xml文件 4.6 本章小結 第5章 表現(xiàn)層技術Struts 5.1 Struts框架概述 5.1.1 概述 5.1.2 Struts的體系結構與工作原理 5.2 Struts框架入門 5.2.1 在Eclipse中建立J2EE Web應用程序目錄結構 5.2.2 編寫視圖 5.2.3 編寫ActionForm Bean 5.2.4 編寫Action類 5.2.5 配置struts-config.xml文件 5.2.6 調試運行strutsSample 5.3 ActionForm和DynaActionForm 5.3.1 創(chuàng)建ActionForm 5.3.2 使用DynaActionForm 5.3.3 注冊登錄系統(tǒng)中創(chuàng)建UserForm 5.4 Struts Validator驗證框架 5.4.1 Validator框架入門 5.4.2 Validator 驗證規(guī)則 5.4.3 為DynaActionForm創(chuàng)建驗證規(guī)則 5.5 Actions 5.5.1 創(chuàng)建Action 5.5.2 在注冊登錄系統(tǒng)中創(chuàng)建SignupAction 5.6 Struts常用標簽庫 5.6.1 JSP的局限性 5.6.2 Struts標簽庫 5.6.3 HTML標簽庫 5.6.4 Bean標簽庫 5.6.5 logic標簽庫 5.7 在注冊登錄系統(tǒng)中集成Struts 5.7.1 配置web.xml 5.7.2 配置struts-config.xml文件 5.8 本章小結 第6章 業(yè)務邏輯層技術Spring 6.1 Spring概述 6.1.1 Spring的發(fā)展歷史 6.1.2 Spring的模塊結構 6.1.3 Spring使J2EE開發(fā)變得更容易 6.2 BeanFactory的工作原理 6.2.1 控制反轉 6.2.2 BeanFactory 6.2.3 Bean的生命周期 6.2.4 ApplicationContext 6.3 Spring集成Hibernate 6.3.1 概述 6.3.2 管理Hibernate資源 6.3.3 在ApplicationContext中的Bean聲明 6.3.4 通過HibernateTemplate和HibernateDaoSupport訪問Hibernate 6.3.5 Spring中配置Hibernate 6.4 Spring集成Struts 6.4.1 注冊Spring plug-in 6.4.2 實現(xiàn)Spring-aware-Strutsactions 6.4.3 代理Action 6.5 AOP 6.5.1 AOP的概念 6.5.2 創(chuàng)建Advice 6.5.3 定義PointCuts 6.5.4 使用ProxyFactoryBean創(chuàng)建AOP代理 6.5.5 使用Autoproxying創(chuàng)建AOP代理 6.6 聲明式事務處理 6.6.1 事務處理的概念 6.6.2 Spring中的編程式事務處理 6.6.3 聲明式事務處理 6.7 本章小結第二篇 基礎實例篇 第7章 新聞發(fā)布系統(tǒng) 7.1 系統(tǒng)功能概述 7.2 系統(tǒng)需求分析 7.2.1 系統(tǒng)功能模塊劃分 7.2.2 數(shù)據(jù)庫邏輯結構設計 7.3 系統(tǒng)框架搭建 7.3.1 模型層的實現(xiàn) 7.3.2 數(shù)據(jù)持久層的實現(xiàn) 7.3.3 業(yè)務邏輯層的實現(xiàn) 7.3.4 視圖表現(xiàn)層的實現(xiàn) 7.4 用戶管理模塊 7.4.1 數(shù)據(jù)操作實現(xiàn) 7.4.2 業(yè)務邏輯實現(xiàn) 7.4.3 表現(xiàn)層的實現(xiàn) 7.5 新聞信息管理模塊 7.5.1 數(shù)據(jù)操作實現(xiàn) 7.5.2 業(yè)務邏輯實現(xiàn) 7.5.3 表現(xiàn)層的實現(xiàn) 7.5.4 配置struts-config.xml 7.6 權限管理模塊 7.6.1 數(shù)據(jù)操作實現(xiàn) 7.6.2 業(yè)務邏輯實現(xiàn) 7.6.3 表現(xiàn)層的實現(xiàn) 7.7 本章小結 第8章 在線拍賣系統(tǒng) 8.1 系統(tǒng)功能概述 8.2 系統(tǒng)需求分析 8.2.1 系統(tǒng)功能模塊劃分 8.2.2 數(shù)據(jù)庫邏輯結構設計 8.3 系統(tǒng)框架搭建 8.3.1 建立工程目錄結構 8.3.2 數(shù)據(jù)持久層的實現(xiàn) 8.3.3 業(yè)務邏輯層的實現(xiàn) 8.3.4 視圖表現(xiàn)層的實現(xiàn) 8.4 注冊登錄模塊 8.4.1 數(shù)據(jù)操作實現(xiàn) 8.4.2 業(yè)務邏輯實現(xiàn) 8.4.3 表現(xiàn)層的實現(xiàn) 8.5 拍賣商品模塊 8.5.1 數(shù)據(jù)操作實現(xiàn) 8.5.2 業(yè)務邏輯實現(xiàn) 8.5.3 表現(xiàn)層的實現(xiàn) 8.6 實名認證模塊 8.6.1 數(shù)據(jù)操作實現(xiàn) 8.6.2 業(yè)務邏輯實現(xiàn) 8.6.3 表現(xiàn)層的實現(xiàn) 8.7 本章小結 第9章 博客系統(tǒng) 9.1 系統(tǒng)功能概述 9.2 系統(tǒng)需求分析 9.2.1 系統(tǒng)功能模塊劃分 9.2.2 數(shù)據(jù)庫邏輯結構設計 9.3 系統(tǒng)框架搭建 9.3.1 建立工程目錄結構 9.3.2 數(shù)據(jù)持久層的實現(xiàn) 9.3.3 業(yè)務邏輯層的實現(xiàn) 9.3.4 視圖表現(xiàn)層的實現(xiàn) 9.3.5 Action基類 9.3.6 頁面視圖 9.4 注冊登錄模塊 9.4.1 數(shù)據(jù)操作實現(xiàn) 9.4.2 業(yè)務邏輯實現(xiàn) 9.4.3 表現(xiàn)層的實現(xiàn) 9.4.4 部署運行 9.5 發(fā)布/管理日志模塊 9.5.1 數(shù)據(jù)操作實現(xiàn) 9.5.2 業(yè)務邏輯實現(xiàn) 9.5.3 表現(xiàn)層的實現(xiàn) 9.5.4 部署運行 9.6 留言板模塊 9.6.1 數(shù)據(jù)操作實現(xiàn) 9.6.2 業(yè)務邏輯實現(xiàn) 9.6.3 表現(xiàn)層的實現(xiàn) 9.6.4 部署運行 9.7 本章小結第三篇 高級應用篇 第10章 開源搜索引擎Lucene 10.1 Lucene簡介 10.1.1 概述 10.1.2 Lucene全文檢索的實現(xiàn)機制 10.1.3 Lucene框架剖析 10.1.4 建立索引 10.1.5 搜索文檔 10.2 下載并測試Lucene 10.2.1 下載Lucene 10.2.2 配置Lucene 10.2.3 測試Lucene 10.3 在Web應用程序中集成Lucene 10.3.1 實例需求分析 10.3.2 建立Dynamic Web Project 10.3.3 設計Web工程體系結構 10.3.4 實現(xiàn)用戶接口 10.3.5 實現(xiàn)控制器 10.3.6 實現(xiàn)搜索 10.3.7 實現(xiàn)索引 10.4 部署并測試lucenesample 10.5 本章小結 第11章 Spring構架中模板引擎集成 11.1 Freemarker模板引擎簡介 11.2 Freemarker腳本語言簡介 11.2.1 模板 11.2.2 數(shù)據(jù)模型 11.3 搭建Freemarker開發(fā)環(huán)境 11.3.1 下載Freemarker 11.3.2 下載和安裝Freemarker開發(fā)插件 11.4 Freemarker開發(fā)實例 11.4.1 實例需求分析 11.4.2 建立工程——Freemarker-Sample 11.4.3 創(chuàng)建Freemarker宏模板 11.4.4 客戶信息錄入頁面 11.4.5 客戶信息添加成功頁面 11.4.6 客戶信息列表頁面 11.5 本章小結 第12章 Spring集成Acegi安全框架 12.1 Acegi安全框架概述[8] 12.2 Acegi安全框架體系結構[8] 12.2.1 Acegi安全框架組件 12.2.2 控制反轉 12.2.3 XML配置文件 12.3 安全過濾器[8] 12.3.1 Session Integration Filter 12.3.2 Authentication ProcessingFilter 12.3.3 Logout Processing Filter 12.3.4 Exception Translation Filter 12.3.5 Interceptor Filter 12.4 在Web應用程序中集成Acegi安全框架 12.4.1 建立一個新的工程 12.4.2 設計Web工程目錄結構 12.4.3 配置Acegi安全框架 12.5 配置acegisecurity-config.xml文件 12.6 部署并運行acegisample 12.7 本章小結 第13章 Spring構架中上傳組件集成 13.1 Commons FileUpload組件簡介 13.2 Commons FileUpload 開發(fā)流程 13.3 Commons FileUpload開發(fā)環(huán)境搭建 13.3.1 下載Commons FileUpload 13.3.2 配置Commons FileUpload 13.4 Commons FileUpload開發(fā)實例 13.4.1 實例需求分析 13.4.2 建立工程——FileUploadSample 13.4.3 編寫前臺頁面 13.4.4 編寫Servlet來負責文件的上傳 13.4.5 部署和測試 13.5 本章小結第四篇 高級實例篇 第14章 科研資料信息管理系統(tǒng) 14.1 系統(tǒng)功能概述 14.2 系統(tǒng)需求分析 14.2.1 系統(tǒng)功能模塊劃分 14.2.2 數(shù)據(jù)庫邏輯結構設計[12] 14.3 系統(tǒng)各模塊效果圖[12] 14.4 系統(tǒng)基礎框架搭建 14.4.1 數(shù)據(jù)持久層的實現(xiàn)[12] 14.4.2 業(yè)務邏輯層的實現(xiàn)[12] 14.4.3 視圖表現(xiàn)層的實現(xiàn)[12] 14.5 其他高級框架集成 14.5.1 集成Commons FileUpload組件 14.5.2 集成Acegi安全框架 14.5.3 Freemarker模板引擎 14.5.4 集成Struts-Menu菜單框架[12] 14.5.5 集成ValueList標簽庫[12] 14.5.6 集成Log4j日志管理組件 14.6 用戶信息管理模塊 14.6.1 數(shù)據(jù)操作實現(xiàn)[12] 14.6.2 業(yè)務邏輯實現(xiàn)[12] 14.6.3 表現(xiàn)層的實現(xiàn)[12] 14.7 用戶組信息管理模塊 14.7.1 數(shù)據(jù)操作實現(xiàn)[12] 14.7.2 業(yè)務邏輯實現(xiàn)[12] 14.7.3 表現(xiàn)層的實現(xiàn)[12] 14.8 系統(tǒng)權限管理模塊 14.8.1 數(shù)據(jù)操作實現(xiàn)[12] 14.8.2 業(yè)務邏輯實現(xiàn)[12] 14.8.3 表現(xiàn)層的實現(xiàn)[12] 14.9 文件信息管理模塊 14.9.1 數(shù)據(jù)操作實現(xiàn)[12] 14.9.2 業(yè)務邏輯實現(xiàn)[12] 14.9.3 表現(xiàn)層的實現(xiàn)[12]
章節(jié)摘錄
第一篇 基礎應用篇 第1章 輕量級J2EE構架技術 知識點: Java Web應用開發(fā)基礎知識 輕量級開發(fā)技術 輕量級J2EE構架技術 基于Java開源項目框架輕量級J2EE Web應用 本章導讀: 在Java應用領域中,有許多優(yōu)秀、成熟的開源軟件,比如Struts、Hibernate以及Spring,利用它們同樣可以打造優(yōu)越、靈巧的J2EE應用框架。本章首先討論Java Web應用開發(fā)的基礎知識,接著簡單的介紹基于開源項目Sprin9、Hibernate以及Struts整合構建輕量級J2EEWeb應用?! ?.1 Java Web應用開發(fā)基礎知識 本節(jié)首先討論Java Web應用開發(fā)的相關基礎知識,以著名開源應用服務器Tomcat為Web應用程序的Web容器來討論如何組織源代碼,如何部署Web應用以及簡單地介紹開發(fā)Web應用程序的一般流程?! ?.1.1 部署Web應用程序 在討論如何組織Web應用程序源代碼目錄結構之前,有必要先來了解一下Web應用程序在運行時的目錄結構。對于Web應用程序在運行時的目錄結構,在Servlet API Specification 2.2版本之前,在不同的服務器平臺之間并沒有統(tǒng)一的規(guī)范,但是,在2.2版本(或更高)規(guī)定,不同的服務器平臺必須采用同一個標準的Web應用程序結構,下面將會進行詳細的討論?! ∫粋€Web應用程序通常被定義為有著標準層次結構的目錄和文件,部署Web應用程序有兩種方式,一種方式是采用不打包(Unpacked)的方式,每一個目錄和文件以文件系統(tǒng)的形式存在;另一種方式則是采用打包(Packed)方式,通常是一個WAR文件。通常情況下,在程序開發(fā)的過程中采用前者會比較方便,而在程序發(fā)布時一般是采用后者。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載