輕量級Java EE企業(yè)應(yīng)用實戰(zhàn)

出版時間:2012-4  出版社:電子工業(yè)出版社  作者:李剛  頁數(shù):816  
Tag標(biāo)簽:無  

前言

  前   言  經(jīng)過多年沉淀,Java EE平臺已經(jīng)成為電信、金融、電子商務(wù)、保險、證券等各行業(yè)的大型應(yīng)用系統(tǒng)的首選開發(fā)平臺。目前Java行業(yè)的軟件開發(fā)已經(jīng)基本穩(wěn)定,這兩三年內(nèi)基本沒有出現(xiàn)什么具有廣泛影響  力的新技術(shù)。Java EE開發(fā)大致可分為兩種方式:以Spring為核心輕量級Java EE企業(yè)開發(fā)平臺;以EJB 3+JPA為核心的經(jīng)典Java EE開發(fā)平臺。無論使用哪種平臺進(jìn)行開發(fā),應(yīng)用的性能、穩(wěn)定性都有很好的保證,開發(fā)人群也有很穩(wěn)定的保證?! ”緯榻B的開發(fā)平臺,就是以Struts 2.2+Spring 3.0+Hibernate 3.6(實際項目中可能以JPA來代替Hibernate )為核心的輕量級Java EE,這種組合在保留經(jīng)典Java EE應(yīng)用架構(gòu)、高度可擴(kuò)展性、高度可維護(hù)性的基礎(chǔ)上,降低了Java EE應(yīng)用的開發(fā)、部署成本,對于大部分中小型企業(yè)應(yīng)用是首選。在一些需要具有高度伸縮性、高度穩(wěn)定性的企業(yè)應(yīng)用(比如銀行系統(tǒng)、保險系統(tǒng))里,以EJB 3+JPA為核心的經(jīng)典Java EE應(yīng)用則具有廣泛的占有率。本書的姊妹篇《經(jīng)典Java EE企業(yè)應(yīng)用實戰(zhàn)》主要介紹了后一種Java EE開發(fā)平臺?! ”緯饕壛恕遁p量級Java EE企業(yè)應(yīng)用實戰(zhàn)》的知識,采用最新的Tomcat 7作為Web服務(wù)器,全面而細(xì)致地介紹了Servlet 3.0的新特性,并將Struts升級到Struts 2.2.1,Spring升級到3.0.5,Hibernate升級到3.6.0。書中詳細(xì)介紹了Spring和Hibernate的“零配置”特性,并充分介紹了Struts 2的Convention(約定)支持。本書不僅介紹了Spring 2.x的AOP支持,詳細(xì)介紹了Spring 2.x中Schema配置所支持的util、aop、tx等命名空間,還簡要講解了AspectJ的相關(guān)內(nèi)容。本書也重點介紹了Spring 3.0的新功能:SpEL,SpEL不僅可以作為表達(dá)式語言單獨使用,也可與Spring容器結(jié)合來擴(kuò)展Spring容器的功能?! ”緯鴦?chuàng)作感言  筆者首先要感謝廣大讀者對本書第2版的認(rèn)同,在將近2年的時間內(nèi),本書第2版的銷量高達(dá)178萬碼洋,得到無數(shù)Java學(xué)習(xí)者的認(rèn)同,成為Java EE開發(fā)者首選的經(jīng)典圖書??紤]到目前技術(shù)的升級,筆者現(xiàn)將本書的全部技術(shù)升級到最新版、最前沿,以饗讀者?! ∵€有一個值得介紹的消息:本書姊妹篇《經(jīng)典Java EE企業(yè)應(yīng)用實戰(zhàn)》(由電子工業(yè)出版社出版,ISBN 978-7-121-11534-9)現(xiàn)已上市。學(xué)習(xí)本書時可以采用“輕經(jīng)合參”的方式來學(xué)習(xí):“輕”指的是以“SSH”整合的輕量級Java EE開發(fā)平臺,“經(jīng)”指的是以“EJB 3+JPA”整合的經(jīng)典Java EE開發(fā)平臺;這兩種平臺本身具有很大的相似性,將兩種Java EE開發(fā)平臺結(jié)構(gòu)放在一起參考、對照著學(xué)習(xí),能更好地理解Spring、Hibernate框架的設(shè)計思想,從而更深入地掌握它們。與此同時,也可以深入理解EJB 3與Spring容器中的Bean、EJB容器與Spring容器之間的聯(lián)系和區(qū)別,從而融會貫通地掌握EJB 3+JPA整合的開發(fā)方式?! 〗?jīng)常有讀者寫郵件來問筆者,為何你能快而且全面地掌握各種Java開發(fā)技術(shù)?筆者以前做過一些零散的回復(fù)。這里簡單地介紹筆者學(xué)習(xí)Java的一些歷史與方法,希望廣大讀者從中借鑒值得學(xué)習(xí)的地方,避開一些彎路?! 」P者大約是1999年開始接觸Java,開始主要做點Applet玩(當(dāng)時筆者對Applet做出來的動畫十分傾心)。后來開始流行ASP、JSP,筆者再次喜歡上ASP、JSP那種極其簡單的語法、短期內(nèi)的快速上手,后來斷斷續(xù)續(xù)用ASP、JSP寫了多個小型企業(yè)網(wǎng)站、BBS、OA系統(tǒng)之類--不知道其他人是什么經(jīng)歷,筆者選擇編程一方面是因為個人愛好和“自豪感”(覺得能做出各種軟件,有點成就感),另一方面是因為編寫軟件可以輕易地賣點錢(是不是很俗?),但這個目的筆者無法回避--由于出生在湖北一個貧窮的鄉(xiāng)下,所以在同濟(jì)念書時筆者常常為了開飯而寫代碼,或許有一些程序員和筆者會有相同的感觸。  在后來的開發(fā)過程中,筆者發(fā)現(xiàn)純粹的JSP開發(fā)雖然前期很方便,但由于開發(fā)時代碼重復(fù)得厲害,所以后期升級、維護(hù)很痛苦,于是開始大規(guī)模地修改自己寫的一堆“垃圾”代碼,不斷地思考怎樣對JSP腳本進(jìn)行提取、封裝到Java Bean中,這個過程并不順利,經(jīng)常遭遇各種性能問題、并發(fā)問題。原本可以運行良好的應(yīng)用,反而被改得經(jīng)常出現(xiàn)問題。  大約到了2000年,筆者接觸到EJB,對EJB許下的“承諾”無比欣羨,于是義無反顧地投入EJB的懷抱,不過EJB的學(xué)習(xí)并不順利,當(dāng)時用的好像是WebLogic 5的服務(wù)器,那時候覺得WebLogic 5所報的錯誤晦澀、難以閱讀,動輒幾屏的錯誤信息,讓人感覺很有壓力?! 〔贿^筆者是一個頑固的人,遇到錯誤總是不斷地修改、不斷地嘗試,在這樣的嘗試中,不知不覺中,天色已經(jīng)發(fā)白。說來慚愧,第一個Hello World級的Entity EJB居然花了將近一個月的時間才弄完(絕不建議讀者從EJB 1.1或EJB 2開始學(xué)習(xí),這只會給學(xué)習(xí)徒增難度,而且現(xiàn)在EJB 1.1、EJB 2都已被淘汰)。在那段時間內(nèi),筆者連最心愛的C幾乎完全沒碰過?! ≡诮酉聛淼?年多時間內(nèi),筆者一直沉浸在EJB中,不斷地搜尋各種關(guān)于EJB的資料、不斷地深入鉆研著關(guān)于EJB規(guī)范、EJB的運行、EJB容器的運行機(jī)制。隨著時間的流逝,EJB、EJB容器的運行原理逐漸明朗起來?! ∧鞘且欢巫屓藨涯畹摹?ldquo;神話”般的歲月,年輕的人,似乎擁有無窮的精力,那也是筆者Java技術(shù)增長最迅速的3年,筆者的Java EE功底也是在那3年內(nèi)打下的,后來接觸的各種“新”技術(shù)只是在那個基礎(chǔ)上“修修補(bǔ)補(bǔ)”,或者“溫故而知新”?! ?004年初,筆者開始接觸到Spring框架,從接觸Spring的第一天開始,直到今天,筆者一直覺得Spring和EJB之間有很大的相似性:  Spring本身也是一個容器,只是EJB容器管理的是EJB,Spring容器管理的是普通Java對象?! pring對Bean類的要求很少,EJB容器對EJB的要求略多一些--所以初學(xué)者學(xué)習(xí)EJB上手較難,但學(xué)習(xí)Spring就簡單得多?! ∫驗檎业竭@種類比性,筆者學(xué)習(xí)Spring時,總是不斷地將EJB與Spring進(jìn)行類比,然后再找出它們之間的不同之處。由于采用了這種“溫故而知新”的學(xué)習(xí)方式,所以筆者很容易就理解了Spring的設(shè)計,而且更加透徹?! 『芏郕ava學(xué)習(xí)者在學(xué)習(xí)過程中往往容易感覺Java開發(fā)內(nèi)容紛繁蕪雜,造成這種感覺的原因就是因為沒有進(jìn)行很好的歸納、總結(jié)、類比。為了避免“知識越學(xué)越多”的混亂感,讀者應(yīng)該充分利用已掌握的知識,溫故而知新--一方面對已有的知識進(jìn)行歸納、總結(jié),另一方面將新的內(nèi)容與已掌握的知識進(jìn)行類比,這樣既能把已有的知識掌握得更有條理、更系統(tǒng),也能更快、更透徹地掌握新的知識。  出于以上理由,筆者在介紹非常專業(yè)的編程知識之時,總會通過一些淺顯的類比來幫助讀者更好地理解。“簡單、易讀”成為筆者一貫堅持的創(chuàng)作風(fēng)格,也是瘋狂Java體系叢書的特色。另一方面,瘋狂Java體系圖書的知識也很全面、實用。筆者希望讀者在看完瘋狂Java體系的圖書之后,可以較為輕松地理解書中所介紹的知識,并切實學(xué)會一種實用的開發(fā)技術(shù),進(jìn)而將之應(yīng)用到實際開發(fā)中。如果讀者在學(xué)習(xí)過程中遇到無法理解的問題,可以登錄瘋狂Java聯(lián)盟(http://www.crazyit. org)與廣大Java學(xué)習(xí)者交流,筆者也會通過該平臺與大家一起交流、學(xué)習(xí)。  本書有什么特點  本書保持了《輕量級Java EE企業(yè)應(yīng)用實戰(zhàn)》第2版簡單、實用的優(yōu)勢,同樣堅持讓案例說話、以案例來介紹知識點的風(fēng)格,在書的最后同樣示范開發(fā)了企業(yè)工作流案例,希望讀者通過該案例真正步入實際企業(yè)開發(fā)的殿堂?! ”緯廊槐A袅恕遁p量級J2EE企業(yè)應(yīng)用實戰(zhàn)》第2版的三個特色。  1.經(jīng)驗豐富,針對性強(qiáng)  筆者既擔(dān)任過軟件開發(fā)的技術(shù)經(jīng)理,也擔(dān)任過軟件公司的培訓(xùn)導(dǎo)師,還從事過職業(yè)培訓(xùn)的專職講師,這些經(jīng)驗影響了筆者寫書的目的,不是一本學(xué)院派的理論讀物,而是一本實際的開發(fā)指南?! ?.內(nèi)容實際,實用性強(qiáng)  本書所介紹的Java EE應(yīng)用范例,采用了目前企業(yè)流行的開發(fā)架構(gòu),絕對嚴(yán)格遵守Java EE開發(fā)規(guī)范,而不是將各種技術(shù)雜亂地糅合在一起號稱Java EE。讀者參考本書的架構(gòu),完全可以身臨其境地感受企業(yè)實際開發(fā)?! ?.高屋建瓴,啟發(fā)性強(qiáng)  本書介紹的幾種架構(gòu)模式,幾乎是時下最全面的Java EE架構(gòu)模式。這些架構(gòu)模式可以直接提升讀者對系統(tǒng)架構(gòu)設(shè)計的把握?! ”緯鴮懡o誰看  如果你已經(jīng)掌握了Java SE內(nèi)容,或已經(jīng)學(xué)完了《瘋狂Java講義》一書,那么你非常適合閱讀此書。除此之外,如果你已有初步的JSP、Servlet基礎(chǔ),甚至對Struts 2、Spring 3.0、Hibernate 3.6有所了解,但希望掌握它們在實際開發(fā)中的應(yīng)用,本書也將非常適合你。如果你對Java的掌握還不熟練,則建議遵從學(xué)習(xí)規(guī)律,循序漸進(jìn),暫時不要購買、閱讀此書。

內(nèi)容概要

本書是《輕量級Java
EE企業(yè)應(yīng)用實戰(zhàn)》的第3版,第3版保持了第2版內(nèi)容全面、深入的特點,主要完成全部知識的升級。
本書介紹了Java
EE領(lǐng)域的三個開源框架:Struts
2、Spring和Hibernate。其中Struts
2升級到2.2.1,Spring升級到3.0.5,Hibernate升級到了3.6.0。本書還全面介紹了Servlet
3.0的新特性,以及Tomcat 7.0的配置和用法,本書的示例應(yīng)該在Tomcat
7.0上運行。
本書重點介紹如何整合Struts
2.2+Spring 3.0+Hibernate 3.6進(jìn)行Java
EE開發(fā),主要包括三部分。第一部分介紹Java
EE開發(fā)的基礎(chǔ)知識,以及如何搭建開發(fā)環(huán)境。第二部分詳細(xì)講解Struts 2.2、Spring
3.0和Hibernate 3.6三個框架的用法,介紹三個框架時,從Eclipse IDE的使用來上手,一步步帶領(lǐng)讀者深入三個框架的核心。這部分內(nèi)容是筆者講授“瘋狂Java實訓(xùn)”的培訓(xùn)講義,因此是本書的重點部分,既包含了筆者多年開發(fā)經(jīng)歷的領(lǐng)悟,也融入了豐富的授課經(jīng)驗。第三部分示范開發(fā)了一個包含7個表、表之間具有復(fù)雜的關(guān)聯(lián)映射、繼承映射等關(guān)系,且業(yè)務(wù)也相對復(fù)雜的工作流案例,希望讓讀者理論聯(lián)系實際,將三個框架真正運用到實際開發(fā)中去,該案例采用目前最流行、最規(guī)范的Java
EE架構(gòu),整個應(yīng)用分為領(lǐng)域?qū)ο髮?、DAO層、業(yè)務(wù)邏輯層、MVC層和視圖層,各層之間分層清晰,層與層之間以松耦合的方法組織在一起。該案例既提供了IDE無關(guān)的、基于Ant管理的項目源碼,也提供了基于Eclipse
IDE的項目源碼,最大限度地滿足讀者的需求。
本書不再介紹Struts
1.X相關(guān)內(nèi)容,如果讀者希望獲取《輕量級J2EE企業(yè)應(yīng)用實戰(zhàn)》第一版中關(guān)于Struts
1.X的知識,請登錄http://www.crazyit.org下載。當(dāng)讀者閱讀此書時如果遇到技術(shù)難題,也可登錄http://www.crazyit.org發(fā)帖,筆者將會及時予以解答。
閱讀本書之前,建議先認(rèn)真閱讀筆者所著的《瘋狂Java講義》一書。本書適合于有較好的Java編程基礎(chǔ),或有初步JSP、Servlet基礎(chǔ)的讀者。尤其適合于對Struts
2、Spring、Hibernate了解不夠深入,或?qū)truts
2+Spring+Hibernate整合開發(fā)不太熟悉的開發(fā)人員閱讀。

作者簡介

  李剛:從事10年的Java EE應(yīng)用開發(fā)。
  曾任LITEON公司的J2EE技術(shù)主管,負(fù)責(zé)該公司的企業(yè)信息平臺的架構(gòu)設(shè)計。
  曾任廣州電信、廣東龍泉科技等公司的技術(shù)培訓(xùn)導(dǎo)師。
  2007年3月26日的《電腦報》專訪人物。
  現(xiàn)任新東方廣州中心軟件教學(xué)總監(jiān),并曾任廣東技術(shù)師范學(xué)院計算機(jī)科學(xué)系的兼職副教授。
  培訓(xùn)的學(xué)生已在華為、立信、普信、網(wǎng)易、電信盈科、中企動力等公司就職。
  國內(nèi)知名的高端IT技術(shù)作家,已出版《Spring
2.0寶典》、《基于J2EE的Ajax寶典》、《輕量級J2EE企業(yè)應(yīng)用實戰(zhàn)》、《Struts 2權(quán)威指南》、《Ruby On
Rails敏捷開發(fā)最佳實踐》等著作。

書籍目錄

第1章 Java EE應(yīng)用和開發(fā)環(huán)境
 1.1 Java EE應(yīng)用概述
  1.1.1 Java EE應(yīng)用的分層模型
  1.1.2 Java EE應(yīng)用的組件
  1.1.3 Java EE應(yīng)用的結(jié)構(gòu)和優(yōu)勢
  1.1.4 常用的Java EE服務(wù)器
 1.2 輕量級Java EE應(yīng)用相關(guān)技術(shù)
  1.2.1 JSP、Servlet 3.0和JavaBean及替代技術(shù)
  1.2.2 Struts 2.2及替代技術(shù)
  1.2.3 Hibernate 3.6及替代技術(shù)
  1.2.4 Spring 3.0及替代技術(shù)
 1.3 Tomcat的下載和安裝
  1.3.1 安裝Tomcat服務(wù)器
  1.3.2 配置Tomcat的服務(wù)端口
  1.3.3 進(jìn)入控制臺
  1.3.4 部署Web應(yīng)用
  1.3.5 配置Tomcat的數(shù)據(jù)源
 1.4 Eclipse的安裝和使用
  1.4.1 Eclipse的下載和安裝
  1.4.2 在線安裝Eclipse插件
  1.4.3 從本地壓縮包安裝插件
  1.4.4 手動安裝Eclipse插件
  1.4.5 使用Eclipse開發(fā)Java EE應(yīng)用
  1.4.6 導(dǎo)入Eclipse項目
  1.4.7 導(dǎo)入非Eclipse項目
 1.5 Ant的安裝和使用
  1.5.1 Ant的下載和安裝
  1.5.2 使用Ant工具
  1.5.3 定義生成文件
  1.5.4 Ant的任務(wù)(task)
 1.6 使用CVS進(jìn)行協(xié)作開發(fā)
  1.6.1 安裝CVS服務(wù)器
  1.6.2 配置CVS資源庫
  1.6.3 安裝CVS客戶端
  1.6.4 發(fā)布項目到服務(wù)器
  1.6.5 從服務(wù)器下載項目
  1.6.6 同步(Update)本地文件
  1.6.7 提交(Commit)修改
  1.6.8 添加文件和目錄
  1.6.9 刪除文件和目錄
  1.6.10 查看文件的版本變革
  1.6.11 提取文件以前版本的內(nèi)容
  1.6.12 從以前版本重新開始
  1.6.13 創(chuàng)建標(biāo)簽
  1.6.14 創(chuàng)建分支
  1.6.15 沿著分支開發(fā)
  1.6.16 使用Eclipse作為CVS客戶端
 1.7 本章小結(jié)
第2章 JSP/Servlet及相關(guān)技術(shù)詳解
 2.1 Web應(yīng)用和web.xml文件
  2.1.1 構(gòu)建Web應(yīng)用
  2.1.2 配置描述符web.xml
 2.2 JSP的基本原理
 2.3 JSP注釋
 2.4 JSP聲明
 2.5 輸出JSP表達(dá)式
 2.6 JSP腳本
 2.7 JSP的3個編譯指令
  2.7.1 page指令
  2.7.2 include指令
 2.8 JSP的7個動作指令
  2.8.1 forward指令
  2.8.2 include指令
  2.8.3 useBean、setProperty、getProperty指令
  2.8.4 plugin指令
  2.8.5 param指令
 2.9 JSP腳本中的9個內(nèi)置對象
  2.9.1 application對象
  2.9.2 config對象
  2.9.3 exception對象
  2.9.4 out對象
  2.9.5 pageContext對象
  2.9.6 request對象
  2.9.7 response對象
  2.9.8 session對象
 2.10 Servlet介紹
  2.10.1 Servlet的開發(fā)
  2.10.2 Servlet的配置
  2.10.3 JSP/Servlet的生命周期
  2.10.4 load-on-startup Servlet
  2.10.5 訪問Servlet的配置參數(shù)
  2.10.6 使用Servlet作為控制器
 2.11 JSP 2的自定義標(biāo)簽
  2.11.1 開發(fā)自定義標(biāo)簽類
  2.11.2 建立TLD文件
  2.11.3 使用標(biāo)簽庫
  2.11.4 帶屬性的標(biāo)簽
  2.11.5 帶標(biāo)簽體的標(biāo)簽
  2.11.6 以頁面片段作為屬性的標(biāo)簽
  2.11.7 動態(tài)屬性的標(biāo)簽
 2.12 Filter介紹
  2.12.1 創(chuàng)建Filter類
  2.12.2 配置Filter
  2.12.3 使用URL Rewrite實現(xiàn)網(wǎng)站偽靜態(tài)
 2.13 Listener介紹
  2.13.1 實現(xiàn)Listener類
  2.13.2 配置Listener
  2.13.3 使用ServletContextAttribute-Listener
  2.13.4
使用ServletRequestListener和ServletRequestAttributeListener
  2.13.5 使用HttpSessionListener和HttpSessionAttributeListener
 2.14 JSP 2特性
  2.14.1 配置JSP屬性
  2.14.2 表達(dá)式語言
  2.14.3 Tag File支持
 2.15 Servlet 3.0新特性
  2.15.1 Servlet 3.0的Annotation
  2.15.2 Servlet 3.0的Web模塊支持
  2.15.3 Servlet 3.0提供的異步處理
  2.15.4 改進(jìn)的Servlet API
 2.16 本章小結(jié)
第3章 Struts 2的基本用法
 3.1 MVC思想概述
  3.1.1 傳統(tǒng)Model 1和Model 2
  3.1.2 MVC思想及其優(yōu)勢
 3.2 Struts 2的下載和安裝
  3.2.1 為Web應(yīng)用增加Struts 2支持
  3.2.2 在Eclipse中使用Struts 2
  3.2.3 增加登錄處理
 3.3 Struts 2的流程
  3.3.1 Struts 2應(yīng)用的開發(fā)步驟
  3.3.2 Struts 2的流程
 3.4 Struts 2的常規(guī)配置
  3.4.1 常量配置
  3.4.2 包含其他配置文件
 3.5 實現(xiàn)Action
  3.5.1 Action接口和ActionSupport基類
  3.5.2 Action訪問Servlet API
  3.5.3 Action直接訪問Servlet API
  3.5.4 使用ServletActionContext訪問Servlet API
 3.6 配置Action
  3.6.1 包和命名空間
  3.6.2 Action的基本配置
  3.6.3 使用Action的動態(tài)方法調(diào)用
  3.6.4 指定method屬性及使用通配符
  3.6.5 配置默認(rèn)Action
  3.6.6 配置Action的默認(rèn)處理類
 3.7 配置處理結(jié)果
  3.7.1 理解處理結(jié)果
  3.7.2 配置結(jié)果
  3.7.3 Struts 2支持的結(jié)果類型
  3.7.4 plainText結(jié)果類型
  3.7.5 redirect結(jié)果類型
  3.7.6 redirectAction結(jié)果類型
  3.7.7 動態(tài)結(jié)果
  3.7.8 Action屬性值決定物理視圖資源
  3.7.9 全局結(jié)果
  3.7.10 使用PreResultListener
 3.8 配置Struts 2的異常處理
  3.8.1 Struts 2的異常處理機(jī)制
  3.8.2 聲明式異常捕捉
  3.8.3 輸出異常信息
 3.9 Convention插件與“約定”支持
  3.9.1 Action的搜索和映射約定
  3.9.2 按約定映射Result
  3.9.3 Action鏈的約定
  3.9.4 自動重加載映射
  3.9.5 Convention插件的相關(guān)常量
  3.9.6 Convention插件相關(guān)Annotation
 3.10 使用Struts 2的國際化
  3.10.1 Struts 2中加載全局資源文件
  3.10.2 訪問國際化消息
  3.10.3 輸出帶占位符的國際化消息
  3.10.4 加載資源文件的方式
  3.10.5 加載資源文件的順序
 3.11 使用Struts 2的標(biāo)簽庫
  3.11.1 Struts 2標(biāo)簽庫概述
  3.11.2 使用Struts 2標(biāo)簽
  3.11.3 Struts 2的OGNL表達(dá)式語言
  3.11.4 OGNL中的集合操作
  3.11.5 訪問靜態(tài)成員
  3.11.6 Lambda(?)表達(dá)式
  3.11.7 控制標(biāo)簽
  3.11.8 數(shù)據(jù)標(biāo)簽
  3.11.9 主題和模板
  3.11.10 自定義主題
  3.11.11 表單標(biāo)簽
  3.11.12 非表單標(biāo)簽
 3.12 本章小結(jié)
第4章 深入使用Struts 2
 4.1 詳解Struts 2的類型轉(zhuǎn)換
  4.1.1 Struts 2內(nèi)建的類型轉(zhuǎn)換器
  4.1.2 基于OGNL的類型轉(zhuǎn)換
  4.2.3 指定集合元素的類型
  4.1.4 自定義類型轉(zhuǎn)換器
  4.1.5 注冊類型轉(zhuǎn)換器
  4.1.6 基于Struts 2的自定義類型轉(zhuǎn)換器
  4.1.7 處理Set集合
  4.1.8 類型轉(zhuǎn)換中的錯誤處理
 4.2 使用Struts 2的輸入校驗
  4.2.1 編寫校驗規(guī)則文件
  4.2.2 國際化提示信息
  4.2.3 使用客戶端校驗
  4.2.4 字段校驗器配置風(fēng)格
  4.2.5 非字段校驗器配置風(fēng)格
  4.2.6 短路校驗器
  4.2.7 校驗文件的搜索規(guī)則
  4.2.8 校驗順序和短路
  4.2.9 內(nèi)建校驗器
  4.2.10 基于Annotation的輸入校驗
  4.2.11 手動完成輸入校驗
 4.3 使用Struts 2控制文件上傳
  4.3.1 Struts 2的文件上傳
  4.3.2 實現(xiàn)文件上傳的Action
  4.3.3 配置文件上傳的Action
  4.3.4 手動實現(xiàn)文件過濾
  4.3.5 攔截器實現(xiàn)文件過濾
  4.3.6 輸出錯誤提示
  4.3.7 文件上傳的常量配置
 4.4 使用Struts 2控制文件下載
  4.4.1 實現(xiàn)文件下載的Action
  4.4.2 配置Action
  4.4.3 下載前的授權(quán)控制
 4.5 詳解Struts 2的攔截器機(jī)制
  4.5.1 攔截器在Struts 2中的作用
  4.5.2 Struts 2內(nèi)建的攔截器
  4.5.3 配置攔截器
  4.5.4 使用攔截器
  4.5.5 配置默認(rèn)攔截器
  4.5.6 實現(xiàn)攔截器類
  4.5.7 使用攔截器
  4.5.8 攔截方法的攔截器
  4.5.9 攔截器的執(zhí)行順序
  4.5.10 攔截結(jié)果的監(jiān)聽器
  4.5.11 覆蓋攔截器棧里特定攔截器的參數(shù)
  4.5.12 使用攔截器完成權(quán)限控制
 4.6 使用Struts 2的Ajax支持
  4.6.1 使用stream類型的Result實現(xiàn)Ajax
  4.6.2 JSON的基本知識
  4.6.3 實現(xiàn)Action邏輯
  4.6.4 JSON插件與json類型的Result
  4.6.5 實現(xiàn)JSP頁面
 4.7 本章小結(jié)
第5章 Hibernate的基本用法
第6章 深入使用Hibernate
第7章 Spring的基本用法
第8章 深入使用Spring
第9章 企業(yè)應(yīng)用開發(fā)的思考和策略
第10章 簡單工作流系統(tǒng)

章節(jié)摘錄

版權(quán)頁:   插圖:   3.10.5 加載資源文件的順序 Struts 2提供了如此多的方式來加載國際化資源文件,這些加載國際化資源文件的方式有自己的優(yōu)先順序。假設(shè)我們需要在ChildAction中訪問國際化消息,則系統(tǒng)加載國際化資源文件的優(yōu)先級是: ①優(yōu)先加載系統(tǒng)中保存在ChildAction的類文件相同位置,且baseName為ChildAction的系列資源文件。 ②如果在①中找不到指定key對應(yīng)的消息,且ChildAction有父類ParentAction,則加載系統(tǒng)中保存在ParentAction的類文件相同位置,且baseName為ParentAction的系列資源文件。 ③如果在②中找不到指定key對應(yīng)的消息,且ChildAction有實現(xiàn)接口IChildAction,則加載系統(tǒng)中保存在IChildAction的類文件相同位置,且baseName為IChildAction的系列資源文件。 ④如果在③中找不到指定key對應(yīng)的消息,且ChildAction有實現(xiàn)接口ModelDriven(即使用模型驅(qū)動模式),則對于9etModel()方法返回的model對象,重新執(zhí)行第①步操作。 ⑤如果在④中找不到指定key對應(yīng)的消息,則查找當(dāng)前包下baseName為package的系列資源文件。 ⑥如果在⑤中找不到指定key對應(yīng)的消息,則沿著當(dāng)前包上溯,直到最頂層包來查找baseName為package的系列資源文件。 ⑦如果在⑥中找不到指定key對應(yīng)的消息,則查找struts.custom.i18n.resources常量指定baseName的系列資源文件。 ⑧如果經(jīng)過上面的步驟一直找不到該key對應(yīng)的消息,將直接輸出該key的字符串值;如果在上面的步驟①~⑦的任一步中,找到指定key對應(yīng)的消息,系統(tǒng)停止搜索,直接輸出該key對應(yīng)的消息。 對于在JSP中訪問國際化消息,則簡單得多,它們又可以分成兩種形式: 對于使用標(biāo)簽作為父標(biāo)簽的標(biāo)簽、表單標(biāo)簽的形式 ①將從標(biāo)簽指定的國際化資源文件中加載指定key對應(yīng)的消息。 ②如果在①中找不到指定key對應(yīng)的消息,則查找struts.custom.i18n.resources常量指定baseName的系列資源文件。 ③如果經(jīng)過上面的步驟一直找不到該key對應(yīng)的消息,將直接輸出該key的字符串值;如果在上面的步驟①~②的任一步中,找到指定key對應(yīng)的消息,系統(tǒng)停止搜索,直接輸出該key對應(yīng)的消息。 如果標(biāo)簽、表單標(biāo)簽沒有使用標(biāo)簽作為父標(biāo)簽 直接加載struts.custom.i18n.resources常量指定baseName的系列資源文件。如果找不到該key對應(yīng)的消息,將直接輸出該key的字符串值;否則,輸出該key對應(yīng)的國際化消息。 3.11 使用Struts 2的標(biāo)簽庫 Struts 2也提供了大量標(biāo)簽來幫助開發(fā)表現(xiàn)層頁面,與Struts1的標(biāo)簽庫相比,Struts 2的標(biāo)簽庫功能更加強(qiáng)大,而且更加簡單易用。 3.11.1 Struts 2標(biāo)簽庫概述 與Struts1標(biāo)簽庫相比,Struts 2的標(biāo)簽庫有一個巨大的改進(jìn)之處:Struts 2標(biāo)簽庫的標(biāo)簽不依賴于任何表現(xiàn)層技術(shù),也就是說,Struts 2提供的大部分標(biāo)簽,可以在各種表現(xiàn)層技術(shù)中使用,包括最常用的JSP頁面,也可以在Velocity和FreeMarker等模板技術(shù)中使用。

編輯推薦

《輕量級Java EE企業(yè)應(yīng)用實戰(zhàn)(第3版):Struts 2+Spring 3+Hibernate整合開發(fā)(超值紀(jì)念版)》適合于有較好的Java編程基礎(chǔ),或有初步JSP、Servlet基礎(chǔ)的讀者。尤其適合于對Struts2、Spring、Hibernate了解不夠深入,或?qū)truts2+Spring+Hibernate整合開發(fā)不太熟悉的開發(fā)人員閱讀。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    輕量級Java EE企業(yè)應(yīng)用實戰(zhàn) PDF格式下載


用戶評論 (總計166條)

 
 

  •   輕量級Java EE企業(yè)應(yīng)用實戰(zhàn)(第3版):Struts 2+Spring+Hibernate整合開發(fā)(含CD光盤1張) 好書
  •   Struts 2+Spring+Hibernate整合開發(fā)(含CD光盤1張)不錯~
  •   培訓(xùn)班老師推薦他寫的java瘋狂講義...感覺這本 j2ee也應(yīng)該不錯 都出到第三版了~~ 不過還沒有看...推薦哦~~~
  •   比較不錯java教程,希望李剛老師能單獨出spring,hibernate的教程,,,如果出我一定買
  •   Struts2、Spring3、Hibernate敘述詳細(xì),我喜歡,我推薦
  •   從瘋狂java講義,到經(jīng)典級ejb,到輕量級javaee,內(nèi)容和質(zhì)量都不錯。
  •   還沒有看,看過李剛的“瘋狂JAVA講義”,灰常love,是我目前買的java書中最滿意的,所以又買了這本書。希望一樣好。
  •   這本書適合java EE 的入門人員 來了解javaEE 但給我郵過來的時候沒有帶光碟 遺憾?。
  •   別人推薦的,對于有一定Java ee基礎(chǔ)的初學(xué)者很有幫助!
  •   前端看不到Ext 的影子,配置文件中也看不到struts2 把 Action 交給Spring3 去管理的配置,這本書用來參考很不錯,但與實際項目比起來還差的太遠(yuǎn)哦
  •   java還是最適合大型 企業(yè)級開發(fā)的尤其是服務(wù)器端 開放 自由 框架豐富且靈活Java企業(yè)級開發(fā) 不可不讀
  •   這本書對于學(xué)習(xí)JAVA WEB開發(fā),比較有用,對于SSH框架,還是比較不錯的參考書,有比較詳細(xì)的講解和代碼。
  •   非常適合做過java web開發(fā)但還沒有系統(tǒng)學(xué)習(xí)過的朋友。我雖然也做了幾年了,好多東西僅僅只是用到而已,買本書好好深入研究下。
  •   結(jié)合瘋狂java的官方視頻看,有不錯的效果,里面的講解很詳細(xì)。但是個人也需多加操練。
  •   這本書所針對的閱讀人群,正式學(xué)了j2se以后,在j2ee領(lǐng)域艱難探索的人。
    由于有2年沒弄J2ee,對于相關(guān)的知識點已經(jīng)比較陌生的我來說。這本書的內(nèi)容非常棒的。
    現(xiàn)在我看到了快100頁這樣。在講jsp的一些知識點。
    這本書的章節(jié)、以及知識點的劃分都很不錯。講解的也比較細(xì)致。強(qiáng)烈推薦。
  •   粗略看了下,這書還行 對struts2介紹很詳細(xì) 最主要的是最后兩章集中講如何把3個框架綜合在一起。
  •   很詳細(xì)的介紹了ssh框架的知識,java程序員必備之書!
  •   java開發(fā)提升水平很需要看看
  •   對框架不熟,看了目錄,挺厚的一本書,比較詳細(xì),看了目錄比較適合基礎(chǔ)剛學(xué)完的Java愛好者
  •   李剛老師的書,寫得很詳細(xì),很好。適合有一定java基礎(chǔ)的程序員。
  •   輕量級企業(yè)JavaWeb開發(fā)的方方面面都說到了,認(rèn)真讀完整本書對于企業(yè)實戰(zhàn)很有幫助
  •   書很厚,當(dāng)然也很詳細(xì),因為現(xiàn)在學(xué)到了java框架方面了,所以買這一本書用得到,幫助很大
  •   書的深度很不錯,講解stuts2和sping3很詳細(xì),但是講hienate就不厚道了,還要搭上J2EE那本來學(xué)annotation的JPA
  •   內(nèi)容比較充實,適合初學(xué)ssh架構(gòu)的java編程人員。
  •   J2EE架構(gòu)的詳細(xì)資料,正在研讀中。
  •   這本書,內(nèi)容詳細(xì),解釋全面,每一個講解十分清晰,是一本難得的java教材
  •   書的內(nèi)容深入淺出并有大量的例子,建議至少有基本JAVA基礎(chǔ)閱讀
  •   不錯的J2EE學(xué)習(xí)用書,技術(shù)比較新,值得學(xué)習(xí)。
  •   很適合我的一本書,適合做后臺的程序員用,幫了不少忙,但零基礎(chǔ)的會看不懂,要有一些java經(jīng)驗才可以。
  •   剛從****轉(zhuǎn)到j(luò)ava,這書對我了解架構(gòu)很有幫助
  •   這本書還不錯可以作為架構(gòu)方面入門的過度書,這本書看完了再看單獨的struts2的書。
  •   還沒看,因為才開始接觸java,之前我學(xué)C/C++的。這本書還是要有點java基礎(chǔ)再學(xué)好點~
  •   很經(jīng)典的書,就算沒有java基礎(chǔ)的也能看得懂。
  •   java還沒看,code這本講的通俗易懂,思路清晰,邏輯連貫,通俗易懂~~確實經(jīng)典!
  •   同事喜歡java方面的書籍,希望有大幫助。當(dāng)當(dāng)?shù)臅€是挺不錯,買書就認(rèn)準(zhǔn)當(dāng)當(dāng),送同事的,同事們都很高興
  •   書不錯,不過還是需要有java基礎(chǔ)在看會好很多
  •   書不錯,很實用,不過的有java基礎(chǔ)
  •   J2EE必備~
  •   寫得滿細(xì)的。對有一定core java基礎(chǔ)的同學(xué),并往web方向發(fā)展的很有幫助??梢援?dāng)參考書用。對SSH2概念及用途比較模糊的同學(xué)也可以使用。
  •   這本書寫的很好,對出學(xué)JAVA的來說很詳盡
  •   這本書用來做java的提升書目是不錯的~
  •   貌似,稍微要有那么一點java基礎(chǔ)和html基礎(chǔ)才看得懂...
  •   此書對java程序員,猶如圣經(jīng)對基督徒,每當(dāng)拿起此書,總是懷著虔誠的
  •   大致翻了下,是我想要的那一本!對于一個java初級開發(fā)者來說是一本進(jìn)階的必備書籍!
  •   對于才開始學(xué)習(xí)java的人很有幫助,不錯
  •   該書值得一看。學(xué)習(xí)Java的人可以學(xué)學(xué)。
  •   不錯,準(zhǔn)備開啟java之旅
  •   正在看瘋狂講義,,
  •   這是一本非常好的書,解析的很詳細(xì),每個知識點都有對應(yīng)的小例子,可以讓人學(xué)得很快。不過建議學(xué)過JSP,Servlet,并且對SSH框架有移動了解的人看,否則是看不懂的!??!
  •   這本書很好,不管是新手或者高手都適合,知識點講得非常詳細(xì),即適合新手入門,又適合高手開發(fā)時的查詢用,很值得購買,當(dāng)當(dāng)?shù)呐渌鸵埠芙o力,服務(wù)態(tài)度好,效率又高
  •   很好的書,適合開發(fā)大型項目
  •   還行書挺厚。。。開發(fā)工具室eclipse 不是myeclipse。。。
  •   本書非常喜歡,講的知識非常全面,完全是javaEE后臺開發(fā)的知識
  •   講的比較細(xì),也很全面,比較適合開發(fā)人士學(xué)習(xí)!
  •   輕量級JavaEE,我喜歡呢,看完看重量級的EJB
  •   輕量級這本書很好,快遞很到位,書是正版的
  •   瘋狂系列的書本一直都挺不錯的
  •   講的詳細(xì)實際開發(fā)中檔工具書很不錯
  •   書很不錯,搞開發(fā)的人手一本,可是這書的質(zhì)量,,,,太次了。竟然有幾頁都沒膠狀好。
  •   買這本書是為了將自己平時工作中的遇到的技術(shù)整合一下, 感覺還不錯的。
  •   做JavaEE開發(fā)的一定要看,尤其是新手進(jìn)階
  •   不錯的書,web開發(fā)不錯的工具書。
  •   書很厚,很大,很重,很不錯,每次泡面用來壓碗很嚴(yán)實,面都泡得特別好。順便說下哈,你這評論頁面開發(fā)的有bug,google瀏覽器下評分不能評分 或者 不能選擇5分,害得我還要換到IE下才能給5分
  •   不錯,企業(yè)級開發(fā)
  •   在學(xué)習(xí)三大框架。。。買本書解決一下。。。紙張比想象的好。。因為很多評論說不咋地。。很厚實。。帶光盤。。。內(nèi)容也可以啊。。。
  •   本書值得已看,想要學(xué)框架的就看這本書就行,非常的好,講的很細(xì)致,每個知識點都有代碼,方便理解
  •   跟著時代走,這本書適合一心投入框架的孩紙學(xué)習(xí)。
  •   初看了一下,能看出里面有編程的經(jīng)驗,3個框架都有講,還沒有具體看,應(yīng)該不錯
  •   書是李剛老師寫的,很不錯,適合我這樣的javaEE初學(xué)者。
  •   果然入門上手好教材,不愧是培訓(xùn)專家,講解非常清楚,只是環(huán)境介紹稍有點不詳細(xì)。
  •   內(nèi)容不錯,排版感覺不清晰,有些地方寫的有點啰嗦,比如“jsp就是servlet”這句話寫了n遍
  •   李剛的書還是寫的很好的,唯一不好的我覺得寫太厚了。
  •   李剛老師書猛。好書,值得認(rèn)真學(xué)習(xí)。
  •   非常好,對框架的深入幫助很大!
  •   這本書是李剛系列的書,很給力
  •   很期待,剛看完ssh框架,不是很熟悉,急需一本有實例的書練習(xí)。
  •   我覺得自學(xué)三大框架,這本書是個不錯的選擇。預(yù)計在十天看完這本書,加油!
  •   本書有贈送的視屏但是視頻只有部分
  •   書寫的很好,很適合初學(xué)者學(xué)習(xí),有利于提高實戰(zhàn)技巧。想研究純理論的話,就不適合了。
  •   還是李剛老師講的詳細(xì)
  •   不愧是李剛大師寫你的書,講解的非常到位
  •   正在學(xué)習(xí)中。李剛的書一直很喜歡
  •   我喜歡看這方面的書籍,雖然已經(jīng)后幾本類似的,但還是選擇買來看,想品味筆者得道與相異之處,這書,挺好。。
  •   書很好,講的很詳細(xì),還有視頻可以下載,對以后的學(xué)習(xí)工作會有很大幫助,極力推薦
  •   內(nèi)容很詳細(xì),結(jié)構(gòu)很清晰,目標(biāo)性很強(qiáng),讓人很容易閱讀。書中的例子也很經(jīng)典。
  •   李剛老師的書寫的都很不錯,付出了很多心血
  •   李剛的書,看過幾本,不錯.
  •   第2版的時候,就買了。這次買,就是想繼續(xù)學(xué)習(xí)。隨書的光盤也有,很好。
  •   雖然比預(yù)期晚了一天還是挺快的,3大框架必備啊
  •   好書,好評價。學(xué)習(xí)ssh框架的不能錯過
  •   書的質(zhì)量很好。可是內(nèi)容感覺就是把知識點都講了遍,但是講的很抽象。里面的講解說深度吧,又沒有太深入,說實用性吧,幾個例子都很抽象幾乎沒有實用性。
  •   書比較厚,適合有一定基礎(chǔ)的程序員閱讀。
  •   內(nèi)容很全在,技術(shù)也新。很有參考價值
  •   作者不知道是否因為這個名字而再次出名了,反正他寫得受重視程度不比那個李剛差
  •   李剛出品必屬精品
  •   這本書很不錯,是入門的好書講了很多基礎(chǔ)知識,很不錯推薦
  •   感覺不錯,希望這本書能夠給我?guī)Я诵轮R
  •   紙質(zhì)不錯,內(nèi)容寫的也夠詳細(xì),挺好的,適合有一定基礎(chǔ)的人翻看。
  •   今天略讀了一遍,書的內(nèi)容很豐富,講解的也很詳細(xì),適合我這樣的初學(xué)者。
  •   書里面寫的非常詳細(xì),可能有些知識點放在系列別的書籍中,但是講解的內(nèi)容都非常通俗易懂,從基礎(chǔ)入手,幫助非常大!
 

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

京ICP備13047387號-7