WebWork in Action中文版

出版時間:2006-11  出版社:電子工業(yè)出版社  作者:(美)PATRICK LIGHTBODY  頁數(shù):365  譯者:譚穎華,張云飛  
Tag標(biāo)簽:無  

內(nèi)容概要

  本書是為那些厭煩了Web開發(fā)或者認(rèn)為會存在更好的Web開發(fā)方式的開發(fā)人員準(zhǔn)備的。是一本從頭至尾都使用現(xiàn)實(shí)世界例子講述有關(guān)編寫Web應(yīng)用程序的書籍。在本書中,我們將從簡單的表單及表單處理開始,逐一講述編寫Web應(yīng)用程序的基礎(chǔ)知識:action、interceptor和result,以及控制反轉(zhuǎn)(IoC)模式、對象圖導(dǎo)航語言(OGNL)和所有來自WebWork的實(shí)用JSP標(biāo)簽等。然后我們著眼于高級的特性,例如校驗(yàn)、數(shù)據(jù)類型轉(zhuǎn)換、資源依賴、本地化(i18n)、Web應(yīng)用組件的松耦合,以及大量應(yīng)對Web開發(fā)中常見的挑戰(zhàn)所需要的解決方案?! ”緯且槐緩念^至尾都使用現(xiàn)實(shí)世界例子講述有關(guān)編寫Web應(yīng)用程序的書籍。WebWork所強(qiáng)調(diào)的內(nèi)容是:利用框架實(shí)現(xiàn)你的項(xiàng)目,而不是被框架所阻礙。在本書中,我們將從簡單的表單及表單處理開始,逐一講述編寫Web應(yīng)用程序的基礎(chǔ)知識:action、interceptor和result,以及控制反轉(zhuǎn)(IoC)模式、對象圖導(dǎo)航語言(OGNL)和所有來自WebWork的實(shí)用JSP標(biāo)簽等。然后我們著眼于高級的特性,例如校驗(yàn)、數(shù)據(jù)類型轉(zhuǎn)換、資源依賴、本地化(i18n)、Web應(yīng)用組件的松耦合,以及大量應(yīng)對Web開發(fā)中常見的挑戰(zhàn)所需要的解決方案?! ”緯菫槟切﹨挓┝薟eb開發(fā)或者認(rèn)為會存在更好的Web開發(fā)方式的開發(fā)人員準(zhǔn)備的。我們希望讀者對Java及常用的Java API(如Java Collections API)有基本的認(rèn)識。由于WebWork的內(nèi)容幾乎都與Web相關(guān),那么讀者必須對HTML、JavaScript及CSS具有基本程度的認(rèn)識。而實(shí)際上不管是開發(fā)新手還是富有經(jīng)驗(yàn)的軟件開發(fā)者,甚至是那些缺少Java基礎(chǔ)技術(shù)背景的開發(fā)者都可以閱讀本書,并且能夠馬上提高自己的開發(fā)效率?! ”緯鴮?shí)例源代碼可以從飛思在線和Manning出版社的網(wǎng)站下載。

作者簡介

  Patrick Lightbody曾經(jīng)在多家IT公司工作,其中既有思科系統(tǒng)公司這樣的巨頭,也有硅谷中剛剛起步的的小公司,而現(xiàn)在他領(lǐng)導(dǎo)著Jive軟件公司的專業(yè)服務(wù)組織。在業(yè)余的時間里,他為多個OpenSymphony項(xiàng)目貢獻(xiàn)自己的聰明才智。Patrick現(xiàn)在居住于美國俄勒岡州的波特蘭市。

書籍目錄

第1部分 WebWork簡介第1章 WebWork的概貌	31.1 為什么MVC是重要的	51.1.1 經(jīng)典MVC落伍了	51.1.2 經(jīng)典MVC模式的更新:前端控制器(Front Controller)61.1.3 MVC演化:頁面控制器(Page Controller)	71.2 理解框架和容器	81.2.1 什么是框架	81.2.2 容器能夠做什么	91.3 WebWork:過去、現(xiàn)在和未來	111.3.1 WebWork的歷史	111.3.2 理解XWork的核心	111.3.3 未來發(fā)展方向	121.4 CaveatEmptor應(yīng)用程序	131.5 小結(jié)	14第2章 WebWork方式的HelloWorld	172.1 下載WebWork	182.2 準(zhǔn)備骨架程序(skeleton)	182.2.1 創(chuàng)建web.xml配置文件	192.2.2 創(chuàng)建xwork.xml配置文件	202.2.3 創(chuàng)建webwork.properties配置文件	212.2.4 開發(fā)WebWork應(yīng)用程序的小技巧	212.3 你的第一個action	222.3.1 以WebWork的方式說hello	222.3.2 在瀏覽器上顯示輸出結(jié)果	232.3.3 配置你的新action	242.4 處理輸入	252.5 高級控制流	272.6 讓W(xué)ebWork完成任務(wù)	292.6.1 充分利用ActionSupport	302.6.2  JSP的過渡性修改	312.6.3 探究UI標(biāo)簽庫	312.7 小結(jié)	32第3章 配置WebWork	333.1 配置action、result和interceptor	343.1.1 術(shù)語概述	343.1.2 action	353.1.3 result	393.1.4 interceptor	413.2 高級配置	453.2.1 xwork.xml的DTD	453.2.2 namespace和package	463.2.3 使用include標(biāo)簽實(shí)現(xiàn)組件化	493.3 其他配置文件	573.3.1 Web應(yīng)用程序配置:web.xml	573.3.2 特性配置:webwork.properties	583.4 配置你的Web應(yīng)用程序	603.4.1 大體的布局	613.4.2 必需的類庫	613.4.3 可選的類庫	613.5 小結(jié)	62第2部分 核心概念第4章 實(shí)現(xiàn)WebWork action	654.1 Action接口	664.1.1 result code	664.1.2 處理異常	674.2 使用ActionSupport基類	674.3 理解基本的校驗(yàn)	684.3.1 校驗(yàn)action:Validateable接口	684.3.2 顯示錯誤信息:ValidationAware接口	694.4 使用本地化的文本信息	724.4.1 獲取用戶的locale:LocaleProvider	734.4.2 顯示本地化文本:TextProvider	734.4.3 為其他語言提供文本信息	764.5 高級輸入	764.5.1 中介對象	764.5.2 直接使用域?qū)ο?764.6 使用ModelDriven action	804.6.1 實(shí)現(xiàn)ModelDriven action	804.6.2 使用ModelDriven時需要考慮的問題	844.7 通過ActionContext訪問數(shù)據(jù)	864.7.1 CaveatEmptor:訪問Session	864.7.2 范例:訪問request和response	884.8 處理文件上傳	904.8.1 通過request封裝類訪問上傳文件	914.8.2 自動化文件上傳	924.8.3 配置設(shè)定	934.9 小結(jié)	93第5章 使用interceptor增加功能	955.1 interceptor如何被調(diào)用	965.2 使用預(yù)建的interceptor	975.2.1 工具(Utility)interceptor	985.2.2 設(shè)置參數(shù)	1005.2.3 定義工作流	1035.3 使用預(yù)建的interceptor棧	1055.4 構(gòu)建你自己的interceptor	1075.4.1 使用AroundInterceptor作為基礎(chǔ)	1085.4.2 關(guān)注一個自定義interceptor的范例	1095.4.3 通過PreResultListener在result執(zhí)行之前獲得回調(diào)控制	1115.4.4 注意interceptor間的交互	1135.5 interceptor vs. servlet篩選器	1135.6 小結(jié)	114第6章 控制反轉(zhuǎn)	1156.1 分析這個模式	1166.1.1 用于管理活動資源的通用模式	1166.1.2 反向資源管理	1196.1.3 IoC如何有助于測試	1216.2 IoC的本質(zhì)	1226.2.1 WebWork的IoC歷史	1226.2.2 依賴(Dependencies)	1246.2.3 作用域和生命周期	1256.3 使用WebWork的IoC框架	1266.3.1 配置	1266.3.2 創(chuàng)建新的組件	1296.3.3 對任意對象使用IoC	1326.3.4 處理復(fù)雜的依賴	1336.4 來自CaveatEmptor的一個例子	1366.4.1 HibernateSessionFactory組件	1366.4.2 PersistenceManager組件	1386.4.3 配置組件	1416.4.4 使用這個新的組件	1426.5 其他的選擇	1426.5.1 IoC容器的其他選擇	1436.5.2 非IoC的其他選擇	1446.6 小結(jié)	145第3部分 內(nèi)容的顯示第7章 使用result	1497.1 action之后的狀態(tài)	1507.1.1 簡單的result	1507.1.2 配置result	1527.2 通用result	1547.2.1 分發(fā)至頁面	1547.2.2 重定向至頁面	1597.2.3 鏈接至另一個action	1617.3 其他result	1657.3.1 直接將Velocity模板轉(zhuǎn)換為字節(jié)流并輸出	1667.3.2 FreeMarker:Velocity之外的又一選擇	1707.3.3 使用JasperReports生成報表	1717.4 小結(jié)	174第8章 利用表達(dá)式語言獲取數(shù)據(jù)	1778.1 什么是表達(dá)式語言	1788.1.1 為什么使用表達(dá)式語言	1788.1.2 為什么使用OGNL	1798.1.3 其他表達(dá)式語言	1808.1.4 OGNL的關(guān)鍵概念	1808.2 基本的表達(dá)式特性	1818.2.1 訪問bean屬性	1818.2.2 常量與操作符	1828.2.3 方法調(diào)用	1838.2.4 設(shè)置數(shù)值及表達(dá)式列表	1848.2.5 訪問靜態(tài)方法和類變量	1848.2.6 訪問OGNL上下文及ActionContext	1858.3 操作集合(Collections)	1858.3.1 操作列表(list)和數(shù)組(array)	1868.3.2 操作圖(map)	1868.3.3 對集合進(jìn)行篩選(filtering)和投影(projecting)	1888.3.4 “#”的多種用途	1888.4 表達(dá)式語言的高級特性	1898.4.1 將值棧和表達(dá)式語言聯(lián)系起來	1898.4.2 數(shù)據(jù)類型轉(zhuǎn)換	1908.4.3 處理null屬性的訪問	1918.4.4 動態(tài)創(chuàng)建lambda表達(dá)式	1918.5 小結(jié)	192第9章 標(biāo)簽庫	1939.1 起步	1949.2 WebWork標(biāo)簽總覽	1959.3 數(shù)據(jù)標(biāo)簽	1979.3.1 property標(biāo)簽	1979.3.2 set標(biāo)簽	1989.3.3 push標(biāo)簽	1999.3.4 bean標(biāo)簽	2009.3.5 action標(biāo)簽	2019.4 控制標(biāo)簽	2039.4.1 iterator標(biāo)簽	2039.4.2 if標(biāo)簽和else標(biāo)簽	2059.5 雜項(xiàng)標(biāo)簽	2069.5.1 include標(biāo)簽	2079.5.2 URL標(biāo)簽	2079.5.3 i18n和text標(biāo)簽	2099.5.4 param標(biāo)簽	2119.6 小結(jié)	212第10章 Velocity	21310.1 介紹Velocity	21410.1.1 什么是Velocity	21410.1.2 為使用Velocity做好準(zhǔn)備	21510.2 基本語法和操作	21710.2.1 屬性訪問	21810.2.2 方法調(diào)用	21910.2.3 控制語句:if/else和循環(huán)	21910.2.4 變量賦值	22310.3 高級技術(shù)	22310.3.1 VelocityContext	22310.3.2 context中由WebWork提供的對象	22410.3.3 自定義Velocity context	22410.4 在Velocity中使用JSP標(biāo)簽	22510.5 Velocity模板的裝載	22610.6 小結(jié)	227第11章 UI組件	22911.1 為什么要為UI標(biāo)簽費(fèi)心	23011.1.1 解除痛苦	23011.1.2 不僅僅是表單元素	23711.2 UI標(biāo)簽概述	24011.2.1 模板	24011.2.2 themes	24111.2.3 標(biāo)簽屬性	24511.3 UI標(biāo)簽指南	24611.3.1 通用屬性	24611.3.2 簡單的標(biāo)簽	24811.3.3 基于集合的標(biāo)簽	25111.3.4 高級標(biāo)簽	25611.4 小結(jié)	259第4部分 高級話題第12章 類型轉(zhuǎn)換	26312.1 為什么需要類型轉(zhuǎn)換	26412.1.1 Servlet規(guī)范	26412.1.2 一個沒有類型轉(zhuǎn)換的action	26512.1.3 一個沒有類型轉(zhuǎn)換的視圖	26712.1.4 WebWork類型轉(zhuǎn)換給你帶來了什么	26812.2 配置	26912.2.1 類型轉(zhuǎn)換器的角色	27012.2.2 全局類型轉(zhuǎn)換器	27112.2.3 類級別的類型轉(zhuǎn)換器	27112.3 簡單類型轉(zhuǎn)換	27212.3.1 基本類型轉(zhuǎn)換	27212.3.2 內(nèi)建類型轉(zhuǎn)換	27312.3.3 處理null屬性訪問	27412.4 高級話題	27412.4.1 處理null集合訪問	27412.4.2 處理轉(zhuǎn)換錯誤	27712.4.3 一個整合了全部內(nèi)容的例子	27712.5 小結(jié)	279第13章 校驗(yàn)表單數(shù)據(jù)	28113.1 手動校驗(yàn)數(shù)據(jù)	28313.1.1 在execute()方法里校驗(yàn)	28313.1.2 實(shí)現(xiàn)Validateable 接口	28413.2 使用校驗(yàn)框架	28613.2.1 創(chuàng)建你的第一個 *-validation.xml文件	28713.2.2 注冊校驗(yàn)器	28813.2.3 設(shè)置validation interceptor	29013.2.4 把所有的東西整合在一起	29113.2.5 一些校驗(yàn)的XML示例	29313.3 研究校驗(yàn)框架的高級特性	29513.3.1 實(shí)現(xiàn)一個自定義的校驗(yàn)器	29513.3.2 在不同的上下文中校驗(yàn)	29813.3.3 短路校驗(yàn)	29813.3.4 ExpressionValidator	29913.3.5 使用visitor字段校驗(yàn)器復(fù)用校驗(yàn)	29913.4 小結(jié)	302第14章 國際化	30314.1 快速瀏覽一個國際化的例子	30414.2 信息的來源	30514.2.1 理解資源包的搜索順序	30614.2.2 添加默認(rèn)的資源包	30714.2.3 標(biāo)簽	30814.3 使用國際化信息	30914.3.1 參數(shù)化本地化文字	30914.3.2 在taglib屬性里使用getText()	31014.3.3 格式化日期和數(shù)字	31014.3.4 在校驗(yàn)里使用本地化信息	31114.3.5 為類型轉(zhuǎn)換信息使用國際化字符串	31214.4 提示和技巧	31314.4.1 編程設(shè)置locale	31314.4.2 用類來實(shí)現(xiàn)ResourceBundle	31414.4.3 使用標(biāo)簽傳遞動態(tài)生成的文本給信息字符串	31714.4.4 在所有的地方設(shè)置編碼	31914.4.5 對Java的PropertyResourceBundle的一個提示	32014.4.6 最后一個提示	32014.5 小結(jié)	321第15章 最佳實(shí)踐	32315.1 搭建環(huán)境	32415.1.1 搭建IDE	32415.1.2 重新加載資源	32615.2 單元測試action	32615.2.1 使用mock對象	32715.2.2 IoC高級測試	32815.2.3 處理靜態(tài)變量和本地線程	32915.3 綜合測試	33015.3.1 測試你的配置	33015.3.2 通過配置瀏覽器查看配置	33215.4 測試校驗(yàn)	33415.4.1 對編程校驗(yàn)的測試	33415.4.2 測試validation.xml文件	33415.5 高級UI標(biāo)簽的用法	33715.5.1 覆蓋已有模板	33815.5.2 編寫自定義模板	34015.5.3 編寫默認(rèn)主題	34215.6 使用表單標(biāo)記(token)以防止重復(fù)提交	34315.6.1 應(yīng)用標(biāo)簽	34415.6.2 使用TokenInterceptor	34515.6.3 使用TokenSessionStoreInterceptor重新輸出結(jié)果頁面	34615.7 自動顯示等待頁面	34615.8 用單個action完成CRUD操作	34915.8.1 用newCategory創(chuàng)建新的category	35115.8.2 用viewCategory及editCategory讀和更新實(shí)體數(shù)據(jù)	35115.8.3 使用saveCategory保存Category	35215.8.4 設(shè)置parentCategory屬性	35315.9 小結(jié)	354附錄A WebWork架構(gòu)	355A.1 實(shí)現(xiàn)命令模式	356A.1.1 基本命令模式特性	357A.1.2 高級命令模式特性	357A.2 action	358A.3 interceptor	358A.4 result	358A.5 值棧	359A.6 ActionProxy/ActionInvocation	359A.7 ActionContext	361A.8 Servlet分派器	364A.9 小結(jié)	364

媒體關(guān)注與評論

  第二領(lǐng)先的JavaWeb框架  蒙牛是現(xiàn)在國內(nèi)耳熟能詳?shù)娜闃I(yè)巨頭。它成立于被稱為“乳都”的呼和浩特,在早期有一次精彩的亮相?!叭槎肌钡木用駛冊谀骋惶煸缟虾鋈话l(fā)現(xiàn)在全市的大街小巷樹立起了很多的廣告:創(chuàng)呼和浩特乳業(yè)第二品牌。當(dāng)時所有人都知道,伊利是內(nèi)蒙乳業(yè)的領(lǐng)跑者。這個第二品牌,一下子讓很多人記住了蒙牛這個名字。聰明人往往會發(fā)現(xiàn),很多行業(yè)第二名往往比第一名的質(zhì)量更好,因?yàn)樗袕?qiáng)烈的進(jìn)取心,而處于行業(yè)第一的競爭壓力也迫使它必須做得更好?! ≡?002年之后的JavaWeb框架混戰(zhàn)中,Web框架如同雨后春筍一樣呼啦啦冒出了一大茬。作為發(fā)展最早的MVC框架,Struts毫無疑問擁有第一影響力,而大部分人都認(rèn)為,WebWork占據(jù)了第二的角色。  在技術(shù)上,這個第二當(dāng)之無愧。Struts和WebWork是兩種類似的MVC結(jié)構(gòu),WebWork的開發(fā)目標(biāo)就是在技術(shù)上超越Struts,所以WebWork框架比Struts更加靈活實(shí)用;WebWork不像Tapestry、JSF走得那樣遠(yuǎn),它仍然在實(shí)踐經(jīng)典的MVC框架;但它在框架的邊界上做得更好。Rickard?berg(WebWork的創(chuàng)造者,也是JBoss創(chuàng)始人之一)曾經(jīng)說過:“框架的強(qiáng)大之處不是源自于它能讓你做什么,而是它不能讓你做什么。”優(yōu)雅的WebWork在細(xì)節(jié)上做得十分出色,其XWork和WebWork的兩層實(shí)現(xiàn)將前置處理器、interceptor和IoC容器的職責(zé)與對Web請求的處理截然分開,從而達(dá)到了一種平衡?! ≡诠δ苌希琖ebWork框架在提供了具體的特性來限制開發(fā)者魯莽的出格行為的同時,它也細(xì)致地提供了盡可能多的選擇。例如雖然它自己實(shí)現(xiàn)了輕量級容器,但你也仍然可以插入不同的容器。就這樣,WebWork提供了強(qiáng)大的兼容性和伸縮性。  2005年末,WebWork宣布并入Struts。Struts2.0就是WebWork。這樣,利用Struts第一的超人氣和WebWork更加成熟、靈活的先進(jìn)構(gòu)架,二者實(shí)現(xiàn)了雙贏。這也證明這幾年來的跟跑,WebWork終于完成了向行業(yè)第一的進(jìn)化?!  禬ebWorkinAction》中文版是在中國引進(jìn)的第一本W(wǎng)ebWork著作。這是聲名卓著的Manning出版社的大作之一,本書的英文版在國外也具有很高的評價。這本書全面而細(xì)致地對WebWork的設(shè)計哲學(xué)和具體實(shí)現(xiàn)進(jìn)行了討論,不管你是否使用WebWork進(jìn)行開發(fā),甚至就算你不開發(fā)Web,你都能從本書中汲取到所需的知識。  《WebWorkinAction》中文版翻譯質(zhì)量很高,這并不是因?yàn)槿蛔g者的文學(xué)水平有多高,而是因?yàn)樗麄兌加?年以上的Java開發(fā)經(jīng)驗(yàn)和兩年以上的WebWork應(yīng)用經(jīng)驗(yàn),對WebWork架構(gòu)及其應(yīng)用都有深入研究和理解,所以才能深刻領(lǐng)會和原汁原味地轉(zhuǎn)述《WebWorkinAction》原作?! ”緯且槐镜湫偷拈_發(fā)類書籍,其由淺入深,從第一個HelloWorld慢慢地引導(dǎo)讀者深入了解WebWork框架的各個方面?! τ谝粋€軟件框架來說,它由兩部分組成,一部分是它的核心功能,另一部分是對整個業(yè)界上下游其他工具的整合。WebWork的思想是實(shí)用而精致的,因此WebWork版本雖然從2.1.x更迭到2.2.x,其內(nèi)核卻保持了一致性。書籍的優(yōu)勢是它的容量比較大,它讓你有完整的觀念,有清晰的認(rèn)識,但缺點(diǎn)就是時效性比較差,這也就決定了本書更多地從內(nèi)核而非與其他工具的整合上下功夫,后者更多是在線文檔和ReleaseNotes的職責(zé)。所以,請站在更高的層次來學(xué)習(xí)本書,不僅僅是為了學(xué)會WebWork標(biāo)簽庫的語法,或者是配置文件的寫法?! ∪绻闶浅鯇W(xué)者,建議你至少讀完“第1部分WebWork簡介”(第1章至第3章),了解什么是MVC,完成WebWork的第一個HelloWorld程序并了解action、result和interceptor的概念和用途。后面的章節(jié),你可以在應(yīng)用的時候,有針對性地閱讀?! ∪绻阌辛艘稽c(diǎn)WebWork的開發(fā)經(jīng)驗(yàn),希望能夠更深入地了解WebWork的應(yīng)用,建議你首先閱讀“附錄AWebWork架構(gòu)”,然后閱讀“第4部分高級話題”,這樣可以幫你深入地理解WebWork的開發(fā)思想和思路?! ebWork作為一個設(shè)計靈活的MVC架構(gòu),其幾乎兼容J2EE平臺的所有流行技術(shù)和框架,比如:IoC技術(shù),Hibernate框架,Velocity模板語言,Spring框架,等等。這些本書沒有一一涉獵,有興趣的讀者可以查閱WebWork的幫助文件?! 〔軙凿摗 M江紅開放技術(shù)研究組織創(chuàng)始人  《深入Java虛擬機(jī)》主譯、《深入淺出Hibernate》編著者

編輯推薦

  超越 Struts,把握Web MVC開發(fā)未來?! ”緯菫槟切﹨挓┝薟eb開發(fā)或者認(rèn)為會存在更好的Web開發(fā)方式的開發(fā)人員準(zhǔn)備的。是一本從頭至尾都使用現(xiàn)實(shí)世界例子講述有關(guān)編寫Web應(yīng)用程序的書籍。在本書中,我們將從簡單的表單及表單處理開始,逐一講述編寫Web應(yīng)用程序的基礎(chǔ)知識:action、interceptor和result,以及控制反轉(zhuǎn)(IoC)模式、對象圖導(dǎo)航語言(OGNL)和所有來自WebWork的實(shí)用JSP標(biāo)簽等。然后我們著眼于高級的特性,例如校驗(yàn)、數(shù)據(jù)類型轉(zhuǎn)換、資源依賴、本地化(i18n)、Web應(yīng)用組件的松耦合,以及大量應(yīng)對Web開發(fā)中常見的挑戰(zhàn)所需要的解決方案。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    WebWork in Action中文版 PDF格式下載


用戶評論 (總計0條)

 
 

 

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

京ICP備13047387號-7