欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何實(shí)現(xiàn)J2EE分布式系統(tǒng)框架設(shè)計(jì)-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)如何實(shí)現(xiàn)J2EE分布式系統(tǒng)框架設(shè)計(jì),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)是一家從事企業(yè)網(wǎng)站建設(shè)、網(wǎng)站制作、成都網(wǎng)站建設(shè)、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)制作的專業(yè)網(wǎng)絡(luò)公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)近1000家。

一,導(dǎo)言

框架設(shè)計(jì)(Framework Design)是系統(tǒng)設(shè)計(jì)的重要組成部分,一個(gè)設(shè)計(jì)優(yōu)秀的框架是一個(gè)可擴(kuò)展和可改變(遷移)系統(tǒng)的基礎(chǔ)。下面針對常見J2EE分布式的信息系統(tǒng)(特別是B/S形式的系統(tǒng)),提出作者在框架設(shè)計(jì)上的觀點(diǎn)和思路。

(一)問題和解決方法

目前應(yīng)用J2EE技術(shù)構(gòu)建信息系統(tǒng)的需求越來越復(fù)雜,開發(fā)周期越來越緊迫,同時(shí)對系統(tǒng)的穩(wěn)定性、擴(kuò)展性和可維護(hù)性要求也越來越高。那么如何滿足客戶對系統(tǒng)要求,加快我們的開發(fā)呢?信息系統(tǒng)需要一個(gè)持久化的存儲設(shè)備(如:數(shù)據(jù)庫)中存放和取回信息數(shù)據(jù)。當(dāng)存儲設(shè)備改變時(shí),我們?nèi)绾问瓜到y(tǒng)支持這個(gè)改變,而不用重寫我們的程序代碼呢?已有的代碼能不能在新的系統(tǒng)上重用呢?類似問題,給我們系統(tǒng)設(shè)計(jì)帶來很大的挑戰(zhàn)。

一個(gè)有效的解決方法是把信息業(yè)務(wù)信息按照應(yīng)用功能模塊拆分開:業(yè)務(wù)邏輯與數(shù)據(jù)庫服務(wù)器分開,用戶界面與業(yè)務(wù)邏輯分開。辟此相對獨(dú)立,任一方任何改變都不會影響對方。這就是我們經(jīng)常提到的三層概念。

*表示層(Presentation)

*業(yè)務(wù)邏輯層(Business Logic)

*數(shù)據(jù)存儲層(Data)

表示層負(fù)責(zé)提供用戶界面,業(yè)務(wù)邏輯層負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)邏輯,數(shù)據(jù)存儲層負(fù)責(zé)業(yè)務(wù)邏輯層中所有數(shù)據(jù)的持久的存儲。

業(yè)務(wù)邏輯層在三層模型中具有很好的伸縮性,設(shè)計(jì)者往往根據(jù)系統(tǒng)容量、分發(fā)、部署等等情況再一步把業(yè)務(wù)邏輯層細(xì)分,從而產(chǎn)生了多層。這就是所謂n層體系結(jié)構(gòu)。所以業(yè)務(wù)邏輯層也是我們系統(tǒng)設(shè)計(jì)中最重要的一塊。

引入三層模型后,我們就可以針對這三層的特點(diǎn)定義出一種可重用的、可擴(kuò)展的類集合,它通過標(biāo)準(zhǔn)的API來先外提供服務(wù)。這些類集合的劃分和定義過程就是我們所要闡述的框架設(shè)計(jì)。

(二)框架定義及特點(diǎn)

什么是框架(framework)?框架可以定義為一組關(guān)系服務(wù)的可擴(kuò)展、可重用的子系統(tǒng)。常見的軟件框架有:MFC、VCL、JDK等等。其具有以下的特點(diǎn)。

*它是一個(gè)功能類的集合,類之間可以相互協(xié)作,為業(yè)務(wù)邏輯子系統(tǒng)提供服務(wù)。

*它包含了具體類和抽象類,這些類定義了標(biāo)準(zhǔn)的接口、對象間的交互作用和系統(tǒng)的相關(guān)常量。抽象類,可以包含抽象和具體的方法。

*為了利用、自定義或擴(kuò)展框架的服務(wù),通常需要框架的使用者去定義已存在的框架類的子類。

*框架中定義好的類只提供給用戶自定義的類調(diào)用,而從不調(diào)用用戶自己定義的類。

二,框架設(shè)計(jì)

對于一個(gè)分布式信息系統(tǒng),我們通過上面的討論,引入了三層的設(shè)計(jì)模型,現(xiàn)在就可以在這個(gè)模型上進(jìn)行系統(tǒng)的框架設(shè)計(jì)了。但是,在開始設(shè)計(jì)之前先明確一下框架設(shè)計(jì)的目標(biāo)。根據(jù)系統(tǒng)要求和框架定義,我們的目標(biāo)為:

*類(組件、代碼)大化的重用。

*框架結(jié)構(gòu)盡可能合理、簡單和明了。

*框架要有靈活擴(kuò)展性。滿足用戶的二次開發(fā)要求。

*框架要安全、穩(wěn)定、高效率,可維護(hù),可升級。

*框架中子系統(tǒng)(包)之間不應(yīng)該存在雙向性依存關(guān)系。

分布式信息系統(tǒng)三層設(shè)計(jì)模型中系統(tǒng)類的類型(Classes-Type)體系結(jié)構(gòu)圖如下所示:

圖(一)

所以此框架設(shè)計(jì)為:

把分布式信息系統(tǒng)的框架總體劃分為四個(gè)主體包,分別為:表示層的用戶界面包(ui),業(yè)務(wù)邏輯層的業(yè)務(wù)對象包(bs),數(shù)據(jù)持久層的數(shù)據(jù)持久包(ps),系統(tǒng)資源層的通用實(shí)用包(su),結(jié)合公司自己的命名規(guī)范,具體的UML框架圖可為如下所示:

圖(二)

其中,“ProjectName”為信息系統(tǒng)項(xiàng)目的立項(xiàng)英文命名,如:國有資產(chǎn)管理系統(tǒng),“ProjectName”為“sams”;“CompanyName”為公司的英文簡稱,如:翱拓系統(tǒng)集成,“CompanyName”為“auto”。

“ui”----用戶界面包(User Interface)。

“bs”----業(yè)務(wù)邏輯包(Business Session)。

“ps”----數(shù)據(jù)持久存儲包(Persistence Store)。

“su”----系統(tǒng)通用實(shí)用包(System Utility)。

下面將結(jié)合J2EE體系結(jié)構(gòu)分別詳細(xì)討論各層包的框架實(shí)現(xiàn)問題。

(一)通用系統(tǒng)資源層框架設(shè)計(jì)

通用系統(tǒng)資源層框架設(shè)計(jì),從我們上面定義好框架來看就是系統(tǒng)通用包su(System Utility)的設(shè)計(jì)。從圖(二)可以看出,ui包、bs包和ps包都是從su包中調(diào)用接口,su包給它們提供服務(wù)。所以本層框架的設(shè)計(jì)是系統(tǒng)能否實(shí)現(xiàn)類(組件)重用的基礎(chǔ),是系統(tǒng)能否滿足可靠穩(wěn)定、高效率和可維護(hù)的關(guān)鍵。

既然是通用包,那么它具體提供哪些服務(wù)(或工具)呢?我們知道J2EE體系結(jié)構(gòu)中也提供了許多標(biāo)準(zhǔn)的服務(wù),如:JMS、EJB、JTA等等。那么su包是否也應(yīng)該提供類似的服務(wù)呢?這些問題都沒有統(tǒng)一的答案,這主要看項(xiàng)目系統(tǒng)分析和設(shè)計(jì)人員根據(jù)項(xiàng)目本身的特點(diǎn)和需求,應(yīng)用什么樣的技術(shù)和解決問題所運(yùn)用什么樣的設(shè)計(jì)思想和設(shè)計(jì)模式等因素有關(guān)。

值得一提的是,“框架是骨架,設(shè)計(jì)模式是肉”。設(shè)計(jì)模式思想影響框架的構(gòu)成,一個(gè)框架中應(yīng)用合適的設(shè)計(jì)模式來實(shí)現(xiàn),才是框架精華的所在。在這一層,常應(yīng)用到的設(shè)計(jì)模式有:結(jié)構(gòu)型的Bridge模式、Facade、Proxy;創(chuàng)建型的Factory、Singleton和行為型的Strategy等。

根據(jù)作者的經(jīng)驗(yàn),結(jié)合J2EE體系結(jié)構(gòu)的應(yīng)用,通用系統(tǒng)資源層的框架可為:

圖(三)

圖(三)說明如下:

su包包含8個(gè)子包,分別為:

(1),resource包,包含標(biāo)準(zhǔn)接口訪問J2EE中間件(應(yīng)用服務(wù)器)資源的類。如:容器的JNDI服務(wù)等等。

(2),factory包,包含創(chuàng)建不同類型對象的接口的類,目的是有利于控制類創(chuàng)建,減少一些關(guān)鍵對象誤用的風(fēng)險(xiǎn)。

(3),jms包,包裝了有關(guān)應(yīng)用J2EE消息服務(wù)的類。

(4),ui包,針對表示層封裝一些標(biāo)準(zhǔn)通用的類。

(5),ejb包,引用Bridge設(shè)計(jì)模式,在EJB中加多一層封裝,一般以后方便擴(kuò)展和維護(hù)EJB,減少ejb編程的風(fēng)險(xiǎn)。根據(jù)ejb的類型,分session和entity兩個(gè)子包。

(6),db包,包含有關(guān)訪問數(shù)據(jù)庫的類,包括:數(shù)據(jù)庫連接池、報(bào)表和序列號等標(biāo)準(zhǔn)接口。

(7),log包,包含記錄體統(tǒng)日志和調(diào)試應(yīng)用的接口類。細(xì)分applog和appdebug兩個(gè)包。

(8),exception包,根據(jù)系統(tǒng)的特性,自定義一套應(yīng)用異常。

(9)tools包,包含了常用標(biāo)準(zhǔn)的系統(tǒng)函數(shù)類。根據(jù)這些函數(shù)的類型,分為:date、maths、format和constfunc四個(gè)包。

以上框架僅為參考,設(shè)計(jì)人員可根據(jù)自己的實(shí)際需要,來重新定義。

(二)表示層框架設(shè)計(jì)

表示層框架設(shè)計(jì)對應(yīng)著我們定義的ui包框架設(shè)計(jì)。在針對J2EE體系結(jié)構(gòu)做系統(tǒng)設(shè)計(jì)時(shí),往往應(yīng)用MVC(Model-View-Controller)設(shè)計(jì)模式來實(shí)現(xiàn)。MVC模式根據(jù)應(yīng)用的角色對應(yīng)用進(jìn)行分解,然后使用不同的方法解決。

*Model,模型,系統(tǒng)應(yīng)用的具體數(shù)據(jù)模型,不關(guān)心怎么表示和何時(shí)訪問。只考慮數(shù)據(jù)的完整性和存儲方式。與數(shù)據(jù)持久層對應(yīng),所以是我們數(shù)據(jù)持久層框架設(shè)計(jì)所關(guān)心的問題。

*View,視圖,只關(guān)系如何表示的問題。本層討論。

*Controller,控制器,控制器是解決何時(shí)訪問的問題。是系統(tǒng)應(yīng)用的業(yè)務(wù)邏輯,確定是否滿足一定條件時(shí),應(yīng)用程序才能訪問模型(Model)中的特定數(shù)據(jù),然后根據(jù)情況把取得的具體數(shù)據(jù)委托給負(fù)責(zé)表示的視圖(View)。與業(yè)務(wù)邏輯層對應(yīng),在業(yè)務(wù)邏輯層框架設(shè)計(jì)中討論。

在J2EE體系中,AWT、SWING、JSP和Servlet都是針對表示(視圖)而設(shè)計(jì)的。在實(shí)際應(yīng)用中,我們經(jīng)常根據(jù)系統(tǒng)不同的功能模塊寫JSP和APP客戶端應(yīng)用程序來和用戶交互,所以在框架定義中可分為兩個(gè)包,jsp包和app包;同時(shí),有時(shí)候還需要定義一些系統(tǒng)常量和處理一些頁面邏輯,所以我們也定義一個(gè)vbn(view bean)包來存放這些頁面類和常量類。所以表示層的框架設(shè)計(jì)可為:

圖(四)

圖(四)說明如下:

(1)jsp包,按信息系統(tǒng)不同的功能模塊存放jsp程序文件。由于jsp文件類型不是java文件類型,所以此包可以當(dāng)作目錄處理,把其提出來,按照系統(tǒng)部署的要求,單獨(dú)放在一個(gè)合理的目錄下。其中JFunctionModule1、JfunctionModule2、JfunctionModule3等名稱為信息系統(tǒng)具體的功能模塊名稱??筛鶕?jù)需要來定義和安排目錄。

(2)app包,存放java客戶端應(yīng)用程序。其中AFunctionModule1、AfunctionModule2、AfunctionModule3等包名稱為信息系統(tǒng)具體的功能模塊包名稱。根據(jù)客戶端應(yīng)用程序的所屬關(guān)系,存放到具體的功能模塊包中。

(3)vbn包,存放信息系統(tǒng)表示層的常量定義類和頁面處理類。

最后,值得一提的是:在表示層的jsp頁面開發(fā)中,為了避免把太多的代碼和邏輯編寫在同一個(gè)頁碼中,提高jsp程序的效率和可維護(hù)性,可以應(yīng)用VC(View-Controller)設(shè)計(jì)模式,html為視圖,servlet為控制器。當(dāng)然還可以應(yīng)用struts技術(shù)來實(shí)現(xiàn),這里就不在討論了。這應(yīng)該屬于具體的程序設(shè)計(jì)問題。

(三)業(yè)務(wù)邏輯層框架設(shè)計(jì)

業(yè)務(wù)邏輯層設(shè)計(jì)對應(yīng)我們定義bs包的框架設(shè)計(jì)。是MVC模式的Controller(控制器),負(fù)責(zé)訪問數(shù)據(jù)持久層,把返回?cái)?shù)據(jù)提交給表示層,起到承上啟下的作用。J2EE體系結(jié)構(gòu)中,我們一般應(yīng)用會話Bean來實(shí)現(xiàn)。

業(yè)務(wù)邏輯層設(shè)計(jì)在系統(tǒng)設(shè)計(jì)的詳細(xì)設(shè)計(jì)中是最為復(fù)雜,工作量對大的一塊。需要從系統(tǒng)分析中提取信息系統(tǒng)各個(gè)功能模塊的用例(Use Case),再針對每個(gè)用例,應(yīng)用UML語言詳細(xì)繪畫出此用例的順序圖(或協(xié)作圖),然后根據(jù)實(shí)際情況決定是否使用有狀態(tài)還是無狀態(tài)的會話Bean。但是,此層的的框架設(shè)計(jì)卻簡單明了,其框架可為:

圖(五)

在bs包下直接根據(jù)信息系統(tǒng)的功能模塊的名稱來定義子包。其中,bsFunctionModule為功能模塊的英文名稱。

(四)數(shù)據(jù)持久層框架設(shè)計(jì)

數(shù)據(jù)持久層對應(yīng)MVC設(shè)計(jì)模型中的Model,其設(shè)計(jì)是信息系統(tǒng)設(shè)計(jì)的最重要部分,是系統(tǒng)的性能和是否可平移的基礎(chǔ),其設(shè)計(jì)好壞直接影響到項(xiàng)目的成功與否。數(shù)據(jù)持久層框架設(shè)計(jì)只有詳細(xì)討論數(shù)據(jù)模型設(shè)計(jì)后,才能比較好勾畫出來。故本節(jié)準(zhǔn)備探討持久數(shù)據(jù)模型設(shè)計(jì)后,再實(shí)現(xiàn)其框架設(shè)計(jì)。

常見數(shù)據(jù)持久層設(shè)計(jì)類型

(A)在業(yè)務(wù)邏輯層的類中,直接使用SQL代碼。如下圖所示:

圖(六)

*優(yōu)點(diǎn):

寫代碼的效率很高。

*缺點(diǎn):

SQL代碼到處出現(xiàn)在程序的類中;邏輯業(yè)務(wù)類與數(shù)據(jù)庫直接耦合在一起,這意味著任何小的改動都導(dǎo)致程序原代碼的修改。

  *結(jié)論:

對于小型應(yīng)用程序是可行的,對于企業(yè)級的系統(tǒng),這種在邏輯業(yè)務(wù)類中寫死SQL的方法,會導(dǎo)致代碼難于維護(hù)和擴(kuò)展。

(B)SQL代碼封裝在一個(gè)或多個(gè)數(shù)據(jù)代理類中。如下圖所示:

圖(七)

*優(yōu)點(diǎn):

在業(yè)務(wù)類和數(shù)據(jù)庫之間加多一層封裝,是系統(tǒng)的可維護(hù)性大為提高。這種方法包括可以利用數(shù)據(jù)庫存儲過程、SQLJ以及微軟ADO數(shù)據(jù)訪問的策略。

*缺點(diǎn):

對數(shù)據(jù)庫進(jìn)行任何一點(diǎn)的改動都會直接影響到數(shù)據(jù)代理的代碼,也就是程序原代碼還必須改動。

(C)不用寫SQL代碼,對數(shù)據(jù)庫的訪問完全通過具有魯棒性數(shù)據(jù)持久層來實(shí)現(xiàn)。如圖所示:

圖(八)

所謂的魯棒性數(shù)據(jù)持久層至少要滿足下面的條件:

(1),支持關(guān)系數(shù)據(jù)庫的高級的特性。(如:事務(wù)、存儲過程、游標(biāo))

(2),支持對象和關(guān)系之間的映射,用戶不直接用SQL與數(shù)據(jù)庫交互。

(3),支持多連接,支持?jǐn)?shù)據(jù)庫連接池。

(4),支持多種體系結(jié)構(gòu),支持不同廠商的數(shù)據(jù)庫。

*優(yōu)點(diǎn):

應(yīng)用程序開發(fā)人員不需要了解數(shù)據(jù)庫結(jié)構(gòu),甚至也沒必要知道對象如何保存在數(shù)據(jù)庫的。有利于組織開發(fā)大規(guī)模的針對關(guān)鍵業(yè)務(wù)的信息系統(tǒng)。系統(tǒng)的遷植性、可維護(hù)性和擴(kuò)展性好。

*缺點(diǎn):

由于對數(shù)據(jù)庫的訪問交給了持久層處理,理論上對系統(tǒng)的性能上有些影響。

具體選型

上面列出了常見的數(shù)據(jù)持久層的幾種類型,那么我們究竟應(yīng)用那種類型比較合適呢?這需要根據(jù)系統(tǒng)規(guī)模和需要的具體情況來決定。在J2EE體系結(jié)構(gòu)中開發(fā)系統(tǒng),我們應(yīng)該選擇(B)和(C)兩種數(shù)據(jù)持久層比較合適。

在J2EE體系結(jié)構(gòu)中,類型(C)魯棒性數(shù)據(jù)持久層可以應(yīng)用EJB的容器管理實(shí)體Bean(CMP)來實(shí)現(xiàn),在EJB2.X中CMP就是為了實(shí)現(xiàn)魯棒性數(shù)據(jù)持久層而制定的標(biāo)準(zhǔn)規(guī)范。開發(fā)人員不必在CMP中編寫SQL代碼,一切和數(shù)據(jù)庫的交互都交給EJB容器去負(fù)責(zé)。由于J2EE是開放、標(biāo)準(zhǔn)規(guī)范,所以,CMP組件可以在EJB容器與數(shù)據(jù)庫之間移植。

在實(shí)際的信息系統(tǒng)開發(fā)過程中,我們往往需要處理一些復(fù)雜的查詢或報(bào)表,而這些查詢數(shù)據(jù)往往來源于多個(gè)數(shù)據(jù)表,而且其查詢結(jié)果的實(shí)體對象的觀念性不強(qiáng)。這個(gè)時(shí)候,我們用CMP去封裝它就顯得有點(diǎn)無能為力了。因?yàn)槔碚撋蠈?shí)體Bean畢竟代表了數(shù)據(jù)庫表里面的一行數(shù)據(jù)。

遇到這種情形,數(shù)據(jù)持久層的設(shè)計(jì)采用類型(B)就比較合適了。我們可以用EJB的無狀態(tài)會話Bean來實(shí)現(xiàn)這層的封裝。通常的利用Bridge設(shè)計(jì)模式來實(shí)現(xiàn):

(1)建立數(shù)據(jù)訪問對象DAO(Data Access Object)接口。定義數(shù)據(jù)源的抽象操作行為,提供方便訪問和維護(hù)數(shù)據(jù)的標(biāo)準(zhǔn)API結(jié)構(gòu)。

(2)實(shí)現(xiàn)數(shù)據(jù)訪問對象接口。DAOImplementor。實(shí)現(xiàn)具體DAO接口的內(nèi)容,根據(jù)應(yīng)用的數(shù)據(jù)源類型不同,可以有針對多個(gè)數(shù)據(jù)源的實(shí)現(xiàn)(如:DAOImplementorSQLServer,DAOImplentorOracle等等)。然后應(yīng)用Adapter設(shè)計(jì)模式,將特定的數(shù)據(jù)源驅(qū)動接口分配到DAO中去。

(3)建立EJB調(diào)用DAOImplementor,實(shí)現(xiàn)業(yè)務(wù)邏輯。

如下圖所示:

圖(九)

框架設(shè)計(jì)

通過,上面的討論,我們數(shù)據(jù)持久層(ps)包的框架可為:

圖(十)

ps包下按信息系統(tǒng)的功能模塊來劃分子包(如:上圖分了3個(gè)功能模塊包,PfunctionModule1、PfunctionModule2和PfunctionModule3),每個(gè)功能模塊包再分:

be(business entity)包,包含業(yè)務(wù)實(shí)體對象(數(shù)據(jù)庫關(guān)系映射對象),DAO定義接口等等。

eb(entity bean)包,包含實(shí)現(xiàn)數(shù)據(jù)持久層的實(shí)體組件。

sb(session bean)包,包含實(shí)現(xiàn)數(shù)據(jù)持久層的會話組件。

三,概述

系統(tǒng)框架設(shè)計(jì)不是一成不變的,往往根據(jù)系統(tǒng)設(shè)計(jì)師的對某個(gè)信息系統(tǒng)的見解不同,框架也有所差別。但是要設(shè)計(jì)一個(gè)好的框架,除了有明確的設(shè)計(jì)目標(biāo)外,關(guān)鍵在于:需要調(diào)查和研究系統(tǒng)同類產(chǎn)品的狀況及相關(guān)的技術(shù)特點(diǎn),了解目前流行技術(shù)對此產(chǎn)品所能提供理論和技術(shù)支持情況,結(jié)合自己產(chǎn)品的特點(diǎn),才能逐步勾畫出整個(gè)產(chǎn)品項(xiàng)目的框架藍(lán)圖。

看完上述內(nèi)容,你們對如何實(shí)現(xiàn)J2EE分布式系統(tǒng)框架設(shè)計(jì)有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝大家的支持。

文章標(biāo)題:如何實(shí)現(xiàn)J2EE分布式系統(tǒng)框架設(shè)計(jì)-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://aaarwkj.com/article36/iecsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、企業(yè)建站、App開發(fā)、面包屑導(dǎo)航、微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
欧美亚洲一区二区三区91| 天堂社区人妻在线亚洲| 亚洲国产第一av导航| 亚洲免费一区二区三区四区| 午夜久久精品国产亚洲av| 在线国产精品中文字幕| 小草少妇视频免费看视频| 国产精品亚洲综合制服日韩| 久久亚洲综合精品少妇| 国内精品自拍亚洲视频| 日本理论午夜三级在线观看| 亚洲国产日韩欧美第一页| 成人精品午夜福利视频| 日韩欧美一区二区狠狠插| 中文字幕乱码亚州精品一区| 国产综合一区二区三区视频| 每日更新中文字幕粉嫩av| 成人亚洲理论片在线观看| 成人欧美黑人一区二区| 黄片视频免费在线播放大全| 日本一区二区中文字幕在线| 欧美成人夫妻性生活视频| 亚洲五月六月激情综合| 高颜值紧身牛仔裤国产精品| 蜜臀视频网站在线观看| 中文色婷婷国产精品视频| 91高清视频在线免费观看| 国内精品久久大型新型| 天堂中文在线免费观看av| 精品人妻一区二区三区在线av| 很黄无遮挡在线免费网站| 日韩专区亚洲专区欧美专区| 亚洲欧美日韩精品二区| 日本韩国国产三级在线| 黄色成人av在线网站| 国产91精品在线观看| 欧美日韩精品人妻中文| 人人狠狠综合久久亚洲| 成人av资源在线观看| 白白色手机视频免费看| 日本中文字幕有码专区|