• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種基于Struts2 框架的Web 分頁(yè)模型的設(shè)計(jì)與實(shí)現(xiàn)

    2013-08-29 09:38:58崔行臣張明光
    山東科學(xué) 2013年4期
    關(guān)鍵詞:表示層視圖代碼

    崔行臣,張明光

    (山東廣播電視大學(xué)現(xiàn)代教育技術(shù)中心,山東 濟(jì)南 250014)

    在Web 應(yīng)用軟件開(kāi)發(fā)中,通常要對(duì)數(shù)據(jù)進(jìn)行多種條件的查詢。在傳統(tǒng)設(shè)計(jì)中,通常是客戶一次從服務(wù)器中查詢所要的數(shù)據(jù)并顯示到客戶端,但當(dāng)符合條件的數(shù)據(jù)量較大時(shí),就會(huì)增加服務(wù)器的通信負(fù)載,減慢Web 服務(wù)器的響應(yīng)速度,用戶瀏覽數(shù)據(jù)的體驗(yàn)效果較差。因此,適當(dāng)?shù)姆猪?yè)技術(shù)是十分必要的。如果直接利用數(shù)據(jù)庫(kù)管理系統(tǒng)提供的分頁(yè)功能來(lái)對(duì)數(shù)據(jù)分頁(yè),性能比較高,但是不同的數(shù)據(jù)庫(kù)實(shí)現(xiàn)的方法各不相同,缺乏通用性。在基于JavaEE 平臺(tái)上,分頁(yè)方法傳統(tǒng)上使用在JSP 中編碼的方式來(lái)實(shí)現(xiàn),將頁(yè)面的業(yè)務(wù)操作、控制邏輯和顯示都放在JSP 中,直接在其頁(yè)面上對(duì)數(shù)據(jù)進(jìn)行操作,最后將所取得的數(shù)據(jù)在頁(yè)面進(jìn)行分頁(yè)顯示。這種方法的缺點(diǎn)是應(yīng)用系統(tǒng)框架之間高度耦合,分頁(yè)程序的重用性和移植性差[1-2]。

    針對(duì)以上問(wèn)題,本文利用基于MVC 模式的Struts2 架構(gòu)來(lái)實(shí)現(xiàn)一種高效的可移植的Web 數(shù)據(jù)分頁(yè)方法,依托良好的層次機(jī)構(gòu)設(shè)計(jì)達(dá)到顯示邏輯和業(yè)務(wù)邏輯分離、代碼重用性高的目的。

    圖1 Struts2 的數(shù)據(jù)流向圖Fig.1 Data flow diagram of Struts2

    1 MVC 模式和Struts 框架

    MVC 把一個(gè)Web 應(yīng)用分成3 個(gè)基本部分:Model (模型)、View (視圖)和Controler(控制器),這3 個(gè)部分以最小的耦合協(xié)同工作,從而提高系統(tǒng)的可擴(kuò)展性和可維護(hù)性。模型部件是軟件所處理問(wèn)題邏輯在獨(dú)立于外在顯示內(nèi)容和形式情況下的內(nèi)在抽象,它封裝了問(wèn)題的業(yè)務(wù)數(shù)據(jù)和邏輯。視圖部件把表示模型數(shù)據(jù)和邏輯關(guān)系的信息以特定形式展示出來(lái)。控制器是使模型和視圖協(xié)同工作的部件,把不同的模型和不同的視圖結(jié)合在一起,完成不同的請(qǐng)求。模型、視圖與控制器的分離,使得多個(gè)視圖共享一個(gè)模型,如果用戶通過(guò)視圖的控制器改變了模型數(shù)據(jù),所有其他依賴于這些數(shù)據(jù)的視圖都應(yīng)反映這些變化,也減少了代碼維護(hù)量。采用MVC 模式開(kāi)發(fā)有利于軟件工程化管理,每一層各司其職,提供良好的工程結(jié)構(gòu)并降低各個(gè)組件之間的耦合性。

    Struts2 是實(shí)現(xiàn)MVC 的一個(gè)優(yōu)秀框架,提供了較好的層次分隔能力。Struts2 框架中使用Servlet 過(guò)濾器來(lái)作為控制器FilterDispatcher,它過(guò)濾請(qǐng)求并決定由哪個(gè)Action 來(lái)處理當(dāng)前請(qǐng)求。Action 在Struts2 中作為模型而存在,主要有兩個(gè)功能:一是進(jìn)行數(shù)據(jù)的傳遞,Action 中的成員屬性不一定封裝用戶的請(qǐng)求參數(shù),也可以封裝了Action 需要傳入下一個(gè)頁(yè)面顯示的值;二是可以用來(lái)調(diào)用業(yè)務(wù)邏輯處理請(qǐng)求,當(dāng)Action 把處理請(qǐng)求處理完畢后,會(huì)返回一個(gè)邏輯視圖。視圖表現(xiàn)形式很多,既支持JSP,也支持FreeMaker 等模版技術(shù)[3]。Struts2 的數(shù)據(jù)流向圖如圖1 所示。

    2 Java EE 平臺(tái)中幾種典型的分頁(yè)技術(shù)

    2.1 基于SQL 分頁(yè)算法

    Mysql、Oracle,DB2 等數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)都提供了自身的數(shù)據(jù)庫(kù)分頁(yè)方法,而且SQL 都對(duì)其進(jìn)行了優(yōu)化處理:Oracle 使用偽數(shù)列rownum 來(lái)限制結(jié)果集的大小和起始位置;Mysql 使用limit 子句來(lái)限制返回結(jié)果集的條數(shù);Sqlserver 使用top 關(guān)鍵字可以實(shí)現(xiàn)分頁(yè)。這類(lèi)方法屬于數(shù)據(jù)層分頁(yè)技術(shù),即從數(shù)據(jù)庫(kù)查詢時(shí)就進(jìn)行過(guò)濾截取。雖然各種數(shù)據(jù)庫(kù)都提供了相應(yīng)的方法,但是在實(shí)際程序開(kāi)發(fā)中,如果數(shù)據(jù)來(lái)源由一種數(shù)據(jù)庫(kù)遷移到另外一種數(shù)據(jù)庫(kù)時(shí),由于SQL 分頁(yè)代碼不兼容,需要修改大量的程序來(lái)適應(yīng)這種變換,維護(hù)起來(lái)很困難,也不符合軟件工程開(kāi)發(fā)的思想。

    2.2 JSP 分頁(yè)方法

    將頁(yè)面的顯示、控制邏輯及業(yè)務(wù)操作都放在JSP 中,直接在其頁(yè)面進(jìn)行數(shù)據(jù)操作。這種方法雖然簡(jiǎn)潔直觀,但缺點(diǎn)是過(guò)多的業(yè)務(wù)邏輯和業(yè)務(wù)操作都混雜在顯示層頁(yè)面,不僅程序員難以維護(hù),而且應(yīng)用系統(tǒng)框架模糊、相應(yīng)組件之間緊密耦合,嚴(yán)重違背了面向?qū)ο蟪绦蛟O(shè)計(jì)原理和軟件設(shè)計(jì)模式中提倡的單一職責(zé)原則和迪米特法則。

    2.3 用ResultSet 移動(dòng)游標(biāo)實(shí)現(xiàn)分頁(yè)

    在分頁(yè)的地方直接使用jdbc 提供的ResultSet 對(duì)象來(lái)處理數(shù)據(jù),ResultSet 可以看作是一張表,包含了符合SQL 查詢語(yǔ)句條件的所有行以及查詢的列標(biāo)題和值。ResultSet 直接在數(shù)據(jù)庫(kù)上建立游標(biāo),并維護(hù)指向其當(dāng)前數(shù)據(jù)行的光標(biāo),使游標(biāo)定位結(jié)果集。但由于游標(biāo)是放在內(nèi)存中,在整個(gè)會(huì)話期間將一直占用內(nèi)存,并不釋放數(shù)據(jù)庫(kù)連接和ResultSet 對(duì)象。這種方式在操作大型數(shù)據(jù)和訪問(wèn)用戶很多的時(shí)候,有可能導(dǎo)致DBMS 因?yàn)橘Y源耗盡而崩潰。

    2.4 將查詢結(jié)果緩存在HttpSession 或變量中實(shí)現(xiàn)分頁(yè)

    這種方式一般不使用,其缺陷是用戶看到的可能是過(guò)期數(shù)據(jù)并且會(huì)占用大量Web 容器內(nèi)存[4]。

    2.5 使用標(biāo)簽庫(kù)

    將分頁(yè)查詢和顯示做成JSP taglib,簡(jiǎn)化JSP 代碼,使用簡(jiǎn)單靈活[5]。目前比較流行的分頁(yè)標(biāo)簽庫(kù)有displaytag、Pager-taglib 等。

    3 基于Struts2 框架的分頁(yè)技術(shù)方案

    針對(duì)以上幾種分頁(yè)方法存在的問(wèn)題,在實(shí)踐中總結(jié)出針對(duì)中小型Web 應(yīng)用系統(tǒng)比較好的分頁(yè)方法:檢索指定頁(yè)面的顯示數(shù)據(jù),用JavaBean 來(lái)封裝分頁(yè)操作和數(shù)據(jù)。每次翻頁(yè)的時(shí)候只從數(shù)據(jù)庫(kù)里檢索頁(yè)面大小的塊區(qū)的數(shù)據(jù)。這樣查詢出的記錄數(shù)很少,網(wǎng)絡(luò)傳輸數(shù)據(jù)量不大,使用連接池技術(shù)能縮短建立數(shù)據(jù)庫(kù)連接過(guò)程時(shí)間。在架構(gòu)設(shè)計(jì)上采用Struts2 框架進(jìn)行模型層、表示層和控制層的分離。各層完成獨(dú)立的功能,相互之間耦合度較小,具有易擴(kuò)展和易移植的優(yōu)點(diǎn)[6]。

    圖2 分頁(yè)查詢流程框架Fig.2 Framework of paging query process

    (1) 模 型 層:采 用JavaBean 來(lái)封裝頁(yè)面請(qǐng)求參數(shù)屬性,如顯示第幾頁(yè),查詢結(jié)果等。

    (2)表示層:表示層的主要任務(wù),一是向業(yè)務(wù)邏輯層發(fā)出需要顯示某頁(yè)數(shù)據(jù)集的HTTP 請(qǐng)求,在該數(shù)據(jù)集請(qǐng)求中包括需要顯示的總共記錄數(shù)、共要顯示多少頁(yè)、每頁(yè)的最大數(shù)以及當(dāng)前位于第幾頁(yè)等;二是接受業(yè)務(wù)邏輯層返回的記錄結(jié)果集,并且顯示為記錄列表[4]。在本文設(shè)計(jì)的分頁(yè)模型中采用JSP 來(lái)顯示分頁(yè)數(shù)據(jù),為了增強(qiáng)顯示層的通用性和可移植性,在JSP 中使用Struts 框架的標(biāo)簽庫(kù),可以把表現(xiàn)和邏輯分離并且也使得頁(yè)面顯示功能不具體綁定在某個(gè)顯示框架下面,側(cè)重于提供HTML 表示層數(shù)據(jù)。查詢分頁(yè)數(shù)據(jù)和分頁(yè)導(dǎo)航代碼在表示層都利用Struts 標(biāo)簽顯示。

    (3)控制層(Controller):采用Struts2 提供的FilterDispatcher 類(lèi)作為核心控制器,該控制器作為一個(gè)Filter運(yùn)行在Web 應(yīng)用中,負(fù)責(zé)攔截用戶請(qǐng)求后根據(jù)映射配置文件struts.xml 再把控制轉(zhuǎn)交到業(yè)務(wù)邏輯層(Business Logic)相應(yīng)的處理器。引入業(yè)務(wù)邏輯層的意義在于實(shí)現(xiàn)顯示、控制和模型的完全分離,提高擴(kuò)展性和重用性,并減輕了FilterDispatcher 的負(fù)擔(dān)。

    (4)業(yè)務(wù)邏輯層:采用Struts2 中的Action 類(lèi)進(jìn)行業(yè)務(wù)組件的處理。在Action 中,分頁(yè)相關(guān)屬性被映射成普通的POJO。主要作用是處理來(lái)自表示層的請(qǐng)求,并依據(jù)該請(qǐng)求向數(shù)據(jù)層獲得當(dāng)前頁(yè)的數(shù)據(jù)記錄,并將結(jié)果集返回給表示層[7]。

    (5)Dao 層:負(fù)責(zé)與數(shù)據(jù)庫(kù)的交互操作。傳遞相應(yīng)的參數(shù),根據(jù)Java 多態(tài)機(jī)制,調(diào)用相應(yīng)的數(shù)據(jù)庫(kù)管理系統(tǒng),查詢所需數(shù)據(jù)。為了充分利用已經(jīng)建立的連接,采用數(shù)據(jù)源連接池技術(shù)來(lái)提高查詢速度。

    基于Struts2 框架的分頁(yè)查詢流程框架和主要類(lèi)設(shè)計(jì)如圖2 所示。

    4 設(shè)計(jì)實(shí)現(xiàn)

    4.1 主要類(lèi)設(shè)計(jì)

    PageBean 類(lèi):作為業(yè)務(wù)模型封裝了數(shù)據(jù)庫(kù)查詢條件以及提取和保存數(shù)據(jù)的操作,記錄了記錄總數(shù)、當(dāng)前頁(yè)及每頁(yè)顯示的記錄數(shù)。

    Page 類(lèi):用于產(chǎn)生分頁(yè)信息的對(duì)象,實(shí)現(xiàn)了用于顯示分頁(yè)信息的基本方法。

    PagedStatement 抽象類(lèi):為了使分頁(yè)對(duì)所有數(shù)據(jù)庫(kù)具有更好的擴(kuò)展性,使用模板設(shè)計(jì)模式來(lái)抽象數(shù)據(jù)庫(kù)操作,這些操作包括執(zhí)行查詢?nèi)〉靡豁?yè)數(shù)據(jù)和數(shù)據(jù)庫(kù)管理類(lèi)進(jìn)行交互等。抽象類(lèi)PagedStatement 根據(jù)查詢語(yǔ)句和頁(yè)碼查詢出當(dāng)前頁(yè)數(shù)據(jù),返回的數(shù)據(jù)類(lèi)型沒(méi)有具體指定,可根據(jù)需要實(shí)現(xiàn)以特定方式組織數(shù)據(jù)的子類(lèi),如RowSetDataPage 類(lèi)以RowSet 類(lèi)型封裝數(shù)據(jù),ListDataPage 類(lèi)以List 集合封裝數(shù)據(jù)等等。方法定義為:public ListPage execute Query Of List Page()throws SQLException。查詢當(dāng)前頁(yè)數(shù)據(jù)時(shí),根據(jù)具體的數(shù)據(jù)庫(kù)類(lèi)型,利用Java 的多態(tài)機(jī)制來(lái)調(diào)用相應(yīng)的實(shí)現(xiàn)類(lèi)獲取數(shù)據(jù)。針對(duì)Sqlserver 數(shù)據(jù)庫(kù)的分頁(yè)查詢,實(shí)現(xiàn)類(lèi)定義為PagedStatementSQLServerImpl extends PagedStatement,如果要擴(kuò)展到 Oracle 分頁(yè)數(shù)據(jù),只需添加PagedStatement 的Oracle 實(shí)現(xiàn)類(lèi)即可。

    4.2 業(yè)務(wù)邏輯層調(diào)用及表示層高效移植實(shí)現(xiàn)

    在業(yè)務(wù)邏輯層action 中,以sqlserver 數(shù)據(jù)庫(kù)為例,調(diào)用分頁(yè)組件的分頁(yè)處理方法為:

    PagedStatement pst=new PagedStatementSQLServerImpl(sql,pageno,pageNum);

    ListDataPage listpage=pst.executeQueryOfListPage();

    this.userlist=listpage.getList();∥當(dāng)前頁(yè)記錄數(shù)據(jù)

    this.pageBar=listpage.getHTML("doQuery","pageno");∥頁(yè)面分頁(yè)代碼

    返回的結(jié)果集封裝在List 集合中,封裝數(shù)據(jù)結(jié)果的類(lèi),如ListDataPage 類(lèi)有g(shù)etHTML()方法,用于生成分頁(yè)代碼,系統(tǒng)提供默認(rèn)的分頁(yè)代碼,如上下型和隨意型的分頁(yè)模型[8],如果用戶不滿意,可以編寫(xiě)自己所需的分頁(yè)代碼。生成的前臺(tái)頁(yè)面分頁(yè)導(dǎo)航條代碼封裝在pageBar 變量中,根據(jù)Struts2 機(jī)制,注入到頁(yè)面中,在表示層利用Struts2 強(qiáng)大的標(biāo)簽功能可以很方便地顯示分頁(yè)數(shù)據(jù)和分頁(yè)鏈接代碼。如果改用其它數(shù)據(jù)庫(kù),調(diào)用相應(yīng)的實(shí)現(xiàn)類(lèi)即可。

    對(duì)于分頁(yè)代碼,可以放在一個(gè)單獨(dú)的文件中(page.jsp),假設(shè)原來(lái)的顯示頁(yè)面沒(méi)有分頁(yè),只要在頁(yè)面的分頁(yè)導(dǎo)航位置以 <jsp:include >方式將page.jsp 包含進(jìn)去,表示層就完成了,完全不用修改原有的代碼。因?yàn)樵诒硎緦由傻姆猪?yè)鏈接代碼中,提交表單的動(dòng)作已經(jīng)指向當(dāng)前業(yè)務(wù)邏輯Action。每次請(qǐng)求提交表單時(shí),頁(yè)碼變量pageno 被注入到相應(yīng)業(yè)務(wù)邏輯Action,根據(jù)pageno 來(lái)獲取新的一頁(yè)數(shù)據(jù)。示例代碼如下:

    <form name="pageForm" method="post" action="" > <div class="pagestyle" >

    <s:property escape="false" value="pageBar"/>∥生成分頁(yè)鏈接代碼

    </div > </form >

    以上分頁(yè)代碼經(jīng)服務(wù)器解析后,生成分頁(yè)導(dǎo)航條的HTML 代碼,包括“第幾頁(yè)”、“共幾頁(yè)”,“上一頁(yè)”、“下一頁(yè)”、“首頁(yè)”和“末頁(yè)”連接和“轉(zhuǎn)到第幾頁(yè)”的導(dǎo)航選擇列表。

    4.3 應(yīng)用及性能分析

    以上討論的分頁(yè)模型已在某高校各部門(mén)網(wǎng)站系統(tǒng)中得到實(shí)際應(yīng)用,在構(gòu)造各級(jí)網(wǎng)站時(shí)只要涉及到數(shù)據(jù)分頁(yè)的頁(yè)面,都可以使用該方案來(lái)實(shí)現(xiàn)。操作步驟為:(1)在業(yè)務(wù)邏輯層調(diào)用接口;(2)在表示層分頁(yè)位置導(dǎo)入分頁(yè)代碼文件。測(cè)試性能比較如表1 所示。

    從表1 可以看出,本文提出的解決方案主要從軟件工程的角度來(lái)改進(jìn)傳統(tǒng)的分頁(yè)查詢方式,在架構(gòu)設(shè)計(jì)、維護(hù)及用戶體驗(yàn)方面具有明顯的優(yōu)勢(shì)。在時(shí)間上,在開(kāi)發(fā)環(huán)境JDK1.6、Tomcat6.0 下,對(duì)于10 萬(wàn)條數(shù)據(jù)查詢請(qǐng)求,平均響應(yīng)時(shí)間為0.5 s,而本文提到的其它技術(shù)對(duì)10 萬(wàn)條數(shù)據(jù)記錄查詢時(shí),基于SQL 分頁(yè)方法平均響應(yīng)時(shí)間為0.6 s,JSP 分頁(yè)方法最好時(shí)間也在1 s 以上。

    表1 本文模型與傳統(tǒng)方式的性能比較Table 1 Performance comparison of the presented model and the traditional model

    5 結(jié)語(yǔ)

    經(jīng)測(cè)試證明,本文提出的基于MVC 思想和Struts2 架構(gòu)設(shè)計(jì)的數(shù)據(jù)分頁(yè)模型具有良好的可擴(kuò)展性、可維護(hù)性及優(yōu)秀的解耦性,獲得了較高的用戶滿意度。該方案存在的問(wèn)題在于框架模型管理不方便,下一步將研究采用Spring 框架來(lái)集成管理該模型。此外,對(duì)于頻繁讀取的數(shù)據(jù)(如:相鄰上下頁(yè)),為節(jié)省時(shí)間,可以只訪問(wèn)一次底層數(shù)據(jù)庫(kù)而把符合條件的數(shù)據(jù)全部讀取至Web 服務(wù)器,并在其上生成一個(gè)XML 文件,以后客戶端直接和XML 文件交互[9],這也是今后研究的方向。

    [1]曹晉,胡谷雨.基于jsp 技術(shù)的數(shù)據(jù)庫(kù)查詢分頁(yè)顯示[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(5):225 -227.

    [2]黃櫟橋,陸鑫.基于Struts 框架的Web 數(shù)據(jù)庫(kù)分頁(yè)技術(shù)[J].計(jì)算機(jī)工程,2008,28(6):298 -301.

    [2]李剛.Struts2.1 權(quán)威指南——基于webwork 核心的MVC 開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2009.

    [3]劉啟文,周大海,夏秀峰.Web 應(yīng)用中可擴(kuò)展分頁(yè)技術(shù)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2006,26(12):179 -181.

    [4]何玲娟,蟻 龍,劉連臣.一種松耦合高復(fù)用MVC 模式的Web 分頁(yè)實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(15):95 -97.

    [5]吳東慶,張新猛,王前,等.基于SSH 架構(gòu)的分頁(yè)查詢標(biāo)簽的研究與實(shí)現(xiàn)[J].仲愷農(nóng)業(yè)工程學(xué)院學(xué)報(bào),2010,23(1):45 -48.

    [6]王瑞波.一種分頁(yè)查詢優(yōu)化方法的研究與實(shí)現(xiàn)[D].北京:北京化工大學(xué),2009.

    [7]張俐.基于MVC 模式的分頁(yè)組件應(yīng)用[J].計(jì)算機(jī)工程,2011,37(21):255 -257.

    [8]顧志峰,李涓子.Web 應(yīng)用程序分頁(yè)策略的研究[J].計(jì)算機(jī)工程,2005,31(21):60 -62.

    [9]勾成圖,張璟,李軍懷.海量數(shù)據(jù)分頁(yè)機(jī)制在Web 信息系統(tǒng)中的應(yīng)用研究[J].2005,25(8):1926 -1929.

    猜你喜歡
    表示層視圖代碼
    基于Spring的企業(yè)級(jí)Web項(xiàng)目架構(gòu)設(shè)計(jì)研究
    軟件(2019年6期)2019-10-08 06:27:21
    創(chuàng)世代碼
    創(chuàng)世代碼
    創(chuàng)世代碼
    創(chuàng)世代碼
    5.3 視圖與投影
    視圖
    Y—20重型運(yùn)輸機(jī)多視圖
    SA2型76毫米車(chē)載高炮多視圖
    ASP.NET三層構(gòu)架解析
    午夜免费激情av| 在线观看一区二区三区| 成人国产综合亚洲| 国产精品亚洲一级av第二区| 1024手机看黄色片| 亚洲无线在线观看| 神马国产精品三级电影在线观看 | 波多野结衣高清无吗| 欧美性长视频在线观看| 成人亚洲精品av一区二区| 国产精品爽爽va在线观看网站| 在线观看一区二区三区| 99久久久亚洲精品蜜臀av| 国产精品电影一区二区三区| 狂野欧美激情性xxxx| 在线观看免费日韩欧美大片| av在线天堂中文字幕| 国产蜜桃级精品一区二区三区| 男人舔奶头视频| 欧美日韩精品网址| 国产精品电影一区二区三区| 亚洲男人的天堂狠狠| 99在线视频只有这里精品首页| 精品久久久久久久毛片微露脸| 国产精品久久久人人做人人爽| 男人舔奶头视频| 精品电影一区二区在线| 亚洲国产精品sss在线观看| 国产精品香港三级国产av潘金莲| 五月伊人婷婷丁香| 搡老岳熟女国产| 18禁黄网站禁片免费观看直播| 国产一区二区在线观看日韩 | av福利片在线| 两人在一起打扑克的视频| 亚洲男人的天堂狠狠| 成人亚洲精品av一区二区| 久久精品国产综合久久久| 亚洲中文字幕日韩| 午夜福利18| 在线视频色国产色| 亚洲aⅴ乱码一区二区在线播放 | 88av欧美| 日本一二三区视频观看| 脱女人内裤的视频| 男人舔奶头视频| 欧美性猛交黑人性爽| 在线观看免费午夜福利视频| 99久久99久久久精品蜜桃| 伊人久久大香线蕉亚洲五| 亚洲精品国产精品久久久不卡| 午夜福利视频1000在线观看| 国产成人av激情在线播放| 成人特级黄色片久久久久久久| 久久精品国产亚洲av香蕉五月| 69av精品久久久久久| 婷婷丁香在线五月| 三级男女做爰猛烈吃奶摸视频| 国产主播在线观看一区二区| 俺也久久电影网| 久久热在线av| 一区二区三区高清视频在线| 99在线人妻在线中文字幕| 最近在线观看免费完整版| 99热这里只有是精品50| 久久精品人妻少妇| 91av网站免费观看| 国产成人啪精品午夜网站| 老熟妇乱子伦视频在线观看| 免费电影在线观看免费观看| 亚洲一卡2卡3卡4卡5卡精品中文| 国产亚洲精品av在线| 国产av在哪里看| 舔av片在线| av片东京热男人的天堂| 欧美 亚洲 国产 日韩一| 久久久国产欧美日韩av| 久久久久久久精品吃奶| 级片在线观看| 每晚都被弄得嗷嗷叫到高潮| 极品教师在线免费播放| 午夜福利成人在线免费观看| 一边摸一边做爽爽视频免费| 亚洲精品国产精品久久久不卡| bbb黄色大片| 看黄色毛片网站| 午夜福利在线在线| 99国产精品一区二区蜜桃av| 精品第一国产精品| 好男人电影高清在线观看| 床上黄色一级片| av福利片在线| 不卡av一区二区三区| 五月伊人婷婷丁香| 男人的好看免费观看在线视频 | 90打野战视频偷拍视频| 中出人妻视频一区二区| 亚洲欧美精品综合一区二区三区| 国产欧美日韩精品亚洲av| 午夜精品久久久久久毛片777| 亚洲av中文字字幕乱码综合| 日韩成人在线观看一区二区三区| 老鸭窝网址在线观看| 级片在线观看| 此物有八面人人有两片| 夜夜爽天天搞| 可以在线观看毛片的网站| 嫩草影视91久久| 成在线人永久免费视频| www.精华液| 在线观看66精品国产| 欧美黄色片欧美黄色片| aaaaa片日本免费| 两性午夜刺激爽爽歪歪视频在线观看 | 国产黄片美女视频| 亚洲18禁久久av| 国产精品美女特级片免费视频播放器 | 日日摸夜夜添夜夜添小说| 日韩精品青青久久久久久| 天天添夜夜摸| 欧美成人免费av一区二区三区| 一二三四在线观看免费中文在| 国产精品一及| 国产成人一区二区三区免费视频网站| 不卡av一区二区三区| 男女做爰动态图高潮gif福利片| 麻豆av在线久日| 欧美一级a爱片免费观看看 | 久久午夜综合久久蜜桃| 神马国产精品三级电影在线观看 | 亚洲电影在线观看av| 99在线人妻在线中文字幕| 久久久久性生活片| av福利片在线观看| 国产三级黄色录像| 美女扒开内裤让男人捅视频| 99久久久亚洲精品蜜臀av| 成在线人永久免费视频| 欧美大码av| 12—13女人毛片做爰片一| 久久久精品欧美日韩精品| 午夜福利成人在线免费观看| 每晚都被弄得嗷嗷叫到高潮| 大型av网站在线播放| 中文在线观看免费www的网站 | 欧美一级毛片孕妇| 身体一侧抽搐| 亚洲av熟女| 亚洲欧洲精品一区二区精品久久久| 国产一区二区三区视频了| 久久久久久国产a免费观看| 欧美中文日本在线观看视频| 国产一区二区三区视频了| 日本 av在线| 国模一区二区三区四区视频 | 全区人妻精品视频| 精品国产乱码久久久久久男人| 成人18禁在线播放| 18禁观看日本| 狠狠狠狠99中文字幕| 午夜久久久久精精品| 日韩欧美 国产精品| 视频区欧美日本亚洲| 精品欧美一区二区三区在线| 精品一区二区三区视频在线观看免费| 日本免费a在线| www.熟女人妻精品国产| 一进一出抽搐gif免费好疼| 听说在线观看完整版免费高清| 精品午夜福利视频在线观看一区| 三级国产精品欧美在线观看 | 少妇的丰满在线观看| 亚洲最大成人中文| 国产一区二区在线av高清观看| 亚洲欧美激情综合另类| 欧美成人午夜精品| 亚洲无线在线观看| 成人18禁高潮啪啪吃奶动态图| 每晚都被弄得嗷嗷叫到高潮| 国产精品 国内视频| 脱女人内裤的视频| 99久久精品热视频| 久久久久性生活片| 国产一区二区三区视频了| av在线天堂中文字幕| 高清在线国产一区| 精品人妻1区二区| cao死你这个sao货| 亚洲成av人片在线播放无| 草草在线视频免费看| 亚洲欧美日韩高清专用| 亚洲色图av天堂| 哪里可以看免费的av片| 国产久久久一区二区三区| 一区二区三区高清视频在线| 久久精品成人免费网站| 又黄又粗又硬又大视频| 久久香蕉国产精品| 久久草成人影院| 777久久人妻少妇嫩草av网站| 19禁男女啪啪无遮挡网站| 婷婷丁香在线五月| 神马国产精品三级电影在线观看 | 午夜视频精品福利| 色播亚洲综合网| 黄色毛片三级朝国网站| 1024香蕉在线观看| 久久久久久亚洲精品国产蜜桃av| 每晚都被弄得嗷嗷叫到高潮| 一边摸一边抽搐一进一小说| 亚洲av片天天在线观看| 美女高潮喷水抽搐中文字幕| 亚洲精品国产一区二区精华液| 少妇粗大呻吟视频| www.www免费av| netflix在线观看网站| 国产精品久久久久久精品电影| 久久久精品国产亚洲av高清涩受| 一级黄色大片毛片| 日本免费a在线| 亚洲欧美日韩高清在线视频| 日韩精品免费视频一区二区三区| av片东京热男人的天堂| 欧美一区二区精品小视频在线| 我要搜黄色片| 天堂av国产一区二区熟女人妻 | 欧美丝袜亚洲另类 | 丰满人妻一区二区三区视频av | а√天堂www在线а√下载| 淫妇啪啪啪对白视频| 日韩成人在线观看一区二区三区| 无人区码免费观看不卡| 国产午夜福利久久久久久| 我要搜黄色片| 亚洲av片天天在线观看| 国产av不卡久久| 成人三级做爰电影| 人人妻,人人澡人人爽秒播| 欧美成人一区二区免费高清观看 | 午夜福利18| 后天国语完整版免费观看| 岛国在线观看网站| 叶爱在线成人免费视频播放| 成人精品一区二区免费| 天堂√8在线中文| 亚洲国产中文字幕在线视频| 成人三级黄色视频| 在线看三级毛片| 久久精品91蜜桃| av视频在线观看入口| 啦啦啦韩国在线观看视频| 男人舔女人下体高潮全视频| 欧美丝袜亚洲另类 | 19禁男女啪啪无遮挡网站| 法律面前人人平等表现在哪些方面| 91字幕亚洲| 久久精品成人免费网站| 白带黄色成豆腐渣| 亚洲欧美一区二区三区黑人| 在线观看舔阴道视频| 国产成年人精品一区二区| 美女扒开内裤让男人捅视频| 美女免费视频网站| 99久久精品国产亚洲精品| 亚洲中文字幕一区二区三区有码在线看 | 免费看十八禁软件| 欧美乱色亚洲激情| 精品久久久久久久毛片微露脸| 亚洲av成人精品一区久久| avwww免费| 在线看三级毛片| 老汉色∧v一级毛片| 免费人成视频x8x8入口观看| 亚洲欧美日韩东京热| 视频区欧美日本亚洲| 男女那种视频在线观看| 男女下面进入的视频免费午夜| 免费在线观看亚洲国产| 国内少妇人妻偷人精品xxx网站 | 亚洲精品av麻豆狂野| 国产精品久久久人人做人人爽| 成人国语在线视频| 国产亚洲精品第一综合不卡| 无人区码免费观看不卡| 18禁观看日本| 久99久视频精品免费| 国产精品亚洲一级av第二区| 色播亚洲综合网| 一本综合久久免费| 俄罗斯特黄特色一大片| 91在线观看av| 欧美一区二区国产精品久久精品 | 久久99热这里只有精品18| 久久久久久亚洲精品国产蜜桃av| 精品人妻1区二区| 欧美日韩一级在线毛片| 少妇粗大呻吟视频| 亚洲五月婷婷丁香| 亚洲 欧美 日韩 在线 免费| 这个男人来自地球电影免费观看| 在线观看66精品国产| 岛国在线免费视频观看| 不卡av一区二区三区| 国产一区二区三区在线臀色熟女| 欧美日韩亚洲综合一区二区三区_| 看免费av毛片| 他把我摸到了高潮在线观看| √禁漫天堂资源中文www| 亚洲欧美日韩无卡精品| 久久久国产成人精品二区| 三级国产精品欧美在线观看 | 亚洲精品国产一区二区精华液| 村上凉子中文字幕在线| 亚洲欧美激情综合另类| 婷婷精品国产亚洲av在线| 国产熟女午夜一区二区三区| 日本黄大片高清| 欧美成人一区二区免费高清观看 | 两个人免费观看高清视频| 首页视频小说图片口味搜索| 久久人人精品亚洲av| 99精品久久久久人妻精品| 欧美三级亚洲精品| 青草久久国产| 亚洲 欧美 日韩 在线 免费| 久久九九热精品免费| 女同久久另类99精品国产91| 18美女黄网站色大片免费观看| 亚洲午夜精品一区,二区,三区| 国产伦人伦偷精品视频| 日韩国内少妇激情av| 亚洲人成77777在线视频| 国产精品电影一区二区三区| 亚洲国产欧美人成| 午夜日韩欧美国产| 国产精品av久久久久免费| 日韩欧美在线乱码| av在线天堂中文字幕| 看黄色毛片网站| 国产三级黄色录像| 午夜日韩欧美国产| 久久久国产精品麻豆| 久久 成人 亚洲| 日韩三级视频一区二区三区| 国产激情偷乱视频一区二区| 国产一区二区激情短视频| 看免费av毛片| 亚洲中文av在线| 欧美最黄视频在线播放免费| 哪里可以看免费的av片| 亚洲av中文字字幕乱码综合| 国产一区二区三区在线臀色熟女| 久久久久免费精品人妻一区二区| 叶爱在线成人免费视频播放| 两性午夜刺激爽爽歪歪视频在线观看 | 一本精品99久久精品77| 91麻豆精品激情在线观看国产| 欧美中文综合在线视频| 久久婷婷人人爽人人干人人爱| 亚洲av电影不卡..在线观看| 午夜福利欧美成人| 日本三级黄在线观看| 日本 av在线| 欧美中文综合在线视频| 1024香蕉在线观看| 50天的宝宝边吃奶边哭怎么回事| 国产精品,欧美在线| 中文在线观看免费www的网站 | 久久久久久久久中文| 欧美性猛交黑人性爽| 久久久久久久久中文| 国产精品爽爽va在线观看网站| 国产成人精品久久二区二区免费| 中文字幕熟女人妻在线| 国产精品亚洲美女久久久| 少妇裸体淫交视频免费看高清 | 视频区欧美日本亚洲| 天堂av国产一区二区熟女人妻 | 国产成人av激情在线播放| 天堂动漫精品| 麻豆一二三区av精品| 亚洲无线在线观看| 无限看片的www在线观看| 日韩欧美免费精品| 日本熟妇午夜| 久久精品91无色码中文字幕| 精品国产亚洲在线| 操出白浆在线播放| 国产男靠女视频免费网站| 老司机午夜十八禁免费视频| 国产成人系列免费观看| √禁漫天堂资源中文www| 免费av毛片视频| 国产aⅴ精品一区二区三区波| 香蕉av资源在线| 天堂影院成人在线观看| 亚洲精品色激情综合| 一级毛片女人18水好多| 亚洲无线在线观看| 欧美 亚洲 国产 日韩一| 亚洲av熟女| 国产黄片美女视频| 青草久久国产| 伊人久久大香线蕉亚洲五| 在线看三级毛片| 无遮挡黄片免费观看| 国产单亲对白刺激| 久久精品aⅴ一区二区三区四区| 在线播放国产精品三级| 一二三四社区在线视频社区8| 日韩大尺度精品在线看网址| 欧美性猛交黑人性爽| 久久久久免费精品人妻一区二区| 欧美zozozo另类| 婷婷精品国产亚洲av| 日韩大码丰满熟妇| 12—13女人毛片做爰片一| 三级毛片av免费| 免费看a级黄色片| 99久久综合精品五月天人人| 一进一出好大好爽视频| 啦啦啦韩国在线观看视频| 露出奶头的视频| 国产伦在线观看视频一区| 成人午夜高清在线视频| 久久国产精品影院| 别揉我奶头~嗯~啊~动态视频| 国产一区二区在线观看日韩 | 色播亚洲综合网| 在线观看66精品国产| 禁无遮挡网站| 嫩草影视91久久| 女人被狂操c到高潮| 国产又色又爽无遮挡免费看| 午夜久久久久精精品| 免费高清视频大片| 久久久久免费精品人妻一区二区| 免费搜索国产男女视频| 亚洲中文字幕日韩| 三级毛片av免费| 欧美av亚洲av综合av国产av| 色尼玛亚洲综合影院| 久久久久久久久久黄片| 色综合婷婷激情| 午夜亚洲福利在线播放| 日本成人三级电影网站| 亚洲欧美日韩高清专用| 欧美日本亚洲视频在线播放| 亚洲国产精品久久男人天堂| 免费高清视频大片| 香蕉久久夜色| 亚洲五月天丁香| 色哟哟哟哟哟哟| 99热6这里只有精品| av国产免费在线观看| 国产高清videossex| 免费高清视频大片| 国产精品亚洲美女久久久| 老鸭窝网址在线观看| 国产99白浆流出| 久久这里只有精品19| av国产免费在线观看| 正在播放国产对白刺激| 女生性感内裤真人,穿戴方法视频| 一本综合久久免费| 久久精品成人免费网站| 大型黄色视频在线免费观看| 亚洲欧美精品综合久久99| 国产私拍福利视频在线观看| 中文字幕av在线有码专区| 搡老妇女老女人老熟妇| 午夜两性在线视频| 国产成人一区二区三区免费视频网站| av中文乱码字幕在线| 久久久国产成人免费| 12—13女人毛片做爰片一| 成年免费大片在线观看| 久久国产乱子伦精品免费另类| 国产成人一区二区三区免费视频网站| 国产av在哪里看| 国产精品久久电影中文字幕| 久久精品影院6| 国产成+人综合+亚洲专区| 母亲3免费完整高清在线观看| 999久久久精品免费观看国产| 热99re8久久精品国产| 中文字幕人成人乱码亚洲影| 午夜精品一区二区三区免费看| 成在线人永久免费视频| 一级黄色大片毛片| 午夜老司机福利片| 亚洲美女视频黄频| 亚洲aⅴ乱码一区二区在线播放 | 欧美丝袜亚洲另类 | 国产成人精品久久二区二区91| 国产视频一区二区在线看| 欧美日韩一级在线毛片| 日韩 欧美 亚洲 中文字幕| 欧美久久黑人一区二区| 九九热线精品视视频播放| 久久久久国产精品人妻aⅴ院| a级毛片在线看网站| 久久久久久人人人人人| 欧美日韩亚洲国产一区二区在线观看| 国产av不卡久久| 老司机深夜福利视频在线观看| 午夜免费激情av| 日本五十路高清| 色尼玛亚洲综合影院| 国产精品日韩av在线免费观看| 在线十欧美十亚洲十日本专区| 91国产中文字幕| 男人舔奶头视频| 日韩欧美在线二视频| 久久香蕉国产精品| 亚洲色图av天堂| 久99久视频精品免费| 午夜福利欧美成人| 国产精品电影一区二区三区| 99国产精品一区二区蜜桃av| 国产精品综合久久久久久久免费| 校园春色视频在线观看| 国产黄a三级三级三级人| 国产精品乱码一区二三区的特点| 毛片女人毛片| 国产精品久久久av美女十八| 91老司机精品| 男女之事视频高清在线观看| 精品一区二区三区视频在线观看免费| 又爽又黄无遮挡网站| 18禁国产床啪视频网站| 91九色精品人成在线观看| www.www免费av| 精品人妻1区二区| 久久午夜综合久久蜜桃| 国内毛片毛片毛片毛片毛片| 夜夜看夜夜爽夜夜摸| 欧美色欧美亚洲另类二区| 1024香蕉在线观看| 国产伦一二天堂av在线观看| 成年人黄色毛片网站| 国产在线观看jvid| 一级毛片女人18水好多| 国产成人精品无人区| 亚洲中文字幕一区二区三区有码在线看 | 国产精品久久电影中文字幕| 久久精品综合一区二区三区| 亚洲精品一卡2卡三卡4卡5卡| 精品无人区乱码1区二区| 欧美午夜高清在线| 亚洲一区二区三区不卡视频| 禁无遮挡网站| 亚洲成人中文字幕在线播放| 亚洲精品av麻豆狂野| 欧美黑人巨大hd| 欧美+亚洲+日韩+国产| 国产av一区在线观看免费| 舔av片在线| 国产精品久久久久久久电影 | 亚洲人成伊人成综合网2020| 国产精品久久久久久精品电影| 在线观看舔阴道视频| 国产亚洲av嫩草精品影院| 国产在线观看jvid| 日日爽夜夜爽网站| 99久久无色码亚洲精品果冻| 亚洲 国产 在线| 日韩欧美国产在线观看| 日本免费a在线| 99久久久亚洲精品蜜臀av| 亚洲国产中文字幕在线视频| 亚洲av电影在线进入| 黑人巨大精品欧美一区二区mp4| x7x7x7水蜜桃| 亚洲精品色激情综合| 久久久久国产精品人妻aⅴ院| 日本一区二区免费在线视频| 国产欧美日韩一区二区三| 国产成+人综合+亚洲专区| 国产熟女午夜一区二区三区| 久久这里只有精品中国| 在线国产一区二区在线| 禁无遮挡网站| 色噜噜av男人的天堂激情| 午夜日韩欧美国产| 久久九九热精品免费| av在线播放免费不卡| 国产成人精品久久二区二区免费| 黄片大片在线免费观看| 国产成人系列免费观看| 真人做人爱边吃奶动态| 一本久久中文字幕| 亚洲成人中文字幕在线播放| 成人精品一区二区免费| 国产精华一区二区三区| 男女下面进入的视频免费午夜| 国产亚洲精品综合一区在线观看 | av中文乱码字幕在线| 欧美一级a爱片免费观看看 | 国内少妇人妻偷人精品xxx网站 | 国产一级毛片七仙女欲春2| 成熟少妇高潮喷水视频| 一个人免费在线观看的高清视频| 精品一区二区三区视频在线观看免费| 欧美日韩亚洲国产一区二区在线观看| 国产精品爽爽va在线观看网站| 久久精品91蜜桃| 熟女少妇亚洲综合色aaa.| 中文字幕熟女人妻在线| 亚洲一区二区三区色噜噜| 日本三级黄在线观看| 我要搜黄色片| 男人舔女人的私密视频| 亚洲人成网站高清观看| 免费搜索国产男女视频|