基本資料 叢書(shū)名:開(kāi)發(fā)專(zhuān)家之SunONE定價(jià):49.00頁(yè)碼:496字?jǐn)?shù):819.2千字裝禎:平裝版次:1紙張:膠印紙所屬分類(lèi):圖書(shū)-計(jì)算機(jī)/網(wǎng)絡(luò)-程序設(shè)計(jì)-JavaJavaScript J2EE 內(nèi)容簡(jiǎn)介 Struts是目前非常流行的基于MVC的Java Web框架。本書(shū)詳細(xì)介紹了在最新的Struts1.1及不久將推出的Struts1.2版本上設(shè)計(jì)和開(kāi)發(fā)Java Web應(yīng)用的各種技術(shù)。書(shū)中內(nèi)容注重理論與實(shí)踐相結(jié)合,列舉了大量具有典型性和實(shí)用價(jià)值的Web應(yīng)用實(shí)例,并提供了詳細(xì)的開(kāi)發(fā)和部署步驟。隨書(shū)附贈(zèng)光盤(pán)內(nèi)容為本書(shū)所有范例源程序,以及本書(shū)涉及的所有軟件的最新版本的安裝程序。章節(jié)目錄 第1章 Struts與JavaWeb應(yīng)用簡(jiǎn)介 11.1 JavaWeb應(yīng)用概述 11.1.1 Servlet組件 21.1.2 JSP組件 31.1.3 共享數(shù)據(jù)在Web應(yīng)用中的范圍 31.1.4 JavaBean組件及其在Web應(yīng)用中的范圍 51.1.5 客戶(hù)化JSP標(biāo)簽 51.1.6 EJB組件 61.1.7 XML語(yǔ)言 61.1.8 Web服務(wù)器和應(yīng)用服務(wù)器 71.2 Web組件的三種關(guān)聯(lián)關(guān)系 71.2.1 請(qǐng)求轉(zhuǎn)發(fā) 71.2.2 請(qǐng)求重定向 81.2.3 包含 91.3 MVC概述 91.3.1 MVC設(shè)計(jì)模式 101.3.2 JSPModel1和JSPModel2 111.4 Struts概述 131.4.1 Struts實(shí)現(xiàn)MVC的機(jī)制 131.4.2 Struts的工作流程 151.5 小結(jié) 17第2章 Struts應(yīng)用:helloapp應(yīng)用 192.1 分析helloapp應(yīng)用的需求 192.2 運(yùn)用Struts框架 192.3 創(chuàng)建視圖組件 202.3.1 創(chuàng)建JSP文件 202.3.2 創(chuàng)建消息資源文件 232.3.3 創(chuàng)建ActionFormBean 232.3.4 數(shù)據(jù)驗(yàn)證 252.4 創(chuàng)建控制器組件 262.4.1 Action類(lèi)的工作機(jī)制 282.4.2 訪問(wèn)封裝在MessageResources中的本地化文本 282.4.3 業(yè)務(wù)邏輯驗(yàn)證 282.4.4 訪問(wèn)模型組件 292.4.5 向視圖組件傳遞數(shù)據(jù) 302.4.6 把HTTP請(qǐng)求轉(zhuǎn)發(fā)給合適的視圖組件 302.5 創(chuàng)建模型組件 302.6 創(chuàng)建存放常量的Java文件 312.7 創(chuàng)建配置文件 322.7.1 創(chuàng)建Web應(yīng)用的配置文件 322.7.2 創(chuàng)建Struts框架的配置文件 332.8 發(fā)布和運(yùn)行helloapp應(yīng)用 352.8.1 服務(wù)器端裝載hello.jsp的流程 372.8.2 表單驗(yàn)證的流程 372.8.3 邏輯驗(yàn)證失敗的流程 392.8.4 邏輯驗(yàn)證成功的流程 402.9 小結(jié) 41第3章 Struts應(yīng)用的需求分析與設(shè)計(jì) 433.1 收集和分析應(yīng)用需求 433.2 設(shè)計(jì)數(shù)據(jù)庫(kù) 443.3 設(shè)計(jì)應(yīng)用的業(yè)務(wù)邏輯 453.3.1 訪問(wèn)XML格式的用戶(hù)信息 453.3.2 訪問(wèn)數(shù)據(jù)庫(kù) 473.4 設(shè)計(jì)用戶(hù)界面 493.4.1 界面風(fēng)格 503.4.2 使用客戶(hù)化標(biāo)簽 523.5 設(shè)計(jì)ActionForm 533.6 設(shè)計(jì)Action和Action映射 553.6.1 設(shè)計(jì)LogonAction 583.6.2 設(shè)計(jì)LogoffAction 603.6.3 設(shè)計(jì)InsertAction 613.6.4 設(shè)計(jì)SearchAction 623.6.5 設(shè)計(jì)DisplayAllAction 633.7 設(shè)計(jì)客戶(hù)化標(biāo)簽 643.7.1 設(shè)計(jì)ValidateSessionTag標(biāo)簽 643.7.2 設(shè)計(jì)DisplayTag標(biāo)簽 663.7.3 創(chuàng)建客戶(hù)化app標(biāo)簽庫(kù)的TLD文件 673.8 小結(jié) 68第4章 配置Struts應(yīng)用 714.1 Web應(yīng)用的發(fā)布描述文件 714.1.1 Web應(yīng)用發(fā)布描述文件的文檔類(lèi)型定義(DTD) 714.2 為Struts應(yīng)用配置web.xml文件 724.2.1 配置Struts的ActionServlet 724.2.2 聲明ActionServlet的初始化參數(shù) 734.2.3 配置歡迎文件清單 744.2.4 配置錯(cuò)誤處理 754.2.5 配置Struts標(biāo)簽庫(kù) 764.3 Struts配置文件 774.3.1 org.apache.struts.config包 774.3.2 struts-config 元素 794.3.3 data-sources 元素 804.3.4 form-beans 元素 824.3.5 global-exceptions 元素 834.3.6 global-forwards 元素 844.3.7 action-mappings 元素 854.3.8 controller 元素 874.3.9 message-resources 元素 874.3.10 plug-in 元素 884.3.11 配置多應(yīng)用模塊 894.4 Digester組件 914.5 Struts控制面板工具 914.6 重新載入配置文件 934.7 小結(jié) 94第5章 Struts控制器組件 955.1 控制器組件的控制機(jī)制 955.1.1 ActionServlet類(lèi) 965.1.2 RequestProcessor類(lèi) 995.1.3 Action類(lèi) 1055.2 使用內(nèi)置的StrutsAction類(lèi) 1125.2.1 org.apache.struts.actions.ForwardAction類(lèi) 1125.2.2 org.apache.struts.actions.IncludeAction類(lèi) 1145.2.3 org.apache.struts.actions.DispatchAction類(lèi) 1155.2.4 org.apache.struts.actions.LookupDispatchAction類(lèi) 1185.2.5 org.apache.struts.actions.SwitchAction類(lèi) 1215.3 利用Token解決重復(fù)提交 1215.4 實(shí)用類(lèi) 1255.4.1 RequestUtils類(lèi) 1255.4.2 TagUtils類(lèi) 1255.4.3 ModuleUtils類(lèi) 1265.4.4 Globals類(lèi) 1265.5 小結(jié) 127第6章 Struts模型組件 1296.1 模型在MVC中的地位 1296.2 模型的概念和類(lèi)型 1306.2.1 概念模型 1306.2.2 設(shè)計(jì)模型 1316.3 業(yè)務(wù)對(duì)象(BO) 1336.3.1 業(yè)務(wù)對(duì)象的特征和類(lèi)型 1336.3.2 業(yè)務(wù)對(duì)象的重要性 1346.4 業(yè)務(wù)對(duì)象的持久化 1346.4.1 對(duì)業(yè)務(wù)對(duì)象進(jìn)行持久化的作用 1356.4.2 數(shù)據(jù)訪問(wèn)對(duì)象(DAO)設(shè)計(jì)模式 1356.4.3 常用的ORM軟件 1366.5 創(chuàng)建netstore應(yīng)用的模型 1376.5.1 為netstore應(yīng)用創(chuàng)建模型的步驟 1376.5.2 創(chuàng)建netstore應(yīng)用的業(yè)務(wù)對(duì)象 1386.5.3 創(chuàng)建netstore應(yīng)用的數(shù)據(jù)庫(kù) 1426.5.4 netstore應(yīng)用的ORM框架 1456.5.5 聯(lián)合使用業(yè)務(wù)代理和DAO模式 1556.6 小結(jié) 167第7章 Struts視圖組件 1697.1 視圖概述 1697.2 在視圖中使用JavaBean 1707.2.1 DTO數(shù)據(jù)傳輸對(duì)象 1707.2.2 Struts框架提供的DTO:ActionFormBean 1717.3 使用ActionForm 1727.3.1 ActionForm的生命周期 1727.3.2 創(chuàng)建ActionForm 1747.3.3 配置ActionForm 1767.3.4 訪問(wèn)ActionForm 1777.3.5 處理表單跨頁(yè) 1787.4 使用動(dòng)態(tài)ActionForm 1847.4.1 配置動(dòng)態(tài)ActionForm 1857.4.2 動(dòng)態(tài)ActionForm的reset()方法 1867.4.3 訪問(wèn)動(dòng)態(tài)ActionForm 1877.4.4 動(dòng)態(tài)ActionForm的表單驗(yàn)證 1877.4.5 在netstore應(yīng)用中使用動(dòng)態(tài)ActionForm 1877.5 小結(jié) 189第8章 擴(kuò)展Struts框架 1918.1 Struts插件(PlugIn) 1918.2 擴(kuò)展Struts的配置類(lèi) 1948.3 控制器擴(kuò)展點(diǎn) 1958.3.1 擴(kuò)展ActionServlet類(lèi) 1958.3.2 擴(kuò)展RequestProcessor類(lèi) 1968.3.3 擴(kuò)展Action類(lèi) 1988.4 擴(kuò)展視圖組件 2008.5 擴(kuò)展模型組件 2008.6 小結(jié) 204第9章 Struts應(yīng)用的國(guó)際化 2059.1 本地化與國(guó)際化的概念 2059.2 Web應(yīng)用的中文本地化 2069.2.1 處理HTTP請(qǐng)求數(shù)據(jù)編碼 2079.2.2 處理數(shù)據(jù)庫(kù)數(shù)據(jù)編碼 2079.2.3 處理XML配置文件編碼 2079.2.4 處理響應(yīng)結(jié)果的編碼 2089.3 Java對(duì)I18N的支持 2089.3.1 Locale類(lèi) 2089.3.2 ResourceBundle類(lèi) 2149.3.3 MessageFormat類(lèi)和復(fù)合消息 2149.4 Struts框架對(duì)國(guó)際化的支持 2169.4.1 創(chuàng)建Struts的ResourceBundle 2169.4.2 訪問(wèn)ResourceBundle 2179.5 對(duì)helloapp應(yīng)用實(shí)現(xiàn)國(guó)際化 2209.5.1 對(duì)JSP文件的文本、圖片和按鈕進(jìn)行國(guó)際化 2209.5.2 創(chuàng)建臨時(shí)中文資源文件 2219.5.3 對(duì)臨時(shí)資源文件進(jìn)行編碼轉(zhuǎn)換 2229.5.4 創(chuàng)建英文資源文件 2239.5.5 采用Servlet過(guò)濾器設(shè)置請(qǐng)求數(shù)據(jù)的字符編碼 2239.5.6 運(yùn)行國(guó)際化的helloapp應(yīng)用 2259.6 異常處理的國(guó)際化 2269.7 小結(jié) 226第10章 Validator驗(yàn)證框架 22910.1 安裝和配置Validator框架 22910.1.1 validator-rules.xml文件 22910.1.2 validation.xml文件 23310.1.3 Validator插件 23710.2 Validator框架和ActionForm 23810.3 Validator框架和Struts客戶(hù)化標(biāo)簽 24010.4 在netstore應(yīng)用中使用Validator框架 24110.5 創(chuàng)建自定義的驗(yàn)證規(guī)則 24510.6 在Validator框架中使用JavaScript 24710.7 Validator框架的國(guó)際化 25010.8 小結(jié) 251第11章 異常處理 25311.1 Java異常處理 25311.1.1 Java異常 25311.1.2 JVM的方法調(diào)用堆棧 25411.1.3 異常處理對(duì)性能的影響 25511.1.4 系統(tǒng)異常和應(yīng)用異常 25611.1.5 使用異常鏈 25611.1.6 處理多樣化異常 25811.2 Struts框架異常處理機(jī)制概述 26011.3 Struts框架異常處理機(jī)制的細(xì)節(jié) 26111.3.1 JavaWeb容器處理異常的機(jī)制 26111.3.2 ActionServlet類(lèi)處理異常的機(jī)制 26111.3.3 RequestProcessor類(lèi)處理異常的機(jī)制 26211.3.4 ExceptionHandler類(lèi)處理異常的機(jī)制 26311.4 在Struts應(yīng)用中處理異常的各種方式 26611.4.1 創(chuàng)建異常類(lèi) 26611.4.2 由JavaWeb容器捕獲異常 26911.4.3 以配置方式處理異常 27111.4.4 以編程方式處理異常 27711.5 小結(jié) 282第12章 StrutsHTML標(biāo)簽庫(kù) 28312.1 用于生成基本的HTML元素的標(biāo)簽 28312.1.1 html:html 標(biāo)簽 28812.1.2 html:base 標(biāo)簽 28812.1.3 html:link 和 html:rewrite 標(biāo)簽 28912.1.4 html:img 標(biāo)簽 29212.2 基本的表單標(biāo)簽 29312.2.1 html:form 標(biāo)簽 29612.2.2 html:text 標(biāo)簽 29612.2.3 html:cancel 標(biāo)簽 29712.2.4 html:reset 標(biāo)簽 29812.2.5 html:submit 標(biāo)簽 29812.2.6 html:hidden 標(biāo)簽 29912.3 檢查框和單選按鈕標(biāo)簽 29912.3.1 html:checkbox 標(biāo)簽 30412.3.2 html:multibox 標(biāo)簽 30512.3.3 html:radio 標(biāo)簽 30612.4 下拉列表和多選列表標(biāo)簽 30712.4.1 html:select 標(biāo)簽 31112.4.2 html:option 標(biāo)簽 31212.4.3 html:options 標(biāo)簽 31312.4.4 html:optionsCollection 標(biāo)簽 31412.5 在表單中上傳文件標(biāo)簽 31512.5.1 html:file 標(biāo)簽 31912.5.2 在ActionFormBean中設(shè)定FormFile屬性 31912.5.3 在Action類(lèi)中處理文件上傳 31912.6 html:errors 標(biāo)簽 32012.6.1 錯(cuò)誤消息的來(lái)源 32412.6.2 格式化地顯示錯(cuò)誤消息 32612.6.3 html:errors 標(biāo)簽的用法 32612.7 html:messages 標(biāo)簽 32812.8 小結(jié) 330第13章 StrutsBean標(biāo)簽庫(kù) 33113.1 訪問(wèn)HTTP請(qǐng)求信息或JSP隱含對(duì)象 33113.1.1 bean:header 標(biāo)簽 33413.1.2 bean:parameter 標(biāo)簽 33413.1.3 bean:cookie 標(biāo)簽 33513.1.4 bean:page 標(biāo)簽 33613.2 訪問(wèn)Web應(yīng)用資源 33713.2.1 bean:message 標(biāo)簽 33913.2.2 bean:resource 標(biāo)簽 34113.2.3 bean:struts 標(biāo)簽 34113.2.4 bean:include 標(biāo)簽 34213.3 定義或輸出JavaBean 34213.3.1 bean:define 標(biāo)簽 34413.3.2 bean:size 標(biāo)簽 34513.3.3 bean:write 標(biāo)簽 34613.4 小結(jié) 347第14章 StrutsLogic標(biāo)簽庫(kù) 34914.1 進(jìn)行比較運(yùn)算的Logic標(biāo)簽 34914.2 進(jìn)行字符串匹配的Logic標(biāo)簽 35414.3 判斷指定內(nèi)容是否存在的Logic標(biāo)簽 35614.3.1 logic:empty 和 logic:notEmpty 標(biāo)簽 35914.3.2 logic:present 和 logic:notPresent 標(biāo)簽 36014.3.3 logic:messagesPresent 和 logic:messagesNotPresent 標(biāo)簽 36114.4 進(jìn)行循環(huán)遍歷的Logic標(biāo)簽 36314.4.1 遍歷集合 36614.4.2 遍歷Map 36714.4.3 設(shè)定被遍歷的變量 36914.5 進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)或重定向的Logic標(biāo)簽 36914.5.1 logic:forward 標(biāo)簽 36914.5.2 logic:redirect 標(biāo)簽 37014.6 小結(jié) 370第15章 StrutsNested標(biāo)簽庫(kù) 37315.1 nested:nest 和 nested:writeNesting 標(biāo)簽 37315.2 nested:root 標(biāo)簽 37915.3 和其他標(biāo)簽庫(kù)中的標(biāo)簽功能相同的Nested標(biāo)簽 38115.4 小結(jié) 382第16章 Tiles框架 38316.1 采用基本的JSP語(yǔ)句創(chuàng)建復(fù)合式網(wǎng)頁(yè) 38316.2 采用JSP的include指令創(chuàng)建復(fù)合式網(wǎng)頁(yè) 38716.3 采用 tiles:insert 標(biāo)簽創(chuàng)建復(fù)合式網(wǎng)頁(yè) 39116.4 采用Tiles模板創(chuàng)建復(fù)合式網(wǎng)頁(yè) 39416.5 采用Tiles模板和Tiles組件創(chuàng)建復(fù)合式網(wǎng)頁(yè) 39616.5.1 Tiles組件的基本使用方法 39716.5.2 通過(guò)StrutsAction來(lái)調(diào)用Tiles組件 39916.5.3 Tiles組件的組合 39916.5.4 Tiles組件的擴(kuò)展 40216.6 小結(jié) 403第17章 Struts與EJB組件 40517.1 J2EE體系結(jié)構(gòu)簡(jiǎn)介 40517.2 創(chuàng)建EJB組件 40617.2.1 編寫(xiě)Remote接口 40717.2.2 編寫(xiě)Home接口 40817.2.3 編寫(xiě)EnterpriseJavaBean類(lèi) 40817.3 在Struts應(yīng)用中訪問(wèn)EJB組件 41317.3.1 創(chuàng)建業(yè)務(wù)代理實(shí)現(xiàn)類(lèi)NetstoreEJBDelegate 41317.3.2 運(yùn)用EJBHomeFactory模式 41617.4 發(fā)布J2EE應(yīng)用 41917.4.1 在Jboss-Tomcat上部署EJB組件 41917.4.2 在Jboss-Tomcat上部署Web應(yīng)用 42117.4.3 在Jboss-Tomcat上部署J2EE應(yīng)用 42217.5 小結(jié) 424第18章 Struts與SOAPWeb服務(wù) 42518.1 SOAP簡(jiǎn)介 42518.2 建立ApacheAXIS環(huán)境 42718.3 創(chuàng)建和發(fā)布SOAP服務(wù) 42818.3.1 創(chuàng)建實(shí)現(xiàn)SOAP服務(wù)的Java類(lèi) 42818.3.2 創(chuàng)建Web服務(wù)發(fā)布描述文件 42918.3.3 發(fā)布SOAP服務(wù) 43218.4 在Struts應(yīng)用中訪問(wèn)SOAP服務(wù) 43218.5 小結(jié) 438第19章 Struts與Apache通用日志包 43919.1 Apache通用日志包概述 43919.1.1 Log接口 43919.1.2 LogFactory接口 44119.2 常用的日志實(shí)現(xiàn) 44119.2.1 NoOpLog日志器 44119.2.2 SimpleLog日志器 44219.2.3 Log4J日志器 44219.3 配置通用日志接口 44319.3.1 準(zhǔn)備JAR文件 44319.3.2 指定日志器 44319.3.3 設(shè)置日志器的屬性 44419.4 配置Log4J 44419.4.1 配置Log4J的一般步驟 44419.4.2 Log4J的配置樣例 44619.4.3 Log4J對(duì)應(yīng)用性能的影響 44719.5 在Struts應(yīng)用中訪問(wèn)通用日志接口 44719.5.1 在Action類(lèi)中訪問(wèn)通用日志接口 44819.5.2 在JSP中訪問(wèn)通用日志接口 45019.6 小結(jié) 454第20章 用ANT工具管理Struts應(yīng)用 45520.1 Web應(yīng)用常用的開(kāi)發(fā)目錄結(jié)構(gòu) 45520.2 安裝配置ANT 45520.3 創(chuàng)建build.xml文件 45620.3.1 設(shè)置公共屬性 46220.3.2 設(shè)置classpath 46320.3.3 定義helptarget 46320.3.4 定義clean-alltarget 46320.3.5 定義preparetarget 46420.3.6 定義compiletarget 46420.3.7 定義buildtarget 46520.3.8 定義deploytarget 46620.3.9 定義javadoctarget 46620.4 運(yùn)行ANT 46620.4.1 運(yùn)行helptarget 46620.4.2 運(yùn)行deploytarget 46720.4.3 運(yùn)行javadoctarget 46820.5 小結(jié) 468 第21章 用StrutsTestCase測(cè)試Struts應(yīng)用 46921.1 StrutsTestCase簡(jiǎn)介 46921.2 制訂單元測(cè)試用例 46921.3 創(chuàng)建StrutsTestCase測(cè)試類(lèi) 47021.4 用ANT工具運(yùn)行測(cè)試程序 47121.4.1 準(zhǔn)備必要的JAR文件 47121.4.2 在build.xml文件中定義testtarget 47121.4.3 運(yùn)行測(cè)試程序 47221.5 創(chuàng)建包含多個(gè)單元測(cè)試用例的測(cè)試類(lèi) 47321.6 小結(jié) 475附錄A Struts1.1的UML類(lèi)框圖 476附錄B Struts資源 477B.1 Struts郵件列表 477B.2 Struts資源Web站點(diǎn) 477B.3 Tiles標(biāo)簽庫(kù)站點(diǎn) 477B.4 Nested標(biāo)簽庫(kù)站點(diǎn) 478B.5 StrutsGUI工具 478B.6 EasyStruts工程 478附錄C 發(fā)布和運(yùn)行addressbook應(yīng)用 479C.1 發(fā)布addressbook應(yīng)用 479C.2 運(yùn)行addressbook應(yīng)用 479附錄D 發(fā)布和運(yùn)行netstore應(yīng)用 482D.1 運(yùn)行netstore所需的軟件 482D.2 netstore應(yīng)用的目錄結(jié)構(gòu) 483D.3 安裝netstore數(shù)據(jù)庫(kù) 484D.4 發(fā)布netstore應(yīng)用 484D.4.1 在工作模式1下發(fā)布netstore應(yīng)用 484D.4.2 在工作模式2下發(fā)布netstore應(yīng)用 485D.4.3 在工作模式3下發(fā)布netstore應(yīng)用 485D.4.4 在工作模式4下發(fā)布netstore應(yīng)用 486D.4.5 在工作模式5下發(fā)布netstore應(yīng)用 486D.5 運(yùn)行netstore應(yīng)用 487附錄E 編譯本書(shū)的JavaWeb樣例 491附錄F Struts1.2API的新特征 492 序言/前言 前言: 如今,Java2EnterpriseEdition(J2EE)平臺(tái)已經(jīng)日趨成熟,并得到廣泛應(yīng)用。在J2EE技術(shù)中發(fā)展最迅猛的當(dāng)屬JavaServerPage(JSP)技術(shù)。幾乎所有的基于Java的Web應(yīng)用都使用JSP。一些免費(fèi)、開(kāi)放源代碼的JSP/Servlet容器,如Apache軟件組織提供的Tomcat,更進(jìn)一步推動(dòng)了JSP技術(shù)的發(fā)展。 隨著JSP技術(shù)的成熟,越來(lái)越多的開(kāi)發(fā)人員開(kāi)始使用Web應(yīng)用框架??蚣転閃eb應(yīng)用提供了預(yù)備的軟件架構(gòu)和相關(guān)的軟件包,它大大提高了開(kāi)發(fā)Web應(yīng)用的速度和效率?,F(xiàn)在,當(dāng)開(kāi)發(fā)人員開(kāi)始一個(gè)新的項(xiàng)目時(shí),他們首先考慮的問(wèn)題不是 我們是否需要框架 ,而是 我們應(yīng)該使用什么樣的框架 。 Jakarta-Struts是Apache軟件組織提供的一項(xiàng)開(kāi)放源代碼項(xiàng)目,它為JavaWeb應(yīng)用提供了模型-視圖-控制器(Model-View-Controller,MVC)框架,尤其適用于開(kāi)發(fā)大型可擴(kuò)展的Web應(yīng)用。Struts這個(gè)名字來(lái)源于在建筑和舊式飛機(jī)中使用的支撐金屬架。Struts為Web應(yīng)用提供了一個(gè)通用的框架,使得開(kāi)發(fā)人員可以把精力集中在如何解決實(shí)際業(yè)務(wù)問(wèn)題上。此外,Struts框架提供了許多可供擴(kuò)展和定制的地方,使得應(yīng)用程序可以方便地?cái)U(kuò)展框架,來(lái)更好地適應(yīng)用戶(hù)的實(shí)際需求。 當(dāng)然,開(kāi)發(fā)人員需要花一定的時(shí)間來(lái)學(xué)習(xí)和運(yùn)用該框架。不過(guò),一旦掌握了Struts,就可以大大簡(jiǎn)化Web應(yīng)用的開(kāi)發(fā)過(guò)程,提高開(kāi)發(fā)效率,縮短開(kāi)發(fā)周期。如果想綜合利用Servlet和JSP的優(yōu)點(diǎn)來(lái)建立可擴(kuò)展的Web應(yīng)用,Struts是不錯(cuò)的選擇。 本書(shū)結(jié)合大量典型實(shí)用的JavaWeb實(shí)例,詳細(xì)闡明了在最新的Struts1.1及不久將推出的Struts1.2版本上設(shè)計(jì)與開(kāi)發(fā)JavaWeb應(yīng)用的技術(shù)。 本書(shū)的組織結(jié)構(gòu)和主要內(nèi)容 本書(shū)按照由淺入深、前后照應(yīng)的順序來(lái)安排內(nèi)容。對(duì)復(fù)雜的Struts框架講解猶如庖丁解牛,先提供整體概貌,再深入局部細(xì)節(jié)。在剖析局部時(shí),注重和框架的其他部分相聯(lián)系。相信讀者通過(guò)從整體到局部,再?gòu)木植康秸w的反復(fù)學(xué)習(xí),最終會(huì)對(duì)Struts框架了如指掌,游刃有余,并能把Struts框架靈活運(yùn)用到實(shí)際的JavaWeb開(kāi)發(fā)中。本書(shū)主要包含以下內(nèi)容。 1.Struts框架入門(mén) 第1章到第3章為入門(mén)篇,第1章簡(jiǎn)單介紹了開(kāi)發(fā)JavaWeb涉及的各種技術(shù),第2章和第3章通過(guò)兩個(gè)Struts應(yīng)用實(shí)例:helloapp應(yīng)用和addressbook應(yīng)用,引導(dǎo)讀者把握設(shè)計(jì)、開(kāi)發(fā)和部署Struts應(yīng)用的整體流程,充分體會(huì)Struts框架在開(kāi)放大型、可擴(kuò)展的Web應(yīng)用方面發(fā)揮的優(yōu)勢(shì)。 2.配置Struts應(yīng)用,開(kāi)發(fā)模型、視圖和控制器 第4章到第7章以一個(gè)電子商務(wù)網(wǎng)站netstore應(yīng)用為例,深入探討了Struts框架的核心組件ActionServlet和RequestProcessor的實(shí)現(xiàn)原理,詳細(xì)介紹了開(kāi)發(fā)Struts應(yīng)用的模型、視圖和控制器的各種技術(shù),細(xì)致地描述了Struts配置文件的每個(gè)元素的使用方法。 3.開(kāi)發(fā)Struts應(yīng)用的一些實(shí)用技術(shù) 第8章到第11章介紹了開(kāi)發(fā)Struts應(yīng)用的一些實(shí)用技術(shù),如Struts框架的擴(kuò)展點(diǎn)、Struts應(yīng)用的國(guó)際化、Validator驗(yàn)證框架和異常處理機(jī)制等。 4.Struts標(biāo)簽庫(kù)的使用方法 第12章到第16章結(jié)合具體的Struts應(yīng)用實(shí)例,詳細(xì)介紹了Struts標(biāo)簽庫(kù):HTML、Bean、Logic、Nested和Tiles標(biāo)簽庫(kù)的使用方法。 5.Struts框架和EJB以及Web服務(wù)的集成 第17章和第18章介紹如何采用EJB和Web服務(wù)來(lái)實(shí)現(xiàn)Struts框架的模型,并且介紹了如何運(yùn)用業(yè)務(wù)代理模式來(lái)提高模型層和控制層之間的相互獨(dú)立性,使得當(dāng)模型的實(shí)現(xiàn)發(fā)生變化時(shí),不會(huì)對(duì)控制層造成任何影響。 6.Struts應(yīng)用的日志、項(xiàng)目管理以及測(cè)試 第19章到第21章介紹了如何采用第三方軟件,如ApacheCommonLoggingAPI、Log4J、ANT和StrutsTestCase,來(lái)控制Struts應(yīng)用的輸出日志、管理以及測(cè)試Struts應(yīng)用項(xiàng)目。 本書(shū)的范例程序 JavaWeb開(kāi)發(fā)是實(shí)踐性很強(qiáng)的技術(shù),為了使讀者不但能掌握Struts框架的理論,并且能迅速獲得開(kāi)發(fā)Struts應(yīng)用的實(shí)際經(jīng)驗(yàn),徹底掌握并會(huì)靈活運(yùn)用Struts技術(shù),本書(shū)提供了大量典型實(shí)用的JavaWeb實(shí)例。所有的范例選用最新的Struts1.1版本(2004/5/10發(fā)布),在Tomcat5.0.24上運(yùn)行通過(guò);對(duì)于用EJB來(lái)實(shí)現(xiàn)模型的netstore應(yīng)用,在JBoss與Tomcat的集成軟件(Jboss-3.2.1_tomcat-4.1.24)上運(yùn)行通過(guò)。在本書(shū)附贈(zèng)光盤(pán)中包含了所有范例源文件。本書(shū)以9個(gè)Struts應(yīng)用的例子貫穿全書(shū)。 1.netstore應(yīng)用 netstore應(yīng)用是一個(gè)充分運(yùn)用了Struts各種技術(shù)的綜合例子,它實(shí)現(xiàn)了一個(gè)購(gòu)物網(wǎng)站,更加貼近于實(shí)際應(yīng)用。本書(shū)以netstore應(yīng)用為例,詳細(xì)介紹了模型的設(shè)計(jì)與開(kāi)發(fā)策略,涉及的技術(shù)包括:業(yè)務(wù)對(duì)象、模型與關(guān)系型數(shù)據(jù)庫(kù)之間的持久化框架、控制層訪問(wèn)模型的業(yè)務(wù)代理模式,以及采用EJB和SOAPWeb服務(wù)來(lái)實(shí)現(xiàn)模型。 2.helloapp應(yīng)用 helloapp應(yīng)用是本書(shū)最簡(jiǎn)單的Struts應(yīng)用例子,本書(shū)一共提供了5個(gè)版本,每個(gè)版本各有側(cè)重點(diǎn):l version1:引導(dǎo)讀者入門(mén),把握設(shè)計(jì)、開(kāi)發(fā)和部署Struts應(yīng)用的整體流程。l version2:介紹Struts應(yīng)用的國(guó)際化。l version3:介紹如何在Struts應(yīng)用中使用ApacheCommonLoggingAPI和Log4J。l version4:介紹如何用ANT工具來(lái)管理Struts應(yīng)用項(xiàng)目。l version5:介紹如何用StrutsTestCase工具來(lái)測(cè)試Struts應(yīng)用。 3.a(chǎn)ddressbook應(yīng)用 addressbook應(yīng)用實(shí)現(xiàn)了一個(gè)電子通訊簿,本書(shū)提供了3個(gè)版本,每個(gè)版本各有側(cè)重點(diǎn):l version1:引導(dǎo)讀者入門(mén),進(jìn)一步掌握為視圖、控制器和模型組件分配功能的技巧,以及如何實(shí)現(xiàn)這些組件之間的通信和數(shù)據(jù)共享。l version2:介紹Struts插件的用法,以及使用Token機(jī)制來(lái)避免表單數(shù)據(jù)的重復(fù)提交。l version3:介紹如何為HTML表單分頁(yè)。 4.exsample應(yīng)用 exsample應(yīng)用用于演示如何在Struts應(yīng)用中處理異常。 5.htmltaglibs應(yīng)用 htmltaglibs應(yīng)用用于演示如何使用StrutsHTML標(biāo)簽庫(kù)。 6.beantaglibs應(yīng)用 beantaglibs應(yīng)用用于演示如何使用StrutsBean標(biāo)簽庫(kù)。 7.logictaglibs應(yīng)用 logictaglibs應(yīng)用用于演示如何使用StrutsLogic標(biāo)簽庫(kù)。 8.nestedtaglibs應(yīng)用 nestedtaglibs應(yīng)用用于演示如何使用StrutsNested標(biāo)簽庫(kù)。 9.tilestaglibs應(yīng)用 tilestaglibs應(yīng)用用于演示如何使用StrutsTiles框架和Tiles標(biāo)簽庫(kù)。 這本書(shū)是否適合您 本書(shū)側(cè)重于介紹基于Struts的JavaWeb應(yīng)用的框架結(jié)構(gòu),適用于所有從事開(kāi)發(fā)JavaWeb應(yīng)用的讀者。閱讀本書(shū),要求讀者具備Servlet和JSP編程的基礎(chǔ)知識(shí)。如果您對(duì)這些還不了解,可以參考作者的另一本書(shū):《Tomcat與JavaWeb開(kāi)發(fā)技術(shù)詳解》,該書(shū)已由電子工業(yè)出版社于2004年4月出版。 如果您是開(kāi)發(fā)Struts應(yīng)用的新手,建議按照本書(shū)的先后順序來(lái)學(xué)習(xí)。您可以先從簡(jiǎn)單的Struts應(yīng)用實(shí)例下手,把握Struts框架的大致流程,然后逐步深入了解各個(gè)組件的細(xì)節(jié)。Struts框架本身是一個(gè)環(huán)環(huán)相扣的有機(jī)整體,本書(shū)在內(nèi)容安排上注重前后照應(yīng),幫助讀者把Struts框架的各個(gè)環(huán)節(jié)聯(lián)系起來(lái),最終達(dá)到對(duì)Struts框架了如指掌。 如果您已經(jīng)在開(kāi)發(fā)Struts應(yīng)用方面有著豐富經(jīng)驗(yàn),則可以把本書(shū)作為實(shí)用的Struts技術(shù)參考資料。本書(shū)深入探討了Struts框架的內(nèi)置核心組件的實(shí)現(xiàn)原理,詳細(xì)介紹了開(kāi)發(fā)Struts應(yīng)用的各種實(shí)用技術(shù)。靈活運(yùn)用本書(shū)介紹的Struts最新技術(shù),將使Struts應(yīng)用開(kāi)發(fā)更加得心應(yīng)手。 實(shí)踐是掌握J(rèn)avaWeb開(kāi)發(fā)技術(shù)最迅速有效的辦法。以Struts標(biāo)簽庫(kù)為例,已經(jīng)在使用Struts的讀者一定有這樣的體會(huì),即使熟讀了Apache網(wǎng)站提供的關(guān)于Struts標(biāo)簽庫(kù)的文檔,還是對(duì)如何使用Struts標(biāo)簽庫(kù)無(wú)從下手。為了讓讀者徹底掌握并學(xué)會(huì)靈活運(yùn)用Struts技術(shù),本書(shū)提供了大量典型的例子,在本書(shū)附贈(zèng)光盤(pán)上提供了完整的源代碼,以及軟件安裝程序。建議讀者在學(xué)習(xí)Struts技術(shù)的過(guò)程中,善于將理論與實(shí)踐相結(jié)合,達(dá)到事半功倍的效果。 光盤(pán)使用說(shuō)明 本書(shū)配套光盤(pán)包含以下目錄。 1.software目錄 在該目錄下包含了本書(shū)內(nèi)容涉及的所有軟件的最新版本的安裝程序,包括: (1)Tomcat的安裝軟件(Tomcat5.0.24)。 (2)MySQL服務(wù)器的安裝軟件(MySQL4.0.14)。 (3)ApacheAXIS軟件(ApacheAXIS1.1)。 (4)Log4J軟件(Log4J1.2.8)。 (5)Struts軟件(Struts1.1,2004/05/10發(fā)布)。 (6)Struts源代碼(Struts1.1,2004/05/11發(fā)布)。 (7)JakartaLog標(biāo)簽庫(kù)(JakartaLog1.2)。 (8)JBoss與Tomcat的集成軟件(Jboss-3.2.1_tomcat-4.1.24)。 (9)Ant的安裝軟件(Ant1.5.4)。 (10)StrutsTestCase軟件(StrutsTestCase2.1.0,2004/01/15發(fā)布)。 (11)OJB軟件(OJB1.0)。 2.lib目錄 在該目錄下提供了編譯本書(shū)提供的JavaWeb應(yīng)用所需的JAR文件。 3.sourcecode目錄 在該目錄下提供了本書(shū)所有的源程序。 本書(shū)在編寫(xiě)過(guò)程中得到了Apache軟件組織和SUN公司在技術(shù)上的大力支持,飛思科技產(chǎn)品研發(fā)中心負(fù)責(zé)監(jiān)制工作,此外曹漢玉、孫金定和曹文偉為本書(shū)的編寫(xiě)提供了有益的幫助,在此表示衷心的感謝!盡管我們盡了最大努力,但本書(shū)難免會(huì)有不妥之處,歡迎各界專(zhuān)家和讀者朋友批評(píng)指正,我們的聯(lián)系方式是: 電 話(huà):(010)68134545 68131648 電子郵件:support@fecit.com.cn linda_j2ee@yahoo.com.cn 飛思在線:http://www.fecit.com.cn http://www.fecit.net 答疑網(wǎng)址:http://www.fecit.com.cn/question.htm 通用網(wǎng)址:計(jì)算機(jī)圖書(shū)、飛思、飛思教育、飛思科技、FECIT 編 者 飛思科技產(chǎn)品研發(fā)中心