出版時(shí)間:2002-1-1 出版社:電子工業(yè)出版社 作者:Ed Roman 頁數(shù):566 譯者:王進(jìn)亮
Tag標(biāo)簽:無
內(nèi)容概要
本書是關(guān)于EJB開發(fā)的經(jīng)典書籍,是EJB開發(fā)者的必備參考書。全書共分4個(gè)部分15章,內(nèi)容涵蓋了EJB的概念、方法和部署,描述了構(gòu)建企業(yè)級(jí)應(yīng)用組件要解決的可擴(kuò)展性、分布式、事務(wù)處理、數(shù)據(jù)存儲(chǔ)和安全性等問題,引導(dǎo)讀者創(chuàng)建企業(yè)級(jí)可升級(jí)、安全可靠、可運(yùn)行于多重平臺(tái)且以商務(wù)為重點(diǎn)的應(yīng)用程序,實(shí)現(xiàn)“服務(wù)器端僅寫一次,即可隨處運(yùn)行”(Server-Side Write Once, Run Anywhere)。書中包含了大量的EJB實(shí)例,深入EJB內(nèi)部進(jìn)行闡釋。本書非常適合于Java程序員、網(wǎng)站開發(fā)人員和系統(tǒng)分析員作為EJB開發(fā)的核心參考書。
作者簡(jiǎn)介
Ed Roman是世界上研究高端中間件技術(shù)的權(quán)威之一。他從一開始就積級(jí)參與Sun Microsystems公司的Enterprise Bean解決方案,設(shè)計(jì)、建立、部署過很多不同的企業(yè)級(jí)應(yīng)用,包括構(gòu)建和開發(fā)完整的應(yīng)用服務(wù)器產(chǎn)品。平常他將大部分的時(shí)間用于更改和完善Sun公司的EJB規(guī)范,他是中間件郵件
書籍目錄
目 錄
第一篇 概 述
第1章 服務(wù)器端組件體系結(jié)構(gòu)
1.1 對(duì)服務(wù)器端組件體系結(jié)構(gòu)的迫切需求
1.1.1 軟件組件
1.1.2 組件體系結(jié)構(gòu)
1.1.3 對(duì)服務(wù)器端應(yīng)用的需求
1.1.4 多層體系結(jié)構(gòu)
1.2 服務(wù)器端組件體系結(jié)構(gòu)解決方案
1.2.1 Microsoft公司的DNA體系結(jié)構(gòu)
1.2.2 Sun公司的J2EE
1.2.3 OMG組織的CORBA標(biāo)準(zhǔn)
1.3 Java 2平臺(tái)企業(yè)版
1.3.1 為什么選擇J2EE
1.3.2 J2EE技術(shù)
1.3.3 EJB
1.3.4 RMI和RMI-IIOP
1.3.5 JNDI
1.3.6 JDBC
1.3.7 JTA和JTS
1.3.8 JMS
1.3.9 Java Servlet和JSP
1.3.10 Java IDL
1.3.11 JavaMail
1.3.12 連接器
1.3.13 XML
1.4 小結(jié)
第2章 EJB概述
2.1 EJB中到底有什么
2.1.1 六個(gè)組成部分
2.1.2 組件供應(yīng)商
2.1.3 EJB服務(wù)器和EJB容器供應(yīng)商
2.1.4 應(yīng)用組裝商
2.1.5 EJB系統(tǒng)部署員
2.1.6 系統(tǒng)管理員
2.2 企業(yè)級(jí)Bean
2.2.1 Bean的分類
2.2.2 Bean組件多種分類的原因
2.3 EJB容器和服務(wù)器功能概述
2.3.1 資源管理和Bean組件生存期管理
2.3.2 狀態(tài)管理
2.3.3 事務(wù)處理
2.3.4 安全性
2.3.5 持久性
2.3.6 遠(yuǎn)程訪問和透明的資源定位
2.3.7 連接代碼和Bean組件安裝工具
2.3.8 專用的容器特性
2.4 小結(jié)
第二篇 開發(fā)Bean
第3章 會(huì)話Bean介紹
3.1 Enterprise Bean的組成部分
3.1.1 Enterprise Bean類
3.1.2 EJB對(duì)象
3.1.3 Home對(duì)象
3.1.4 部署描述
3.1.5 特定的Bean屬性
3.1.6 Ejb-jar文件
3.1.7 術(shù)語小結(jié)
3.2 什么是會(huì)話Bean
3.2.1 會(huì)話Bean的生命周期
3.2.2 對(duì)話型會(huì)話Bean與非對(duì)話型會(huì)話Bean
3.2.3 所有會(huì)話Bean的方法都是可序列化的
3.3 如何編寫會(huì)話Bean
3.3.1 setSessionContext(SessionContext ctx)方法
3.3.2 ejbCreate(...)方法
3.3.3 ejbPassivate()方法
3.3.4 ejbActivate()方法
3.3.5 ejbRemove()方法
3.3.6 商務(wù)方法
3.4 如何調(diào)用會(huì)話Bean
3.4.1 查找Home對(duì)象
3.4.2 創(chuàng)建EJB對(duì)象
3.4.3 調(diào)用方法
3.4.4 清除EJB對(duì)象
3.5 小結(jié)
第4章 無狀態(tài)會(huì)話Bean基礎(chǔ)
4.1 無狀態(tài)會(huì)話Bean特點(diǎn)
4.1.1 不存在對(duì)話狀態(tài)
4.1.2 只有一種方法初始化無狀態(tài)會(huì)話Bean
4.1.3 EJB容器收集并重用無狀態(tài)會(huì)話Bean
4.1.4 EJB對(duì)象的decoupling
4.2 編寫“Hello,World!”無狀態(tài)會(huì)話Bean
4.2.1 創(chuàng)建“Hello,World!”Remote接口
4.2.2 實(shí)現(xiàn)“Hello,World!”Bean
4.2.3 創(chuàng)建“Hello,World!”Home接口
4.2.4 編寫部署描述
4.2.5 環(huán)境屬性
4.2.6 Ejb-jar文件
4.2.7 部署B(yǎng)ean
4.2.8 為無狀態(tài)會(huì)話Bean編寫客戶端代碼
4.2.9 運(yùn)行系統(tǒng)
4.3 小結(jié)
第5章 狀態(tài)會(huì)話Bean基礎(chǔ)
5.1 狀態(tài)會(huì)話Bean特點(diǎn)
5.1.1 狀態(tài)會(huì)話Bean具有收集功能
5.1.2 對(duì)話狀態(tài)遵從的規(guī)則
5.1.3 激活/掛起回調(diào)方法
5.1.4 一個(gè)簡(jiǎn)單的狀態(tài)會(huì)話Bean
5.2 狀態(tài)還是無狀態(tài)
5.3 小結(jié)
第6章 給Bean增加功能
6.1 EJB Context——通向EJB容器之門
6.2 會(huì)話Bean Context
6.3 理解EJB的安全性
6.3.1 第1步:驗(yàn)證
6.3.2 第2步:授權(quán)
6.3.3 安全性的傳播
6.4 理解EJB對(duì)象句柄
6.5 智力游戲“Fazuul”
6.5.1 Fazuul是什么
6.5.2 以EJB角度詳細(xì)說明Fazuul
6.5.3 通過環(huán)境屬性使游戲成為數(shù)據(jù)驅(qū)動(dòng)型游戲
6.5.4 Fazuul游戲的實(shí)現(xiàn)
6.6 運(yùn)行客戶端應(yīng)用程序
6.6.1 檢驗(yàn)EJB對(duì)象句柄
6.6.2 檢驗(yàn)安全性
6.7 小結(jié)
第7章 實(shí)體Bean介紹
7.1 持久的概念
7.1.1 Java對(duì)象序列化
7.1.2 對(duì)象-關(guān)系型數(shù)據(jù)庫映射
7.1.3 對(duì)象數(shù)據(jù)庫
7.2 什么是實(shí)體Bean
7.3 實(shí)體Bean的特征
7.3.1 實(shí)體Bean是長(zhǎng)久存在的
7.3.2 實(shí)體Bean能夠避免Bean失效
7.3.3 實(shí)體Bean實(shí)例是一個(gè)對(duì)應(yīng)到數(shù)據(jù)庫中的視圖
7.3.4 幾個(gè)實(shí)體Bean實(shí)例可能代表同一底層數(shù)據(jù)
7.3.5 實(shí)體Bean實(shí)例可以被收集再利用
7.3.6 保持實(shí)體Bean的兩種方法
7.3.7 實(shí)體Bean可以被創(chuàng)建、刪除或查詢
7.3.8 實(shí)體Bean可以代表遺留下來的數(shù)據(jù)和系統(tǒng)
7.3.9 實(shí)體Bean可以不通過EJB被修改
7.4 開發(fā)和使用實(shí)體Bean
7.4.1 實(shí)體Bean的創(chuàng)建:ejbCreate()
7.4.2 查尋已存在的實(shí)體Bean:ejbFind()
7.4.3 實(shí)體Bean的刪除:ejbRemove()
7.5 實(shí)體上下文
7.5.1 getEJBObject()
7.5.2 getPrimaryKey()
7.6 實(shí)體Bean的生存周期
7.7 小結(jié)
第8章 編寫B(tài)ean管理的持久實(shí)體Bean
8.1 實(shí)現(xiàn)Bean管理持久的指導(dǎo)方針
8.2 Bean管理持久的范例:一個(gè)銀行賬戶
8.2.1 Account.java
8.2.2 AccountHome.java
8.2.3 AccountPK.java
8.2.4 AccountBean.java
8.2.5 AccountException.java
8.2.6 Client.java
8.2.7 部署描述
8.2.8 環(huán)境屬性
8.2.9 建立數(shù)據(jù)庫
8.3 運(yùn)行客戶端程序
8.3.1 服務(wù)器端的輸出
8.3.2 客戶端的輸出
8.4 小結(jié)
第9章 編寫容器管理的持久實(shí)體Bean
9.1 容器管理的域
9.2 主鍵類
9.3 實(shí)現(xiàn)容器管理持久的指導(dǎo)方針
9.4 容器管理持久的范例:產(chǎn)品系列
9.4.1 Product.java
9.4.2 ProductHome.java
9.4.3 ProductPK.java
9.4.4 ProductBean.java
9.4.5 Client.java
9.4.6 部署描述
9.5 運(yùn)行客戶端程序
9.5.1 服務(wù)器端的輸出
9.5.2 客戶端的輸出
9.6 承諾和現(xiàn)實(shí):Bean管理的持久與容器管理的持久
9.6.1 承諾:容器管理的持久會(huì)減少代碼量
9.6.2 承諾:容器管理的持久會(huì)減少錯(cuò)誤
9.6.3 承諾:容器管理的持久使連接到不同的數(shù)據(jù)庫變得容易
9.7 解決EJB調(diào)試問題
9.8 小結(jié)
第三篇 EJB的高級(jí)概念
第10章 事務(wù)
10.1 事務(wù)產(chǎn)生的動(dòng)機(jī)
10.1.1 原子操作
10.1.2 網(wǎng)絡(luò)故障或機(jī)器故障
10.1.3 多用戶共享數(shù)據(jù)
10.2 事務(wù)所帶來的益處
10.3 事務(wù)的模型
10.3.1 平面式事務(wù)模型
10.3.2 嵌套式事務(wù)模型
10.3.3 其他事務(wù)模型
10.4 事務(wù)在EJB組件中的應(yīng)用
10.4.1 事務(wù)模型的支持
10.4.2 后臺(tái)事務(wù)系統(tǒng)的提取
10.4.3 聲明型事務(wù)和編程型事務(wù)
10.4.4 控制EJB組件加入事務(wù)的方式
10.4.5 EJB事務(wù)的屬性值
10.5 事務(wù)的隔離
10.5.1 并發(fā)控制的需求
10.5.2 隔離性與EJB
10.5.3 不當(dāng)讀取問題
10.5.4 不可重復(fù)讀取問題
10.5.5 幻影讀取問題
10.5.6 事務(wù)隔離性的總結(jié)
10.6 分布式事務(wù)
10.6.1 穩(wěn)定性和兩階段提交協(xié)議
10.6.2 事務(wù)的通信協(xié)議和事務(wù)上下文
10.7 EJB中的編程型事務(wù)
10.7.1 CORBA的對(duì)象事務(wù)處理服務(wù)
10.7.2 Java事務(wù)處理服務(wù)
10.7.3 Java事務(wù)處理API
10.7.4 聲明型事務(wù)和編程型事務(wù)的應(yīng)用范例比較
10.7.5 如何使用客戶代碼控制事務(wù)
10.8 在EJB中設(shè)計(jì)事務(wù)會(huì)話
10.9 小結(jié)
第11章 CORBA和RMI-IIOP
11.1 何謂CORBA
11.2 我們?yōu)楹我P(guān)心CORBA
11.2.1 CORBA的優(yōu)點(diǎn)
11.2.2 CORBA的缺點(diǎn)
11.3 理解CORBA是如何工作的
11.3.1 對(duì)象請(qǐng)求代理程序
11.3.2 對(duì)象實(shí)現(xiàn)和對(duì)象引用
11.3.3 對(duì)象適配器
11.3.3 存儲(chǔ)器
11.4 OMG的接口語言
11.4.1 將OMG IDL映射成具體的語言
11.4.2 靜態(tài)調(diào)用
11.4.3 動(dòng)態(tài)調(diào)用
11.5 CORBA提供的眾多服務(wù)
11.5.1 命名服務(wù)
11.5.2 事件服務(wù)
11.5.3 對(duì)象事務(wù)服務(wù)
11.5.4 并發(fā)控制服務(wù)
11.5.5 安全服務(wù)
11.5.6 CORBA組件
11.6 基于IIOP的RMI
11.6.1 RMI-CORBA協(xié)同工作的需求
11.6.2 RMI與CORBA的結(jié)合
11.6.3 基于IIOP的RMI的優(yōu)點(diǎn)
11.6.4 RMI與IIOP結(jié)合所帶來的問題
11.7 RMI與CORBA的協(xié)同工作綜述
11.7.1 帶有CORBA對(duì)象實(shí)現(xiàn)的RMI-IIOP客戶
11.7.2 帶有RMI-IIOP對(duì)象實(shí)現(xiàn)的CORBA客戶
11.8 RMI-IIOP API
11.8.1 javax.rmi
11.8.2 基于IIOP的RMI的引導(dǎo)
11.9 理想的藍(lán)圖:CORBA與EJB的結(jié)合
11.9.1 CORBA/EJB協(xié)同工作的優(yōu)點(diǎn)
11.9.2 CORBA/EJB協(xié)同工作的情景
11.9.3 范例代碼
11.9.4 CORBA EJB客戶范例
11.10 小結(jié)
第四篇 一個(gè)復(fù)雜的電子商務(wù)部署
第12章 設(shè)計(jì)一個(gè)電子商務(wù)對(duì)象模型
12.1 最終產(chǎn)品的預(yù)覽
12.2 技術(shù)需求
12.2.1 商務(wù)邏輯層的對(duì)象模型
12.2.2 表達(dá)層的對(duì)象模型
12.3 小結(jié)
第13章 實(shí)現(xiàn)電子商務(wù)實(shí)體Bean
13.1 顧客實(shí)體Bean
13.1.1 Customer.java
13.1.2 CustomerBean.java
13.1.3 CustomerHome.java
13.1.4 CustomerPK.java
13.1.5 部署描述
13.2 訂單條目實(shí)體Bean
13.2.1 OrderLineItem.java
13.2.2 OrderLineItemBean.java
13.2.3 處理實(shí)體Bean引用
13.2.4 OrderLineItemHome.java
13.2.5 OrderLineItemPK.java
13.2.6 部署描述
13.3 訂單實(shí)體Bean
13.3.1 Order.java
13.3.2 OrderBean.java
13.3.3 OrderHome.java
13.3.4 OrderPK.java
13.3.5 OrderException.java
13.3.6 部署描述
13.4 小結(jié)
第14章 實(shí)現(xiàn)電子商務(wù)會(huì)話Bean
14.1 購(gòu)物籃條目狀態(tài)會(huì)話Bean
14.1.1 QuoteLineItem.java
14.1.2 QuoteLineItemBean.java
14.1.3 QuoteLineItemHome.java
14.1.4 部署描述
14.2 購(gòu)物籃狀態(tài)會(huì)話Bean
14.2.1 Quote.java
14.2.2 QuoteBean.java
14.2.3 QuoteHome.java
14.2.4 QuoteException.java
14.2.5 部署描述
14.3 無狀態(tài)計(jì)價(jià)會(huì)話Bean
14.3.1 Pricer.java
14.3.2 PricerBean.java
14.3.3 PricerHome.java
14.3.4 PricerException.java
14.3.5 部署描述
14.4 無狀態(tài)銀行出納員會(huì)話Bean
14.4.1 Teller.java
14.4.2 TellerHome.java
14.4.3 TellerBean.java
14.4.4 TellerException.java
14.4.5 部署描述
14.5 小結(jié)
第15章 將Servlet連接到EJB
15.1 Servlet在EJB部署中的角色
15.2 實(shí)現(xiàn)Servlet
15.3 Web店面Servlet
15.4 在線目錄Servlet
15.5 商品概況Servlet
15.6 商品詳情Servlet
15.7 購(gòu)物籃查看Servlet
15.8 購(gòu)買Servlet
15.8 Servlet屬性
15.9 運(yùn)行完整的電子商務(wù)系統(tǒng)
15.9.1 啟動(dòng)商務(wù)邏輯層
15.9.2 啟動(dòng)表達(dá)層
15.9.3 啟動(dòng)瘦客戶
15.10 優(yōu)化及設(shè)計(jì)策略
15.10.1 生成惟一的主鍵
15.10.2 減少網(wǎng)絡(luò)往返路程:消極調(diào)用Bean
15.10.3 標(biāo)識(shí)實(shí)體Bean的同步需求
15.10.4 實(shí)體Bean與會(huì)話Bean的設(shè)計(jì)
15.10.5 設(shè)計(jì)精巧的和設(shè)計(jì)粗糙的實(shí)體Bean
15.10.6 查找大量的實(shí)體Bean
15.11 小結(jié)
附 錄
附錄A 理解Java遠(yuǎn)程方法調(diào)用
A.1 遠(yuǎn)程方法調(diào)用
A.2 RMI體系結(jié)構(gòu)
A.2.1 RMI和接口與實(shí)現(xiàn)
A.2.2 根程序和程序框架
A.2.3 根連接和RMI注冊(cè)
A.2.4 RMI URL
A.2.5 查找遠(yuǎn)程對(duì)象
A.3 RMIC——RMI編譯器
A.4 對(duì)象序列化和參數(shù)傳遞
A.4.1 值傳遞
A.4.2 對(duì)象序列化
A.4.3 對(duì)象是怎樣序列化的
A.4.4 怎樣標(biāo)記暫態(tài)
A.4.5 使用對(duì)象序列化
A.4.6 RMI怎樣模擬通過引用傳遞參數(shù)
A.4.7 輸出遠(yuǎn)程對(duì)象
A.5 一個(gè)簡(jiǎn)單的例子
A.5.1 IFlip接口
A.5.2 Flip類
A.5.3 客戶
A.5.4 編譯這個(gè)程序
A.5.5 運(yùn)行該程序
A.6 處理遠(yuǎn)程異常
A.6.1 RMI遠(yuǎn)程異常的限制
A.6.2 RMI技巧
A.7 高級(jí)RMI
A.7.2 RMI例子:用于分布式記錄的消息隊(duì)列
A.7.3 RMI例子:開發(fā)分布式垃圾收集器
A.8 RMI、CORBA和EJB
A.9 RMI和EJB
A.9.1 EJB對(duì)象
A.9.2 本地對(duì)象
A.10 小結(jié)
附錄B 了解Java命名和目錄接口JNDI
B.1 命名和目錄服務(wù)器
B.2 進(jìn)入JNDI
B.3 JNDI概述
B.3.1 JNDI的結(jié)構(gòu)體系
B.3.2 現(xiàn)有的服務(wù)技術(shù)類型
B.4 了解JNDI程序背后的概念
B.5 JNDI的程序設(shè)計(jì)
B.5.1 安裝必需的軟件
B.5.2 JNDI 包
B.5.3 探索Javax.naming包
B.5.4 實(shí)例:一個(gè)交互式瀏覽器
B.6 高級(jí)JNDI:JNDI與JDBC的結(jié)合
B.7 高級(jí)JNDI:JNDI和EJB相結(jié)合
B.7.1 JNDI和EJB主對(duì)象
B.7.2 JNDI的其他用途
B.8 高級(jí)JNDI:連接JNDI和Java RMI
B.8.1 IFlip.java
B.8.2 Flip.java
B.8.3 FlipClient.java
B.8.4 運(yùn)行這個(gè)例子
B.9 小結(jié)
附錄C 了解XML
C.1 XML的商業(yè)需要
C.1.1 電子商務(wù)
C.1.2 現(xiàn)有技術(shù)的不足
C.2 XML
C.2.1 XML的優(yōu)點(diǎn)
C.2.2 XML和EDI的比較
C.2.3 XML和SGML的比較
C.2.4 XML和HTML 的比較
C.3 XML的概念
C.3.1 Prolog
C.3.2 XML元素
C.3.3 XML實(shí)體
C.3.4 CDATA片段
C.3.5 格式正確的文檔
C.3.6 XML DTD
C.3.7 XML小結(jié)
C.4 XML和EJB
C.4.1 EJB部署描述
C.4.2 作為在線數(shù)據(jù)格式的XML
C.5 小結(jié)
附錄D 了解EJB 1.1
D.1 可移植的部署描述
D.1.1 Ejb-Jar文件的部署描述
D.1.2 EJB 1.1 XML部署描述的例子
D.2 實(shí)體Bean的授權(quán)支持
D.3 RMI-IIOP API標(biāo)準(zhǔn)
D.4 JNDI的各個(gè)方面
D.4.1 如何從客戶代碼中查找主對(duì)象
D.4.2 如何從Bean中查找主對(duì)象
D.4.3 如何查找資源工廠
D.4.4 如何查詢環(huán)境屬性
D.4.5 如何查找JTA UserTransaction接口
D.5 正確的Bean引用
D.5.1 鈍化和活化的提高
D.5.2 持久性的改進(jìn)
D.6 事務(wù)處理程序的闡明和提高
D.6.1 實(shí)體Bean必須使用容器管理的事務(wù)處理
D.6.2 陳述性事務(wù)處理程序的變化
D.7 安全更新
D.7.1 安全上下文傳遞的變化
D.7.2 Java 2的安全模式
D.7.3 在EJB 1.1系統(tǒng)中加入程序性的安全措施步驟
D.7.4 在EJB 1.1系統(tǒng)中加入說明性的安全措施步驟
D.8 新的主句柄
D.9 EJB 1.1里的其他重要變化
D.10 更多的信息
D.11 EJB 1.1以后的發(fā)展
D.12 小結(jié)
附錄E 購(gòu)買EJB產(chǎn)品
E.1 符合EJB規(guī)范
E.2 支持實(shí)體Bean
E.3 持久性
E.3.1 Bean自己管理的持久性
E.3.2 容器管理持久性
E.4 選擇基于CORBA與RMI的EJB產(chǎn)品
E.5 RMI-IIOP API的使用
E.6 經(jīng)JNDI的JTA可存取性
E.7 協(xié)議問題
E.8 集成層次的支持
E.9 內(nèi)存數(shù)據(jù)的高速緩存
E.10 可測(cè)量性
E.11 高度的實(shí)用性
E.12 安全性
E.13 IDE集成
E.14 智能負(fù)荷平衡
E.15 無狀態(tài)的透明的結(jié)束出錯(cuò)
E.16 分組
E.17 合理地關(guān)機(jī)
E.18 實(shí)時(shí)部署
E.19 分布式事務(wù)處理
E. 現(xiàn)有企業(yè)系統(tǒng)的集成
E.21 異步通信的支持
E.22 具有Bean廠家的集成
E.23 專業(yè)化的服務(wù)
E.24 非技術(shù)標(biāo)準(zhǔn)
E.25 小結(jié)
附錄F EJB快速索引向?qū)?br />F.1 會(huì)話Bean的圖表
F.2 狀態(tài)會(huì)話Bean的圖表
F.3 實(shí)體Bean的圖表
F.4 EJB API索引
F.4.1 CreateException
F.4.2 DuplicateKeyException
F.4.3 EJBContext
F.4.4 EJBException
F.4.5 EJBHome
F.4.6 EJBMetaData
F.4.7 EJBObject
F.4.8 EnterpriseBean
F.4.9 EntityBean
F.4.10 EntityContext
F.4.11 FinderException
F.4.12 Handle
F.4.13 HomeHandle
F.4.14 NoSuchEntityException
F.4.15 ObjectNotFoundException
F.4.16 RemoveException
F.4.17 SessionBean
F.4.18 SessionContext
F.4.19 SessionSynchronization
F.5 事務(wù)索引
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載