出版時(shí)間:2011-8 出版社:化學(xué)工業(yè)出版社 作者:高洪巖 頁數(shù):654
Tag標(biāo)簽:無
前言
本書是一本講述Weblogic10.3+EJB3+JPA+Struts2+Hibernate+Spring開發(fā)的理論教程?NO! 本書是一本不具有實(shí)戰(zhàn)開發(fā)意義的教學(xué)資料?NO! 本書是一本看過后還不知道如何進(jìn)行Weblogic10.3+EJB3+JPA+Struts2+Hibernate+Spring開發(fā)的自學(xué)教程?NO! 本書是一本提及知識(shí)點(diǎn)卻不以代碼做案例的教程?NO! 寫作起因 編者也曾經(jīng)歷過一步一個(gè)腳印的充滿樂趣與煩惱的編程學(xué)習(xí)過程。在這個(gè)學(xué)習(xí)過程中,編者也有過學(xué)習(xí)了非常多的知識(shí)點(diǎn)卻不知道如何應(yīng)用到實(shí)際開發(fā)中的痛苦經(jīng)歷。經(jīng)常看過一本書后,卻不知道如何在開發(fā)工具中設(shè)計(jì)出優(yōu)美的代碼。正像某些書中簡(jiǎn)單介紹了設(shè)置Java環(huán)境變量的重要性,卻不告訴你在哪里設(shè)置環(huán)境變量一樣,這樣的感覺相信很多讀者都有深刻的體會(huì)。 本書定位 由于“理論化,教條化,漢字化”這樣的技術(shù)書籍在市面上已經(jīng)充斥了太多,所以編者根據(jù)多年的Java工作經(jīng)驗(yàn)編寫了這本適合Weblogic10.3+EJB3+JPA+Struts2+Hibernate+Spring開發(fā)程序員的教程。本書的讀者需要具有一定的JSP/Servlet編程基礎(chǔ),并且對(duì)面向?qū)ο缶幊叹哂幸欢ǖ恼J(rèn)識(shí),還要對(duì)數(shù)據(jù)庫和DBMS的操作及原理也有一定的了解,如果同時(shí)具有非常系統(tǒng)的Http協(xié)議知識(shí),那么本書將非常適合您。如果您也正好需要這樣的書籍,請(qǐng)看本書內(nèi)容。
內(nèi)容概要
實(shí)用為王就是這本書的特點(diǎn)!
這是一本講解如何使用Weblogic10.3+EJB3 +JPA+Struts2+Hibernate+Spring開發(fā)Java
Web應(yīng)用程序的實(shí)用性圖書,書中在具體講解SSH2開發(fā)技術(shù)的同時(shí),結(jié)合MVC模式與MyEclipse工具,演示了實(shí)際應(yīng)用項(xiàng)目開發(fā)的全過程。
《JavaEE實(shí)用開發(fā)指南:基于Weblogic+EJB3+Struts2+Hibernate+Spring》共分19章,內(nèi)容以實(shí)用為主,技術(shù)和實(shí)例相輔相成。書中首先介紹Struts2的使用,讓讀者對(duì)視圖層的結(jié)構(gòu)有非常好的掌握;然后詳細(xì)介紹了Hibernate的使用與配置文件的映射關(guān)系,并對(duì)雙向一對(duì)多的情況進(jìn)行了非常詳細(xì)的介紹;接著帶領(lǐng)讀者去學(xué)習(xí)Spring技術(shù),以AOP和IOC的行為注入方式進(jìn)行非常詳細(xì)的講解,以1個(gè)SSH2整合并且有增刪改查功能的示例結(jié)束SSH2整合的歷程;最后又使用Weblogic10.3+EJB3+JPA+JPQL作為引用點(diǎn),介紹Java
EE重量級(jí)開發(fā)的精髓所在。
《JavaEE實(shí)用開發(fā)指南:基于Weblogic+EJB3+Struts2+Hibernate+Spring》實(shí)用性、系統(tǒng)性、條理性極強(qiáng),操作思路明晰,通篇體現(xiàn)出作者的豐富經(jīng)驗(yàn),既可以作為廣大工程技術(shù)人員的參考書,也適合大中專院校相關(guān)專業(yè)的學(xué)生使用。
作者簡(jiǎn)介
作者擁有多年軟件開發(fā)及軟件教育培訓(xùn)經(jīng)驗(yàn),曾先后于大連東軟、北京中軟國(guó)際、清華同方等公司任職高級(jí)軟件開發(fā)工程師,其出版的多部作品都是軟件開發(fā)的必備技能,實(shí)用性強(qiáng),幫助讀者在最短的時(shí)間內(nèi)掌握軟件開發(fā)的常用技巧及技能。
書籍目錄
第1章 初入Struts2
1.1 Struts2
1.1.1 Struts2概述
1.1.2 官方網(wǎng)站
1.2 Struts2——從登錄開始
1.2.1 新建Web項(xiàng)目
1.2.2 添加Struts2框架支持文件
1.2.3 新建3個(gè)JSP頁面
1.2.4 新建業(yè)務(wù)(控制)組件
1.2.5 在XML文件中加入過濾器
1.2.6 新建中心配置文件
1.2.7 在配置文件中注冊(cè)Action和result
1.2.8 部署項(xiàng)目
1.2.9 實(shí)例總結(jié)
第2章 控制層Action與配置文件struts.xml
2.1 實(shí)現(xiàn)Action接口
2.1.1 Action接口的實(shí)現(xiàn)目的
2.1.2 Action接口的定義
2.1.3 新建一個(gè)Action接口實(shí)例的項(xiàng)目
2.1.4 Action接口的實(shí)現(xiàn)類
2.2 用ActionSupport類驗(yàn)證提交表單
2.2.1 ActionSupport類的結(jié)構(gòu)
2.2.2 Validateable接口的作用
2.2.3 ValidationAware接口的作用
2.2.4 實(shí)現(xiàn)ActionSupport類的實(shí)例與加入validate驗(yàn)證方法
2.3 將JSP提交的表單封裝為一個(gè)JavaBean
2.3.1 屬性驅(qū)動(dòng)的適用場(chǎng)合
2.3.2 新建一個(gè)封裝URL參數(shù)的實(shí)體類
2.3.3 新建持有實(shí)體類引用的控制層
2.3.4 運(yùn)行結(jié)果
2.4 由Action轉(zhuǎn)發(fā)到JSP頁面
2.4.1 在JSP頁面中的轉(zhuǎn)發(fā)操作
2.4.2 創(chuàng)建轉(zhuǎn)發(fā)的控制層組件
2.4.3 更改配置文件中的result對(duì)象
2.4.4 使用EL和Struts2的標(biāo)簽輸出數(shù)據(jù)
2.4.5 運(yùn)行結(jié)果
2.4.6 result對(duì)象的種類
2.5 由Action重定向到Action——無參數(shù)
2.5.1 創(chuàng)建起始控制層Login.java
2.5.2 創(chuàng)建目的控制層List.java
2.5.3 在配置文件中配置重定向的重點(diǎn)
2.5.4 創(chuàng)建顯示列表的JSP頁面
2.6 由Action重定向到Action——有參數(shù)
2.6.1 需要重定向傳遞參數(shù)場(chǎng)合
2.6.2 創(chuàng)建起始控制層Login.java
2.6.3 更改配置文件struts.xml
2.6.4 創(chuàng)建目的控制層List.java
2.6.5 使用JSTL和EL在JSP頁面中輸出數(shù)據(jù)
2.7 多模塊多配置文件開發(fā)
2.7.1 創(chuàng)建模塊的控制層
2.7.2 創(chuàng)建模塊的配置文件
2.7.3 使用include標(biāo)記導(dǎo)入多個(gè)配置文件
2.7.4 創(chuàng)建各模塊使用的JSP頁面
2.7.5 運(yùn)行各模塊的效果
2.8 多業(yè)務(wù)方法時(shí)的處理
2.8.1第一種實(shí)現(xiàn)方式——通過URL嘆號(hào)參數(shù)
2.8.2第二種實(shí)現(xiàn)方式——在Action標(biāo)記中加入method屬性
2.9 自定義全局result
2.9.1 創(chuàng)建全局result實(shí)例和控制層代碼
2.9.2 聲明全局的result對(duì)象
2.9.3 運(yùn)行結(jié)果
2.10 在Action中使用Servlet的API(緊耦版)
2.10.1 將數(shù)據(jù)放到不同的作用域中
2.10.2 從不同作用域中取值
2.11 在Action中使用Servlet的API(松耦版)
2.11.1 創(chuàng)建控制層
2.11.2 創(chuàng)建JSP視圖
第3章 Struts2文件的上傳與下載
3.1 使用Struts2進(jìn)行單文件上傳
3.1.1 Struts2上傳功能的底層依賴
3.1.2 新建上傳文件的JSP頁面
3.1.3 設(shè)計(jì)上傳文件的控制層代碼
3.1.4 Action中File實(shí)例的命名規(guī)則
3.1.5 設(shè)置上傳文件的大小
3.1.6 設(shè)計(jì)配置文件
3.1.7 成功上傳單個(gè)文件
3.2 使用Struts2進(jìn)行多文件上傳
3.2.1 創(chuàng)建上傳多個(gè)文件的JSP頁面
3.2.2 設(shè)計(jì)上傳的控制層代碼
3.2.3 成功上傳多個(gè)文件
3.3 使用屬性驅(qū)動(dòng)的形式上傳文件
3.3.1 創(chuàng)建上傳多個(gè)文件的JSP頁面
3.3.2 設(shè)計(jì)上傳文件的控制層代碼
3.3.3 新建上傳文件的封裝類
3.3.4 更改JSP頁面中s:file標(biāo)簽的name屬性
3.3.5 以屬性驅(qū)動(dòng)方式成功上傳多個(gè)文件
3.4 使用Struts2實(shí)現(xiàn)帶上傳進(jìn)度的實(shí)例
3.4.1 上傳文件帶進(jìn)度的原理
3.4.2 設(shè)計(jì)上傳的JSP頁面
3.4.3 設(shè)計(jì)上傳文件的控制層代碼
3.4.4 設(shè)計(jì)上傳文件的工具類
3.4.5 實(shí)現(xiàn)ProgressListener接口取得上傳進(jìn)度
3.4.6 將上傳進(jìn)度類與Struts2關(guān)聯(lián)
3.4.7 替換Struts2默認(rèn)的上傳關(guān)聯(lián)類
3.4.8 設(shè)計(jì)提供上傳進(jìn)度基本信息的控制層代碼
3.4.9 設(shè)計(jì)通過Ajax調(diào)用返回上傳進(jìn)度信息的XML文本實(shí)現(xiàn)類
3.4.10 成功上傳并且顯示進(jìn)度
3.5 使用Struts2實(shí)現(xiàn)下載文件的功能
3.5.1 新建下載文件的JSP頁面
3.5.2 設(shè)計(jì)下載文件的控制層代碼
3.5.3 更改配置文件
3.5.4 成功下載中文文件名的文件
第4章 Struts2的數(shù)據(jù)校驗(yàn)與國(guó)際化
4.1 前面驗(yàn)證實(shí)現(xiàn)的缺點(diǎn)
4.1.1 舊版本的JSP頁面代碼
4.1.2 舊版本控制層代碼
4.1.3 舊版本配置文件
4.1.4 舊版本的運(yùn)行結(jié)果
4.2 加入新標(biāo)簽
4.2.1 新版本的JSP頁面
4.2.2 新版本控制層代碼
4.2.3 新版本配置文件
4.2.4 新版本不顯示label屬性值
4.2.5 去掉label屬性加入普通文本
4.2.6 生成簡(jiǎn)潔的HTML代碼
4.2.7 顯示出錯(cuò)信息
4.3 顯示局部出錯(cuò)信息
4.3.1 在JSP頁面中加入調(diào)試標(biāo)簽
4.3.2 查看值棧中的數(shù)據(jù)
4.3.3 取出出錯(cuò)信息并顯示到JSP頁面
4.3.4 正確顯示出錯(cuò)信息
4.4 顯示全局出錯(cuò)信息
4.4.1 添加s:actionerror標(biāo)簽
4.4.2 處理出錯(cuò)信息的Action
4.4.3 設(shè)計(jì)配置文件
4.5 對(duì)出錯(cuò)信息的參數(shù)化
4.5.1 創(chuàng)建兩種語言文本的資源文件
4.5.2 使用s:text標(biāo)簽顯示資源文件中的文本
4.5.3 在控制層對(duì)資源文本參數(shù)化
4.5.4 部署項(xiàng)目運(yùn)行程序
4.5.5 在配置文件中注冊(cè)資源文件
第5章 JSON與Struts2和Ajax聯(lián)合使用
5.1 JSON概述
5.2 用JSON創(chuàng)建對(duì)象
5.2.1 創(chuàng)建對(duì)象的語法格式
5.2.2 在JSP中用JSON創(chuàng)建一個(gè)對(duì)象
5.2.3 運(yùn)行結(jié)果
5.3 用JSON創(chuàng)建字符串的限制
5.3.1 需要轉(zhuǎn)義的特殊字符
5.3.2 在JSP中對(duì)JSON特殊字符進(jìn)行轉(zhuǎn)義
5.3.3 運(yùn)行結(jié)果
5.4 用JSON創(chuàng)建數(shù)字類型的語法格式
5.4.1 在JSP中用JSON創(chuàng)建數(shù)字類型
5.4.2 運(yùn)行結(jié)果 0
5.5 用JSON創(chuàng)建數(shù)組對(duì)象的語法格式
5.5.1 在JSP中用JSON創(chuàng)建一個(gè)數(shù)組對(duì)象
5.5.2 運(yùn)行結(jié)果
5.6 用JSON創(chuàng)建嵌套的對(duì)象類型
5.7 將對(duì)象轉(zhuǎn)換為JSON字符串
5.7.1 需要轉(zhuǎn)換的場(chǎng)合
5.7.2 實(shí)現(xiàn)轉(zhuǎn)換
5.8 將JSON字符串提交到Action并解析(POST方式)
5.8.1 在JSP中創(chuàng)建JSON和Ajax對(duì)象
5.8.2 創(chuàng)建接收J(rèn)SON字符串的Action控制層
5.8.3 運(yùn)行結(jié)果
5.8.4 控制臺(tái)輸出結(jié)果
5.9 將JSON字符串提交到Action并解析(GET方式)
5.9.1 在JSP中創(chuàng)建JSON字符串和Ajax對(duì)象
5.9.2 創(chuàng)建接收J(rèn)SON字符串的Action控制層
5.9.3 運(yùn)行結(jié)果
5.10 將JSON字符串提交到Action并解析(GET和POST方式)
5.10.1 在服務(wù)器端用GET方法解析JSON字符串
5.10.2 在服務(wù)器端用POST方法解析JSON字符串
5.10.3 運(yùn)行結(jié)果
5.10.4 控制臺(tái)輸出結(jié)果
5.11 使用Ajax調(diào)用Action并生成JSON再傳遞到客戶端(GET和POST方式)
5.11.1 新建具有Ajax提交功能的JSP頁面
5.11.2 在Action控制層創(chuàng)建List對(duì)象并存儲(chǔ)元素類型為String
5.11.3 在Action控制層創(chuàng)建List對(duì)象并存儲(chǔ)元素類型為JavaBean
5.11.4 在Action控制層創(chuàng)建Map對(duì)象并存儲(chǔ)元素類型為String
5.11.5 在Action控制層創(chuàng)建Map對(duì)象并存儲(chǔ)元素類型為JavaBean
5.11.6 調(diào)用不同的Action
第6章 OGNL語言的應(yīng)用
6.1 OGNL語言概述
6.2 OGNL表達(dá)式的測(cè)試
6.2.1 創(chuàng)建測(cè)試用Action控制層
6.2.2 使用Java腳本輸出結(jié)果
6.2.3 運(yùn)行結(jié)果
6.2.4 struts.valueStack對(duì)象的結(jié)構(gòu)
6.3 使用OGNL語言輸出String類型
6.4 輸出ArrayList中String類型變量的實(shí)例
6.4.1 向List存儲(chǔ)字符串
6.4.2 輸出集合數(shù)組中的數(shù)據(jù)
6.4.3 運(yùn)行結(jié)果
6.5 輸出ArrayList中Bean類型變量的實(shí)例
6.5.1 向List存儲(chǔ)JavaBean類型的數(shù)據(jù)
6.5.2 在JSP頁面中輸出List中JavaBean的屬性值
6.5.3 運(yùn)行結(jié)果
6.6 輸出HashMap中String類型變量的實(shí)例
6.6.1 向Map存儲(chǔ)String類型的數(shù)據(jù)
6.6.2 在JSP頁面中輸出Map中String的屬性值
6.6.3 運(yùn)行結(jié)果
6.7 輸出HashMap中Bean類型變量的實(shí)例
6.7.1 向Map存儲(chǔ)JavaBean類型的數(shù)據(jù)
6.7.2 在JSP頁面中輸出Map中JavaBean的屬性值
6.7.3 運(yùn)行結(jié)果
第7章 JQuery與JSON和Ajax聯(lián)合開發(fā)
7.1 JQuery概述
7.2 JQuery框架的Ajax功能簡(jiǎn)介
7.3 使用JQuery的Ajax功能調(diào)用遠(yuǎn)程Action(無返回結(jié)果)
7.4 JQuery的Ajax方法結(jié)構(gòu)
7.5 使用JQuery的Ajax功能調(diào)用遠(yuǎn)程Action(有返回結(jié)果)
7.6 調(diào)用遠(yuǎn)程Action并且傳遞JSON格式參數(shù)(有返回值)
7.7 返回List中存String的JSON字符串
第8章 Struts2控制標(biāo)簽庫
8.1 Struts2標(biāo)簽庫的分類
8.2 s:if、s:elseif和s:else標(biāo)簽的應(yīng)用
8.2.1 s:if和s:elseif標(biāo)簽概述
8.2.2 創(chuàng)建傳遞城市ID的Action
8.2.3 在JSP中使用s:if標(biāo)簽輸出中文的城市名
8.2.4 運(yùn)行結(jié)果
8.3 輸出String[]中的內(nèi)容
8.3.1 s:iterator標(biāo)簽概述
8.3.2 在Action中向String[]數(shù)組保存數(shù)據(jù)
8.3.3 使用s:iterator標(biāo)簽輸出數(shù)組
8.3.4 運(yùn)行結(jié)果
8.4 輸出集合中的內(nèi)容
8.4.1 輸出List中的String字符串內(nèi)容
8.4.2 輸出List中JavaBean的屬性內(nèi)容
8.4.3 輸出Map中的String字符串內(nèi)容
8.4.4 使用s:iterator標(biāo)簽輸出Map中JavaBean類型屬性值
8.5 輸出隔行不同顏色的效果
8.5.1 向List中添加BBS模擬數(shù)據(jù)
8.5.2 創(chuàng)建BBS的實(shí)體類
8.5.3 實(shí)現(xiàn)隔行變色的效果
8.5.4 運(yùn)行結(jié)果
8.6 將多個(gè)集合對(duì)象拼成一個(gè)集合對(duì)象
8.6.1 s:append標(biāo)簽概述
8.6.2 在Action中填充List集合對(duì)象
8.6.3 新建實(shí)體類
8.6.4 合并集合對(duì)象
8.6.5 集合合并后的效果
8.7 將多個(gè)集合對(duì)象拼成一個(gè)集合對(duì)象
8.7.1 s:merge標(biāo)簽概述
8.7.2 在Action中填充List集合對(duì)象
8.7.3 新建實(shí)體類
8.7.4 使用s:merge標(biāo)簽合并集合對(duì)象
8.7.5 運(yùn)行結(jié)果
8.8 取集合中的部分元素為子集合
8.8.1 s:subset標(biāo)簽概述
8.8.2 在Action中對(duì)List集合對(duì)象進(jìn)行數(shù)據(jù)填充
8.8.3 創(chuàng)建填充進(jìn)集合對(duì)象中的實(shí)體類
8.8.4 對(duì)集合取子集
8.8.5 運(yùn)行結(jié)果
8.9 按自定義的條件取集合中的匹配元素為子集合
8.9.1 在Action中對(duì)List進(jìn)行數(shù)據(jù)填充
8.9.2 創(chuàng)建List中填充的實(shí)體類
8.9.3 自定義取子集過濾的條件類
8.9.4 對(duì)集合對(duì)象List取子集
8.9.5 運(yùn)行結(jié)果
8.10 按集合中的個(gè)人體重進(jìn)行排序
8.10.1 s:sort標(biāo)簽概述
8.10.2 在Action中創(chuàng)建并填充要排序的List集合對(duì)象
8.10.3 創(chuàng)建List集合對(duì)象中的實(shí)體類
8.10.4 創(chuàng)建排序策略實(shí)現(xiàn)Comparator接口的工具類
8.10.5 對(duì)集合對(duì)象List進(jìn)行排序
8.10.6 運(yùn)行結(jié)果
8.11 分割字符串
8.11.1 s:generator標(biāo)簽概述
8.11.2 在Action中聲明并初始化要分隔的字符串變量
8.11.3 使用s:generator標(biāo)簽對(duì)字符串String進(jìn)行分隔
8.11.4 運(yùn)行結(jié)果
第9章 Struts2數(shù)據(jù)標(biāo)簽庫
9.1 在JSP頁面訪問Action類中數(shù)據(jù)
9.1.1 s:action標(biāo)簽概述
9.1.2 創(chuàng)建Action控制層
9.1.3 在JSP頁面中使用s:action標(biāo)簽
9.1.4 返回結(jié)果的JSP頁面
9.1.5 運(yùn)行結(jié)果
9.2 輸出轉(zhuǎn)義的HTML格式
9.2.1 s:property標(biāo)簽概述
9.2.2 將要轉(zhuǎn)義輸出的String數(shù)據(jù)封裝到Action中
9.2.3 在JSP頁面中對(duì)HTML字符串進(jìn)行輸出
9.2.4 運(yùn)行結(jié)果
9.3 在JSP頁面中實(shí)例化一個(gè)JavaBean
9.3.1 s:bean和s:param標(biāo)簽概述
9.3.2 創(chuàng)建工具實(shí)體類
9.3.3 使用s:bean標(biāo)簽創(chuàng)建一個(gè)類
9.3.4 運(yùn)行結(jié)果
9.4 s:param標(biāo)簽的3種賦值方法
9.4.1 帶參數(shù)的Action
9.4.2 對(duì)s:bean標(biāo)簽創(chuàng)建的類使用s:param標(biāo)簽傳遞參數(shù)
9.4.3 運(yùn)行結(jié)果
9.5 輸出日期和時(shí)間
9.5.1 s:date標(biāo)簽概述
9.5.2 創(chuàng)建日期工具類
9.5.3 使用s:date標(biāo)簽輸出并格式化日期
9.5.4 運(yùn)行結(jié)果
9.6 查看值?;蛏舷挛闹械男畔ⅰ?br /> 9.6.1 創(chuàng)建測(cè)試用Action控制層
9.6.2 在JSP頁面中加入s:debug標(biāo)簽
9.6.3 查看valueStack值棧中的數(shù)據(jù)
9.7 導(dǎo)入JSP文件或Servlet資源
9.7.1 s:include標(biāo)簽概述
9.7.2 導(dǎo)入JSP文件
9.7.3 創(chuàng)建導(dǎo)入的目標(biāo)文件
9.7.4 運(yùn)行結(jié)果
9.8 將數(shù)據(jù)放入作用域中
9.8.1 s:set標(biāo)簽概述
9.8.2 使用s:set標(biāo)簽在JSP頁面中創(chuàng)建變量
9.8.3 s:set的運(yùn)行結(jié)果
9.9 生成分頁導(dǎo)航超鏈接
9.9.1 s:url標(biāo)簽概述
9.9.2 創(chuàng)建測(cè)試用分頁Action
9.9.3 在JSP頁面中使用s:url標(biāo)簽生成URL
9.9.4 運(yùn)行結(jié)果
9.10 將數(shù)據(jù)放到值棧頂端
9.10.1 s:push標(biāo)簽概述
9.10.2 在JSP頁面中將數(shù)據(jù)壓入值?!?br /> 9.10.3 運(yùn)行結(jié)果
9.11 實(shí)現(xiàn)國(guó)際化
9.11.1 s:i18n和s:text標(biāo)簽概述
9.11.2 在JSP頁面顯示資源文件中的文本
9.11.3 運(yùn)行結(jié)果
第10章 Struts2表單標(biāo)簽
10.1 s:checkbox標(biāo)簽的應(yīng)用
10.1.1 s:checkbox標(biāo)簽概述
10.1.2 創(chuàng)建取得checkbox值的Action
10.1.3 在JSP頁面中使用s:checkbox標(biāo)簽
10.1.4 創(chuàng)建顯示s:checkbox結(jié)果的JSP頁面
10.1.5 運(yùn)行結(jié)
10.2 通過Action設(shè)置s:checkbox標(biāo)簽?zāi)J(rèn)選中狀態(tài)
10.2.1 創(chuàng)建初始化s:checkbox標(biāo)簽的Action
10.2.2 創(chuàng)建顯示s:checkbox標(biāo)簽的JSP頁面
10.2.3 創(chuàng)建取得s:checkbox標(biāo)簽最新值的Action
10.2.4 將最新值顯示到JSP頁面
10.2.5 運(yùn)行結(jié)果
10.3 使用List靜態(tài)創(chuàng)建s:checkboxlist標(biāo)簽
10.3.1 s:checkboxlist標(biāo)簽概述
10.3.2 創(chuàng)建包含愛好數(shù)組String[]的Action
10.3.3 在JSP頁面中使用s:checkboxlist標(biāo)簽
10.3.4 創(chuàng)建顯示愛好的JSP頁面
10.3.5 運(yùn)行結(jié)果
10.4 使用Map靜態(tài)創(chuàng)建s:checkboxlist標(biāo)簽
10.4.1 在JSP頁面中創(chuàng)建Map類型的對(duì)象
10.4.2 創(chuàng)建顯示愛好的JSP頁面
10.4.3 運(yùn)行結(jié)果
10.5 動(dòng)態(tài)生成同組checkbox且默認(rèn)為checked狀態(tài)
10.5.1 在Action中生成s:checkboxlist標(biāo)簽的條目
10.5.2 創(chuàng)建愛好實(shí)體類
10.5.3 在JSP頁面中顯示s:checkboxlist標(biāo)簽以及初始條目
10.5.4 運(yùn)行結(jié)果
10.6 使用動(dòng)態(tài)和靜態(tài)方式生成s:combobox標(biāo)簽
10.6.1 s:combobox標(biāo)簽概述
10.6.2 創(chuàng)建Action控制層
10.6.3 創(chuàng)建愛好實(shí)體類
10.6.4 生成s:combobox標(biāo)簽的條目
10.6.5 運(yùn)行結(jié)果
10.7 s:doubleselect標(biāo)簽的應(yīng)用
10.7.1 s:doubleselect標(biāo)簽概述
10.7.2 創(chuàng)建省實(shí)體類
10.7.3 創(chuàng)建市實(shí)體類
10.7.4 創(chuàng)建控制層Action
10.7.5 創(chuàng)建接收提交結(jié)果的Action
10.7.6 創(chuàng)建顯示省市二級(jí)聯(lián)動(dòng)的JSP頁面
10.7.7 創(chuàng)建顯示提交后省市值的JSP頁面
10.7.8 運(yùn)行結(jié)果
10.8 s:hidden標(biāo)簽的應(yīng)用
10.8.1 s:hidden標(biāo)簽概述
10.8.2 創(chuàng)建Action控制層
10.8.3 在JSP頁面中使用s:hidden標(biāo)簽
10.8.4 創(chuàng)建顯示提交表單的Action
10.8.5 創(chuàng)建顯示最終結(jié)果值的JSP頁面
10.8.6 創(chuàng)建測(cè)試實(shí)體類
10.8.7 運(yùn)行結(jié)果
10.9 s:optiontransferselect標(biāo)簽的應(yīng)用
10.9.1 s:optiontransferselect標(biāo)簽概述
10.9.2 創(chuàng)建用于生成條目的Action
10.9.3 生成雙向選擇表單的JSP代碼
10.9.4 表單控件所在s:form的屬性
10.9.5 運(yùn)行結(jié)果
10.9.6 提交表單的目標(biāo)Action
10.10 s:select和s:optgroup標(biāo)簽的應(yīng)用
10.10.1 創(chuàng)建生成s:select條目的Action
10.10.2 在JSP頁面中使用s:select標(biāo)簽
10.10.3 創(chuàng)建城市實(shí)體類
10.10.4 運(yùn)行結(jié)果
10.10.5 生成的HTML代碼
10.11 s:textfield、s:password和s:textarea標(biāo)簽的應(yīng)用
10.11.1 s:textfield、s:password和s:textarea標(biāo)簽概述
10.11.2 創(chuàng)建Action
10.11.3 創(chuàng)建顯示標(biāo)簽的JSP頁面
10.11.4 運(yùn)行結(jié)果
10.11.5 創(chuàng)建提交后的目標(biāo)Action
10.11.6 調(diào)試提交的表單值
10.12 靜態(tài)和動(dòng)態(tài)生成內(nèi)容條目
10.12.1 s:updownselect標(biāo)簽概述
10.12.2 創(chuàng)建生成表單條目的Action
10.12.3 創(chuàng)建顯示表單的JSP頁面
10.12.4 創(chuàng)建提交后的目標(biāo)Action
10.12.5 查看最新提交的值
10.12.6 運(yùn)行結(jié)果
10.13 動(dòng)態(tài)生成同組復(fù)選框
10.13.1 創(chuàng)建實(shí)體類
10.13.2 新建同組s:checkbox標(biāo)簽的Action
10.13.3 在JSP頁面中顯示同組復(fù)選框
10.13.4 創(chuàng)建顯示結(jié)果值的Action
10.13.5 配置文件
10.13.6 運(yùn)行結(jié)果
10.14 設(shè)置s:select標(biāo)簽的默認(rèn)值
10.14.1 創(chuàng)建設(shè)置s:select默認(rèn)值的Action
10.14.2 獲取默認(rèn)值List的JSP頁面
10.14.3 運(yùn)行結(jié)果
第11章 初入Hibernate
11.1 Hibernate概述
11.2 持久層、持久化與ORM
11.3 用MyEclipse開發(fā)第一個(gè)Hibernate實(shí)例
11.3.1 安裝Oracle g數(shù)據(jù)庫
11.3.2 登錄Oracle數(shù)據(jù)庫
11.3.3 創(chuàng)建表空間和數(shù)據(jù)文件
11.3.4 創(chuàng)建用戶及與表空間關(guān)聯(lián)
11.3.5 為用戶授予權(quán)限
11.3.6 創(chuàng)建數(shù)據(jù)表
11.3.7 創(chuàng)建主鍵生成器——Oracle序列
11.3.8 使用MyEclipse Database Explorer工具連接Oracle g數(shù)據(jù)庫
11.3.9 創(chuàng)建一個(gè)支持Struts和Hibernate的Web Project
11.3.10 對(duì)數(shù)據(jù)表進(jìn)行Hibernate逆向工程
11.3.11 逆向工程后的項(xiàng)目ORM結(jié)構(gòu)
11.3.12 使用Hibernate進(jìn)行持久化
第12章 Hibernate核心技能
12.1 Configuration概述
12.2 SessionFactory概述
12.3 Session概述
12.4 使用Session實(shí)現(xiàn)CURD功能
12.4.1 在Oracle g中創(chuàng)建示例數(shù)據(jù)表
12.4.2 逆向工程后的項(xiàng)目結(jié)構(gòu)
12.4.3 創(chuàng)建create.action
12.4.4 創(chuàng)建read.action
12.4.5 創(chuàng)建路徑為update.action的Action
12.4.6 創(chuàng)建delete.action
12.5 在Hibernate中使用JNDI技術(shù)
12.5.1 備份配置文件
12.5.2 更改配置文件context.xml
12.5.3 更改配置文件web.xml
12.5.4 添加Hibernate框架配置
12.5.5 逆向工程
12.5.6 支持JNDI的hibernate.cfg.xml配置文件
12.5.7 添加控制層show.action
12.5.8 部署項(xiàng)目驗(yàn)證結(jié)果
12.6 掌握Hibernate必備的要點(diǎn)
12.6.1 Hibernate的OID與緩存
12.6.2 Hibernate中的對(duì)象狀態(tài)
12.7 雙向一對(duì)多在MyEclipse中的實(shí)現(xiàn)
12.7.1 創(chuàng)建主表main
12.7.2 創(chuàng)建子表sub
12.7.3 創(chuàng)建主表main與從表sub的關(guān)聯(lián)對(duì)象
12.7.4 成功關(guān)聯(lián)的提示
12.7.5 逆向主從表外鍵關(guān)系
12.7.6 集合set與many-to-one
12.7.7 新建主表main的數(shù)據(jù)
12.7.8 新建子表sub的數(shù)據(jù)
12.7.9 刪除子表sub的數(shù)據(jù)
12.7.10 刪除主表main的數(shù)據(jù)
12.8 Hibernate備忘知識(shí)點(diǎn)
12.9 對(duì)主從表結(jié)構(gòu)中的HashSet進(jìn)行排序
12.10 Hibernate中延遲加載的調(diào)試實(shí)例
12.10.1 主從表表結(jié)構(gòu)的設(shè)計(jì)
12.10.2 主從表表內(nèi)容的填充
12.10.3 逆向工程
12.10.4 創(chuàng)建test.action
12.10.5 lazy屬性的默認(rèn)值
12.10.6 使用Expressions面板進(jìn)行輔助調(diào)試
12.11 對(duì)Oracle中CLOB字段類型的讀處理
第13章 Hibernate的檢索
13.1 Hibernate的檢索方式
13.1.1 創(chuàng)建數(shù)據(jù)庫表和外聯(lián)對(duì)象
13.1.2 檢索實(shí)例
13.2 HQL表別名
13.3 對(duì)結(jié)果集進(jìn)行排序
13.4 HQL索引參數(shù)綁定
13.5 HQL命名參數(shù)綁定與安全性
13.6 HQL方法鏈的應(yīng)用
13.7 HQL中uniqueResult方法的應(yīng)用
13.8 HQL中的where子句與查詢條件
13.9 HQL中的迫切左外連接與調(diào)試 1
13.10 HQL中的左外連接與調(diào)試
13.11 HQL中的迫切左外連接/左外連接主從不匹配的情況 9
13.12 HQL中的迫切內(nèi)連接與調(diào)試 0
13.13 HQL中的內(nèi)連接與調(diào)試 3
13.14 HQL中的聚集函數(shù)distinct、count、min、max、sum、avg
13.15 HQL中的分組查詢
第14章 Spring基礎(chǔ)
14.1 Spring概述
14.2 Spring的架構(gòu)
14.3 IOC概述
14.4 AOP概述
14.5 IOC容器
14.6 一個(gè)使用傳統(tǒng)方式保存數(shù)據(jù)功能的實(shí)例
14.7 使用Spring的IOC方式保存數(shù)據(jù)
14.8 BeanFactory與ApplicationContext
14.9 Spring的IOC容器注入類型
14.9.1 通過IOC容器注入基本數(shù)據(jù)類型
14.9.2 通過IOC容器注入引用數(shù)據(jù)類型
14.9.3 通過IOC容器注入null類型
14.9.4 通過IOC容器注入泛型List列表和數(shù)組類型
14.9.5 通過IOC容器注入泛型Set列表和數(shù)組類型
14.9.6 通過IOC容器注入泛型Map列表和數(shù)組類型
14.9.7 通過IOC容器注入Properties類型
14.9.8 通過IOC容器對(duì)構(gòu)造方法進(jìn)行注入
14.10 Spring中Bean在Singleton和Prototype的作用域
14.11 Spring中注入外部屬性文件的屬性值
14.12 Spring中多個(gè)配置文件的應(yīng)用
14.13 AOP概述
14.13.1 靜態(tài)代理的實(shí)現(xiàn)
14.13.2 動(dòng)態(tài)代理的實(shí)現(xiàn)
14.14 方法執(zhí)行前增強(qiáng)
14.15 方法執(zhí)行后增強(qiáng)
14.16 方法前后環(huán)繞增強(qiáng)
第15章 Struts2+Hibernate+Spring整合
15.1 整合目的
15.2 創(chuàng)建數(shù)據(jù)表
15.2.1 新建Oracle數(shù)據(jù)表sshtable
15.2.2 新建主鍵約束
15.3 新建Web項(xiàng)目
15.4 創(chuàng)建Struts2框架支持環(huán)境
15.4.1 添加Struts2框架支持文件
15.4.2 在web.xml文件中注冊(cè)Struts2的過濾器
15.4.3 在項(xiàng)目的src目錄下創(chuàng)建配置文件struts.xml
15.5 添加Hibernate Database Explorer數(shù)據(jù)庫連接
15.5.1 創(chuàng)建數(shù)據(jù)庫連接對(duì)象
15.5.2 選擇目的數(shù)據(jù)庫
15.6 添加Hibernate3.1框架支持文件
15.7 添加Spring2.0框架支持文件
15.8 自動(dòng)創(chuàng)建的配置文件
15.9 在web.xml文件中加入Spring的utf-8編碼過濾器和Spring監(jiān)聽
15.10 在配置文件中定義struts.objectFactory常量
15.11 對(duì)Oracle g數(shù)據(jù)表sshtable進(jìn)行Hibernate 逆向工程
15.12 了解繼承自HibernateDaoSupport類DAO
15.13 創(chuàng)建All_DAO對(duì)象
15.14 創(chuàng)建Table1_Service對(duì)象
15.15 創(chuàng)建AllService對(duì)象
15.16 在配置文件中配置DAO和service的關(guān)系
15.17 新建自定義Action的父類BaseAction
15.18 創(chuàng)建一個(gè)操作sshtable表數(shù)據(jù)的Action
15.19 在配置文件中配置/base和/test路徑和注釋事務(wù)
15.20 部署到WebLogic10.3中間件容器
15.20.1 在WebLogic10.3中創(chuàng)建一個(gè)域
15.20.2 將MyEclipse與WebLogic進(jìn)行關(guān)聯(lián)
15.20.3 啟動(dòng)WebLogic服務(wù)并部暑項(xiàng)目
15.21 執(zhí)行帶數(shù)據(jù)庫插入的Action
第16章 有狀態(tài)/無狀態(tài)SessionBean和消息驅(qū)動(dòng)Bean
16.1 EJB3概述
16.1.1 Java EE體系結(jié)構(gòu)
16.1.2 容器的概念
16.2 有狀態(tài)SessionBean和無狀態(tài)SessionBean
16.2.1 SessionBean的作用
16.2.2 SessionBean的種類
16.2.3 在MyEclipse中無狀態(tài)SessionBean的創(chuàng)建
16.2.4 用Web方式調(diào)用本地SayHello接口
16.2.5 無狀態(tài)SessionBean類型為L(zhǎng)ocal和Remote的區(qū)別
16.2.6 EJB組件接口無注解時(shí)的默認(rèn)情況
16.2.7 調(diào)用遠(yuǎn)程Remote類型的Stateless SessionBean無狀態(tài)實(shí)驗(yàn)
16.2.8 無狀態(tài)SessionBean的回調(diào)函數(shù)和生命周期
16.2.9 無狀態(tài)SessionBean實(shí)例變量值保留的問題與無狀態(tài)SessionBean
實(shí)例池
16.2.10 什么是有狀態(tài)SessionBean
16.2.11 在MyEclipse中有狀態(tài)SessionBean的創(chuàng)建與有狀態(tài)性實(shí)驗(yàn)
16.2.12 將Remote遠(yuǎn)程無狀態(tài)SessonBean共享的服務(wù)重命名
16.2.13 使用注解聲明SessionBean的第2種寫法
16.2.14 有狀態(tài)SessionBean的鈍化與激活
16.2.15 有狀態(tài)SessionBean的回調(diào)函數(shù)和生命周期
16.2.16 有狀態(tài)SessionBean的@Remove回調(diào)函數(shù)的使用
16.2.17 注入其他Local類型的EJB對(duì)象
16.3 消息驅(qū)動(dòng)JavaBean(MDB)和在Weblogic中創(chuàng)建消息目的
16.3.1 創(chuàng)建持久性存儲(chǔ)對(duì)象
16.3.2 創(chuàng)建JMS服務(wù)器
16.3.3 創(chuàng)建JMS模塊
16.3.4 在JMS模塊中創(chuàng)建子部署
16.3.5 在JMS模塊中創(chuàng)建資源
16.3.6 點(diǎn)到點(diǎn)式消息驅(qū)動(dòng)JavaBean
16.3.7 發(fā)布-訂閱式消息驅(qū)動(dòng)JavaBean
16.4 在EJB3中創(chuàng)建基于Web Service的業(yè)務(wù)服務(wù)
16.5 計(jì)時(shí)器與作業(yè)調(diào)度
第17章 實(shí)體Bean
17.1 實(shí)體Bean概述
17.2 持久層、持久化與ORM
17.2.1 在Weblogic的JNDI樹中創(chuàng)建節(jié)點(diǎn)與對(duì)象
17.2.2 在Weblogic的JNDI樹中創(chuàng)建子節(jié)點(diǎn)
17.2.3 在Weblogic的JNDI樹中查找lookup節(jié)點(diǎn)
17.2.4 在Weblogic的JNDI樹中刪除節(jié)點(diǎn)
17.3 從保存1條記錄開始
17.3.1 安裝Oracle11g數(shù)據(jù)庫
17.3.2 使用Toad管理Oracle數(shù)據(jù)庫
17.3.3 用MyEclipse Database Explorer工具連接Oracle11g數(shù)據(jù)庫
17.3.4 用EJB項(xiàng)目直聯(lián)數(shù)據(jù)庫
17.3.5 改成JNDI連接池的實(shí)例
17.4 解析實(shí)體類所使用的注解
17.5 在SQL Server 05數(shù)據(jù)庫中插入記錄的實(shí)驗(yàn)
17.6 在MySQL數(shù)據(jù)庫中插入記錄的實(shí)驗(yàn)
17.7 使用table表在Oracle數(shù)據(jù)庫中生成主鍵的實(shí)驗(yàn)
17.8 用EJB3在Oracle中插入Date時(shí)間類型
17.9 處理CLOB數(shù)據(jù)類型
17.10 在Weblogic中實(shí)現(xiàn)JDBC+JNDI全局性分布式事務(wù)實(shí)驗(yàn)
17.10.1 JTA和2PC的概述
17.10.2 全局性事務(wù)處理的案例
第18章 JPA核心技能
18.1 EntityManager類的概述
18.1.1 實(shí)體類的狀態(tài)
18.1.2 EJB3中的事務(wù)
18.2 EntityManager類的方法
18.2.1 persist(Object)方法
18.2.2 merge(T)方法和find(Class, Object)方法
18.2.3 remove(Object)方法
18.2.4 getReference(Class, Object)方法
18.2.5 createNativeQuery()方法
18.2.6 close()和isOpen()方法
18.2.7 refresh(Object)方法
18.2.8 clear()和contains(Object)方法
18.2.9 createQuery(String)方法
18.2.10 createNamedQuery(String)方法
18.3 EntityManagerFactory對(duì)象介紹
18.4 用Java SE客戶端調(diào)用遠(yuǎn)程EJB3組件(使用逆向DAO)
18.5 在Java SE客戶端使用EntityManagerFactory實(shí)現(xiàn)持久化(手動(dòng)配置)
18.6 在Java SE客戶端使用EntityManagerFactory實(shí)現(xiàn)持久化(自動(dòng)配置)
18.7 在會(huì)話Bean中生成EntityManagerFactory
18.8 雙向一對(duì)多的增刪改查CURD實(shí)戰(zhàn)
18.8.1 基本環(huán)境設(shè)置
18.8.2 功能的實(shí)現(xiàn)
第19章 JPQL語言必備技能
19.1 JPQL語言介紹
19.2 命名參數(shù)和索引式參數(shù)及實(shí)體參數(shù)式查詢
19.2.1 索引式參數(shù)查詢
19.2.2 命名式參數(shù)查詢
19.2.3 為實(shí)現(xiàn)主從關(guān)聯(lián)實(shí)驗(yàn)創(chuàng)建數(shù)據(jù)表Sheng和Shi
19.2.4 Sheng表和Shi表2種關(guān)聯(lián)查詢的方式
19.3 JPQL語言支持的運(yùn)算符
19.3.1 +、-、*、/、=、>=、>、<、<=、<>、between、like和in的使用
19.3.2 not取反運(yùn)算符的使用
19.3.3 is null為空運(yùn)算符的使用
19.3.4 is empty主表關(guān)聯(lián)的子表集合為空運(yùn)算符的使用
19.4 order by的使用
19.5 查詢指定字段的示例
19.6 聚合函數(shù)avg、count、max、min和sum的使用
19.7 group by和having的使用
19.8 left join的使用
19.9 distinct去除重復(fù)記錄
19.10 JPQL語言的字符串操作函數(shù)
19.11 用JPQL語言取得當(dāng)前的日期和日期時(shí)間數(shù)據(jù)
19.12 JPQL語言對(duì)日期的判斷
19.13 JPQL語言的數(shù)學(xué)函數(shù)
19.14 JPQL語言中的分頁功能
章節(jié)摘錄
版權(quán)頁:插圖:上述8個(gè)步驟即為一個(gè)最簡(jiǎn)單的Struts2登錄實(shí)現(xiàn)過程,通過該例就可以看出Struts2的優(yōu)點(diǎn)。一個(gè)簡(jiǎn)單的POJO就可以實(shí)現(xiàn)一個(gè)基于Web環(huán)境的登錄功能,這樣就可以與Servlet API進(jìn)行解耦,有利于代碼的復(fù)用,而且executeo方法返回的是字符串,通過這個(gè)字符串就可以確定下一步要顯示哪個(gè)JSP頁面。而且Login類username和password的屬性值是自動(dòng)填充的,但自動(dòng)填充的條件是JSP表單中的name屬性值和L,ogin類的成員變量名必須一致?;仡櫼幌逻@個(gè)登錄實(shí)例的執(zhí)行流程。(1)進(jìn)入login.jsp頁面。(2)輸入用戶名“ghy”、密碼“123”,然后單擊“登錄”按鈕。(3)注冊(cè)在文件web.xml中的StrutsPrepareAndExecuteFilter類進(jìn)行URL的捕捉,將訪問的路徑在配置文件struts.xml中進(jìn)行查找,找到1個(gè)名稱為login的Action的路徑。此時(shí)對(duì)Login類的username和password屬性值進(jìn)行自動(dòng)填充,然后執(zhí)行executeo方法,執(zhí)行完畢后,返回一個(gè)String字符串。這個(gè)字符串實(shí)際就是配置文件struts.xml中result標(biāo)記的名稱,通過這個(gè)邏輯名稱就可以訪問真實(shí)的物理JSP頁面了。Struts2雖然使用過濾器來進(jìn)行請(qǐng)求的轉(zhuǎn)發(fā)處理,但在內(nèi)部是使用一種叫做攔截器的功能來進(jìn)行request和Action及parameter的處理,處理的步驟如圖-11所示。從圖1.1 1中可以看到,當(dāng)Struts2的Filter過濾器發(fā)現(xiàn)有新的request請(qǐng)求進(jìn)入容器后,將這個(gè)請(qǐng)求進(jìn)行分發(fā),然后交給不同功能的“Interceptor”攔截器進(jìn)行處理,如剛才實(shí)現(xiàn)的將URL的參數(shù)自動(dòng)添充到Action同名屬性中,通過層層的攔截器處理最后達(dá)到Action,Action控制層處理完請(qǐng)求后再交給result對(duì)象準(zhǔn)備響應(yīng)的處理,這就是1個(gè)新的request請(qǐng)求交由Struts2處理并處理結(jié)束后的大體過程與步驟
編輯推薦
《Java EE實(shí)用開發(fā)指南:基于Weblogic+EJB3+Struts2+Hibernate+Spring》:將大的軟件功能一一分解成小部分,讓讀者消化吸收更快速!對(duì)知識(shí)點(diǎn)以開發(fā)的順序進(jìn)行講解,讀者跟著書的節(jié)奏可收到邊學(xué)習(xí)邊養(yǎng)成編程習(xí)慣的效果!每個(gè)技術(shù)點(diǎn)均以一個(gè)完整的實(shí)用技術(shù)案例進(jìn)行解析,具有完整的可運(yùn)行的代碼項(xiàng)目,而并非僅僅一段片面的示例代碼,讓讀者要看就看明白?!禞ava EE實(shí)用開發(fā)指南:基于Weblogic+EJB3+Struts2+Hibernate+Spring》特點(diǎn):(1)以重量級(jí)開發(fā)技術(shù)Weblogic10.3+EJB3整合開發(fā)為引入點(diǎn)。(2)詳細(xì)講解EJB3+JPA的聯(lián)合開發(fā)使用。(3)通過Struts2+Hibernate+Spring結(jié)合MyEclipse進(jìn)行開發(fā)。(4)詳細(xì)的ONGL語言介紹。(5)詳細(xì)的案例教程。(6)詳細(xì)的Struts2標(biāo)簽庫的用法介紹。(7)詳細(xì)的Hibernate雙向一對(duì)多的解決方案介紹。(8)基于注解式的SSH2事務(wù)整合方案。(9)以實(shí)例代碼為主,所以沒有類似Http協(xié)議相關(guān)理論知識(shí)的介紹。(10)以“垂直”知識(shí)點(diǎn)為主,使讀者更容易接受知識(shí),學(xué)習(xí)效果明顯。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載
Java EE實(shí)用開發(fā)指南 PDF格式下載