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

    基于Maven的J2EE后臺(tái)管理系統(tǒng)代碼生成器

    2014-10-15 07:39:40
    關(guān)鍵詞:數(shù)據(jù)庫系統(tǒng)

    魏 穎

    (天津大學(xué)管理與經(jīng)濟(jì)學(xué)部,天津 300072)

    0 引言

    近些年,Web技術(shù)快速發(fā)展,B/S模式已經(jīng)成了當(dāng)今系統(tǒng)的主流模式。與此同時(shí),越來越多的優(yōu)秀軟件開發(fā)人員參與到J2EE[1-2]開源框架的開發(fā)中,打造出了一批易用且完善的Web框架,如Spring、MyBatis、Hibernate等,大大降低了Web系統(tǒng)的開發(fā)門檻。為了提升系統(tǒng)的開發(fā)效率、降低系統(tǒng)的維護(hù)成本,大多數(shù)Web系統(tǒng)都采用MVC分層模式進(jìn)行開發(fā)。MVC模式是一種“分治”的思想[3],將數(shù)據(jù)的訪問、邏輯處理和數(shù)據(jù)的展現(xiàn)分開,使每一層次都專注于自己的業(yè)務(wù)處理。后臺(tái)管理系統(tǒng)提供的功能大部分是針對(duì)數(shù)據(jù)庫的CRUD(增、刪、改、查)操作,其邏輯簡單,流程相對(duì)固定。但是在實(shí)際的開發(fā)中,程序員往往要花費(fèi)大量的時(shí)間去重復(fù)編寫各層次的代碼,包括后臺(tái)程序代碼和前臺(tái)頁面展示代碼,不但增加了程序員工作量,而且還影響了軟件的開發(fā)進(jìn)度。因此,自動(dòng)化代碼生成一直以來都是軟件工程師追求的目標(biāo)。本文針對(duì)后臺(tái)管理系統(tǒng)的特性,利用Freemarker模板技術(shù),設(shè)計(jì)了一個(gè)可自動(dòng)生成基于MVC模式的J2EE后臺(tái)管理系統(tǒng)的代碼生成器,用于后臺(tái)程序代碼和前臺(tái)頁面的自動(dòng)生成。

    1 代碼生成器介紹

    本代碼生成器根據(jù)用戶的配置,針對(duì)數(shù)據(jù)庫單表或聯(lián)表生成從前臺(tái)頁面到后臺(tái)處理的CRUD代碼。軟件開發(fā)人員可以在自動(dòng)生成系統(tǒng)的基礎(chǔ)上,進(jìn)行二次開發(fā),打造符合需求的后臺(tái)管理系統(tǒng)。

    現(xiàn)有的代碼生成工具主要服務(wù)于生成數(shù)據(jù)庫操作代碼和業(yè)務(wù)代碼,沒有提供對(duì)前臺(tái)頁面的代碼生成接口,并且代碼模板都預(yù)置在系統(tǒng)中,用戶無法改變代碼結(jié)構(gòu)和風(fēng)格,靈活性比較差。相比于業(yè)界已有的代碼生成器,本代碼生成器的優(yōu)點(diǎn)如下:

    (1)用戶可自定義代碼生成任務(wù)。

    為了滿足不同用戶的需要,本代碼生成器提供3種代碼生成任務(wù),分別是生成整套系統(tǒng)、生成基本架構(gòu)和生成數(shù)據(jù)庫操作代碼。用戶可以結(jié)合自身需要在命令批處理文件中自行定義代碼生成任務(wù)。

    (2)用戶可自行開發(fā)代碼模板。

    Freemarker是一個(gè)使用純Java編寫的開源模板引擎[4],能夠基于模板生成各類文件,具有語法簡單明了、結(jié)構(gòu)清晰和解析效率高等特點(diǎn),目前廣泛應(yīng)用在Web界面、Email模板和其他模板定義方面。由于Freemarker的易上手特性,用戶在遵循自定義模板規(guī)則的基礎(chǔ)上,可以很輕松地設(shè)計(jì)和開發(fā)自己的代碼模板,然后在業(yè)務(wù)模型文件中指定代碼模板路徑,就可生成符合自身需求的代碼。

    (3)可以自動(dòng)生成前臺(tái)頁面。

    jQuery[5-6]是一款優(yōu)秀的 JS框架,由于其簡單明了的語法、良好的瀏覽器兼容性和強(qiáng)大的功能,已經(jīng)廣泛應(yīng)用于Web系統(tǒng)的開發(fā)。Bootstrap是由著名社交網(wǎng)站Facebook提供的一款開源CSS框架,能讓設(shè)計(jì)人員很快地構(gòu)建自己的系統(tǒng)前臺(tái),并且對(duì)PC端和移動(dòng)端都提供良好的兼容性。本代碼生成器以jQuery和Bootstrap作為前臺(tái)框架,提供針對(duì)數(shù)據(jù)庫的增刪改查操作的界面生成功能。

    (4)生成的系統(tǒng)默認(rèn)提供角色權(quán)限配置功能。

    由于提供角色權(quán)限配置功能基本上是后臺(tái)管理系統(tǒng)的通用需求,所以本代碼生成器生成的后臺(tái)管理系統(tǒng)默認(rèn)提供此功能。新版的Spring Security 3框架具有完善的安全體系[7-8],在用戶認(rèn)證和用戶授權(quán)方面都提供了很好的支持。本系統(tǒng)提供的角色權(quán)限配置是在Spring Security的基礎(chǔ)上,進(jìn)行二次開發(fā),使用戶可以根據(jù)自身的需要靈活地對(duì)權(quán)限進(jìn)行配置。

    2 架構(gòu)體系

    本代碼生成器生成的后臺(tái)系統(tǒng)采用Maven作為項(xiàng)目管理工具,以J2EE為系統(tǒng)架構(gòu),前端引用jQuery和Bootstrap框架。

    2.1 Maven

    Maven是Apache提供的一款基于項(xiàng)目對(duì)象模型(Project Object Model,POM)的開源項(xiàng)目管理工具,是Ant的進(jìn)化,為項(xiàng)目提供包管理、編譯和發(fā)布等一系列功能。它包含了一個(gè)項(xiàng)目對(duì)象模型、一組標(biāo)準(zhǔn)集合、一個(gè)項(xiàng)目生命周期(Project Lifecycle)、一個(gè)依賴管理系統(tǒng)(Dependency Management System)和用來運(yùn)行定義在生命周期階段(Phase)中插件(Plugin)目標(biāo)(Goal)的邏輯。當(dāng)使用Maven時(shí),可以用一個(gè)明確定義的項(xiàng)目對(duì)象模型來描述項(xiàng)目,然后Maven可以應(yīng)用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件[9]。Maven可以讓開發(fā)人員快速地構(gòu)建一個(gè)項(xiàng)目,有效地解決包管理和項(xiàng)目發(fā)布問題,并且可以與持續(xù)集成進(jìn)行無縫對(duì)接。對(duì)于大型的系統(tǒng),采用Maven作為項(xiàng)目管理工具,可以有效地進(jìn)行分工協(xié)作。

    2.2 項(xiàng)目架構(gòu)

    本代碼生成器遵循MVC模式,選擇Spring Web、Spring和MyBatis作為J2EE框架。其中,Spring Web負(fù)責(zé)前端數(shù)據(jù)的展示和處理,Spring負(fù)責(zé)整個(gè)項(xiàng)目的統(tǒng)籌和管理,MyBatis作為持久層框架,負(fù)責(zé)處理數(shù)據(jù)庫的CRUD操作。各框架各司其職,這種分層的體系結(jié)構(gòu)一方面能夠很好地解決各模塊的耦合性問題,使代碼結(jié)構(gòu)更加明了,有利于項(xiàng)目的維護(hù);另一方面為代碼生成器的設(shè)計(jì)提供了便利性,只需根據(jù)每層的特點(diǎn)編寫對(duì)應(yīng)的模板文件,大大提高了編碼效率,降低了用戶自定義模板的難度。項(xiàng)目各層交互如圖1所示。

    圖1 J2EE體系結(jié)構(gòu)圖

    (1)PO和VO對(duì)象。

    一張數(shù)據(jù)庫表對(duì)應(yīng)一個(gè)PO對(duì)象,PO對(duì)象是簡單的Java對(duì)象,沒有任何的業(yè)務(wù)邏輯處理,只有與數(shù)據(jù)表字段對(duì)應(yīng)的屬性和Setter/Getter方法。PO對(duì)象的主要用途是接收和封裝單張數(shù)據(jù)表CRUD的結(jié)果數(shù)據(jù),在業(yè)務(wù)邏輯處理層和數(shù)據(jù)持久層進(jìn)行傳遞。VO對(duì)象的作用主要是接收和封裝前端數(shù)據(jù)展示層的數(shù)據(jù),通過前端數(shù)據(jù)處理層傳遞給業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層負(fù)責(zé)VO和PO的轉(zhuǎn)換。PO和VO的主要區(qū)別在于PO服務(wù)于數(shù)據(jù)庫,而VO服務(wù)于前端數(shù)據(jù)展示。

    (2)展示層。

    在本系統(tǒng)中,由Spring Web框架負(fù)責(zé)展現(xiàn)層。前端數(shù)據(jù)展示由JSP、jQuery和Bootstrap協(xié)同配合完成,通過Get或Post請(qǐng)求,經(jīng)過Spring Web Servlet容器處理,定位到對(duì)應(yīng)的數(shù)據(jù)處理即Controller方法。與此同時(shí),請(qǐng)求參數(shù)被封裝到指定的VO對(duì)象中,傳遞給Controller方法。經(jīng)過Controller方法的處理,再傳遞給邏輯處理層,邏輯處理層處理之后將結(jié)果返回給 Controller,Controller通過 Spring Web Servlet再將數(shù)據(jù)返回前臺(tái),通過Spring Web標(biāo)簽將數(shù)據(jù)顯示在頁面上。

    (3)邏輯處理層。

    顧名思義,邏輯處理層主要負(fù)責(zé)業(yè)務(wù)邏輯的處理,是整個(gè)系統(tǒng)的核心和精髓,但具體的業(yè)務(wù)會(huì)增加邏輯處理代碼的耦合度,不利于系統(tǒng)的擴(kuò)展和維護(hù)。為了解決此問題,本系統(tǒng)通過Spring容器管理邏輯處理和數(shù)據(jù)持久層,為各層組件的靈活配置提供便利性。

    (4)數(shù)據(jù)持久層。

    數(shù)據(jù)持久層主要負(fù)責(zé)關(guān)系數(shù)據(jù)表與Java對(duì)象(即PO和VO對(duì)象)的映射,本系統(tǒng)使用MyBatis作為持久層框架,相比Hibernate或 OJB等全自動(dòng)式ORM框架,MyBatis可以自行定義、優(yōu)化SQL語句,因此被稱為半自動(dòng)式ORM框架[10-11]。MyBatis由Mapper和SQL Map兩大組件組成,其中Mapper負(fù)責(zé)定義數(shù)據(jù)口操作接口,SQL Map負(fù)責(zé)SQL語句的組裝。為了減少程序員的工作量,提高代碼編寫效率和正確性,MyBatis官方網(wǎng)站提供了一款代碼生成器iBator,可生成針對(duì)數(shù)據(jù)庫單表進(jìn)行增刪改查操作的Mapper、SQL Map和PO對(duì)象。本代碼生成器也會(huì)調(diào)用iBator生成單表的增刪改查的持久層代碼。

    3 代碼生成器的設(shè)計(jì)和實(shí)現(xiàn)

    3.1 代碼生成器概念模型

    代碼生成器的原理:按照規(guī)則定義輸入文件,解析輸入文件得到符合要求的輸入數(shù)據(jù)模型,將輸入數(shù)據(jù)模型按照特定的規(guī)則轉(zhuǎn)為輸出文件。本代碼生成器利用Freemarker模板技術(shù)實(shí)現(xiàn)輸入和輸出的轉(zhuǎn)換。使用模板的目的是將不變的代碼處理邏輯和可變的數(shù)據(jù)分離開來,這樣生成器的專注點(diǎn)就在于解析出可變的數(shù)據(jù)。由于Freemarker是一款基于Java語言的模板引擎,因此可以利用模板標(biāo)簽引用到Java對(duì)象中的各種屬性,將可變的數(shù)據(jù)和不變的代碼處理邏輯合為一體,組裝出系統(tǒng)所需要的各種組件。通過利用模板技術(shù),不僅可以減少代碼編寫工作量,提高生成程序的準(zhǔn)確性,還可以使代碼生成器滿足用戶自定義代碼邏輯的需求,用戶只需定義自己的程序模板,就可以生成出符合自身需求的業(yè)務(wù)組件。

    如圖2所示,本代碼生成器可以分為3大塊內(nèi)容,業(yè)務(wù)描述文件、代碼生成引擎和模板文件。代碼生成引擎就像一個(gè)工廠,將業(yè)務(wù)描述文件和模板文件進(jìn)行組裝,最后產(chǎn)出后臺(tái)管理系統(tǒng)。代碼生成器的基本流程是:軟件開發(fā)人員首先分析自身的需求,在業(yè)務(wù)描述文件里定義數(shù)據(jù)規(guī)則和組件規(guī)則,如需要用到的數(shù)據(jù)表信息、數(shù)據(jù)表之間的關(guān)聯(lián)和對(duì)應(yīng)關(guān)系信息、每個(gè)字段對(duì)應(yīng)的前臺(tái)組件信息等;然后通過代碼生成器中的數(shù)據(jù)解析引擎解析業(yè)務(wù)描述JSON文件,將解析得到的數(shù)據(jù)和模板文件結(jié)合,生成后臺(tái)管理系統(tǒng)。

    具體來說,本代碼生成器一共包括3種類型的代碼生成器:DAO代碼生成器,負(fù)責(zé)數(shù)據(jù)持久層的代碼生成;Controller代碼生成器,負(fù)責(zé)生成除頁面以外的所有代碼;CRUD代碼生成器,在調(diào)用以上兩種代碼生成器的基礎(chǔ)上,繼續(xù)生成增刪改查頁面、項(xiàng)目的目錄結(jié)構(gòu)和配置文件。

    圖2 代碼生成器流程圖

    3.2 代碼生成器程序模型

    3.2.1 業(yè)務(wù)描述文件定義

    業(yè)務(wù)描述文件負(fù)責(zé)描述整個(gè)后臺(tái)管理系統(tǒng)的業(yè)務(wù)邏輯,具體包括項(xiàng)目配置信息、數(shù)據(jù)庫連接信息、數(shù)據(jù)表信息和頁面UI信息4方面的配置。本系統(tǒng)采用JSON作為業(yè)務(wù)文件的定義形式。隨著Web2.0技術(shù)的不斷發(fā)展,Ajax技術(shù)大放異彩,JSON作為在異步傳輸中被廣泛采用的數(shù)據(jù)交換語言,已經(jīng)擁有了很成熟的發(fā)展體系。JSON和XML同為數(shù)據(jù)傳輸語言,具有很好的擴(kuò)展性,都能滿足自定義數(shù)據(jù)格式的需求,但是相比XML,JSON編碼容易,解析成本低[6],所以本系統(tǒng)采用JSON描述業(yè)務(wù)邏輯。下面是業(yè)務(wù)描述文件數(shù)據(jù)表信息部分,其中tables中封裝的是數(shù)據(jù)表信息,fields中封裝的是數(shù)據(jù)列信息,component中封裝的是某個(gè)字段對(duì)應(yīng)的前端組件信息。

    圖3 業(yè)務(wù)數(shù)據(jù)類圖

    3.2.2 業(yè)務(wù)文件解析

    業(yè)務(wù)文件解析器負(fù)責(zé)將業(yè)務(wù)描述JSON字符轉(zhuǎn)化為代碼生成器可識(shí)別的Java對(duì)象,為代碼生成提供數(shù)據(jù)源。本文的解析器是在開源組織Apache提供的JSON解析工具Jackson的基礎(chǔ)上進(jìn)一步加工和封裝所形成的,具體的處理過程為:首先對(duì)業(yè)務(wù)描述文件進(jìn)行檢查,例如,JSON字符是結(jié)構(gòu)定義是否有誤,業(yè)務(wù)描述是否符合規(guī)則等,如不符合預(yù)期,則拋出異常信息;其次將業(yè)務(wù)數(shù)據(jù)解析轉(zhuǎn)化為Java對(duì)象并加載到內(nèi)存中,供代碼生成器訪問。本系統(tǒng)所使用的業(yè)務(wù)對(duì)象類如圖3所示,具體包括項(xiàng)目基本信息、數(shù)據(jù)庫基礎(chǔ)信息和數(shù)據(jù)表信息,其中數(shù)據(jù)表信息又由數(shù)據(jù)列信息和前端組件信息兩部分組成。通過這樣的對(duì)象結(jié)構(gòu)設(shè)計(jì)和組合,就可以將業(yè)務(wù)描述信息全部加到Java對(duì)象中,為代碼生成器提供結(jié)構(gòu)化的數(shù)據(jù)源。

    3.2.3 代碼模板定義

    本代碼生成器基于模板技術(shù),在模板中定義程序原型,再由代碼生成器和模板引擎共同合成最終的程序文件。本文將以Service層代碼模板為例,闡述本系統(tǒng)使用的模板文件的結(jié)構(gòu)和原理。Service層主要負(fù)責(zé)數(shù)據(jù)庫的CRUD的邏輯操作,圖4是Service層插入數(shù)據(jù)到數(shù)據(jù)庫的模板片段。

    圖4 Service層插入數(shù)據(jù)到數(shù)據(jù)庫的模板片段

    從圖4中可以看到,整個(gè)代碼分為兩部分,其中${}中的代碼為動(dòng)態(tài)代碼,其他為靜態(tài)代碼。對(duì)于靜態(tài)代碼,代碼解析器不會(huì)做任何的解析直接輸出到對(duì)應(yīng)的程序文件中,對(duì)于動(dòng)態(tài)代碼,代碼解析器會(huì)從業(yè)務(wù)對(duì)象中取出對(duì)應(yīng)的數(shù)據(jù),輸出給Freemarker模板引擎,然后由模板引擎進(jìn)行動(dòng)態(tài)替換,合成最終的程序文件。

    表1 模板說明表

    本后臺(tái)系統(tǒng)采用的是J2EE體系結(jié)構(gòu),與J2EE體系相對(duì)應(yīng),本文提供了每一層的代碼模板,具體如表1所示,其中表現(xiàn)層除了 Controller模板外,在Component文件夾中定義了前端頁面所使用的組件模板,在uiTemplate目錄下定義了前端展示的增刪改查頁面。

    圖5 代碼生成器類圖

    3.2.4 代碼生成引擎

    本代碼生成器是以command.bat文件為入口,通過命令行方式驅(qū)動(dòng)代碼生成器的運(yùn)行,如圖5所示,其中commandLine負(fù)責(zé)命令的接收,在命令行中以參數(shù)的形式指定生成器類型和業(yè)務(wù)文件??蛇x的生成器包括 generateDAO、generateController、generateCRUD三種類型,其中g(shù)enerateDAO負(fù)責(zé)生成數(shù)據(jù)持久層代碼,generateController在generateDAO的基礎(chǔ)上生成邏輯層和控制層的后端代碼,generateCRUD在generateController的基礎(chǔ)上繼續(xù)生成前臺(tái)頁面。代碼生成過程如圖5所示:首先commandLine調(diào)用JSONParser進(jìn)行業(yè)務(wù)文件解析,將解析結(jié)果以對(duì)象的形式保存下來,然后commandLine利用 Java的反射機(jī)制[13-14],調(diào)用DefaultGenerator中對(duì)應(yīng)的生成器方法并將業(yè)務(wù)參數(shù)傳遞過去,進(jìn)行代碼生成。

    4 結(jié)束語

    眾所周知,中小軟件外包公司承接的項(xiàng)目中Web后臺(tái)系統(tǒng)占有較大的比例,很適合利用本文設(shè)計(jì)的代碼生成器進(jìn)行項(xiàng)目開發(fā)。經(jīng)過努力和推廣,本代碼生成器已經(jīng)在某軟件外包公司中得到應(yīng)用。根據(jù)使用之后的反饋結(jié)果,使用代碼生成器可以快速構(gòu)建一個(gè)后臺(tái)系統(tǒng)雛形,明顯地縮短了項(xiàng)目的開發(fā)周期,減少了軟件開發(fā)人員的重復(fù)工作。但是與此同時(shí),也暴露出了一些問題,如:業(yè)務(wù)文件語法復(fù)雜;只能生成系統(tǒng)指定J2EE架構(gòu)的 Web項(xiàng)目;只支持 Oracle和 My SQL兩種類型的數(shù)據(jù)庫等。針對(duì)實(shí)際使用中的問題,在后續(xù)的開發(fā)中,將對(duì)代碼生成器進(jìn)行逐步的完善,達(dá)到最終支持完全可視化配置和驅(qū)動(dòng)的目標(biāo)。

    [1]曹鳴鵬,趙偉,許林英.J2EE技術(shù)及其實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2001,21(10):20-23.

    [2]袁梅冷,黃煙波,黃家林,等.J2EE應(yīng)用模型中MVC軟件體系結(jié)構(gòu)的研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2003,20(3):147-149.

    [3]陸榮幸,郁洲,阮永良,等.J2EE平臺(tái)上MVC設(shè)計(jì)模式的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2003,20(3):144-146.

    [4]李剛.Struts 2.1權(quán)威指南[M].北京:電子工業(yè)出版社,2009.

    [5]單東林,張曉菲,魏然.鋒利的jQuery[M].北京:人民郵電出版社,2009:35-42.

    [6]費(fèi)拉納提.Javascript權(quán)威指南(第5版)[M].李強(qiáng),等譯.北京:機(jī)械工業(yè)出版社,2007:56-67.

    [7]丁振凡.基于Spring Security的Web資源訪問控制[J].宜春學(xué)院學(xué)報(bào),2012,34(8):71-74.

    [8]焦寧波,常炳國.Spring Security構(gòu)建靈活的企業(yè)級(jí)安全應(yīng)用[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2011(1):7-8.

    [9]百度百科.Maven[EB/OL].http://baike.baidu.com/view/336103.htm,2013-07-23.

    [10]李澎林,朱國清,吳斌.基于iBatis SQL Map的數(shù)據(jù)持久層實(shí)現(xiàn)應(yīng)用研究[J].浙江工業(yè)大學(xué)學(xué)報(bào),2008,36(1):72-76.

    [11]劉軍,戴金山.基于Spring MVC與iBatis的輕量級(jí)Web應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用,2006,26(4):840-843.

    [12]韓義波,宋莉,宋俊杰.Ajax技術(shù)結(jié)合XML或JSON的使用比較[J].電腦知識(shí)與技術(shù),2009(1):101-103.

    [13]王開,譚翼,周蘭江.Java中反射機(jī)制淺析及應(yīng)用[J].電腦知識(shí)與技術(shù),2007(1):255-256.

    [14]張航,藍(lán)雯飛.探尋Java反射機(jī)制的奧秘[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2011(9):203.

    猜你喜歡
    數(shù)據(jù)庫系統(tǒng)
    Smartflower POP 一體式光伏系統(tǒng)
    WJ-700無人機(jī)系統(tǒng)
    ZC系列無人機(jī)遙感系統(tǒng)
    基于PowerPC+FPGA顯示系統(tǒng)
    半沸制皂系統(tǒng)(下)
    連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
    數(shù)據(jù)庫
    數(shù)據(jù)庫
    數(shù)據(jù)庫
    數(shù)據(jù)庫
    日韩欧美一区视频在线观看| 99香蕉大伊视频| 亚洲国产欧美在线一区| 丰满少妇做爰视频| 999精品在线视频| 久久亚洲精品不卡| 母亲3免费完整高清在线观看| 老司机午夜十八禁免费视频| 中文字幕色久视频| 国产精品.久久久| 日韩制服丝袜自拍偷拍| 秋霞在线观看毛片| 水蜜桃什么品种好| 欧美日韩av久久| 男人爽女人下面视频在线观看| 夜夜骑夜夜射夜夜干| 啦啦啦视频在线资源免费观看| 中文字幕色久视频| 久久热在线av| 高潮久久久久久久久久久不卡| cao死你这个sao货| 男女下面插进去视频免费观看| 中文字幕人妻丝袜制服| 男女免费视频国产| 丝袜美腿诱惑在线| 99国产综合亚洲精品| 国产男女超爽视频在线观看| 亚洲欧美精品自产自拍| 精品免费久久久久久久清纯 | 精品人妻熟女毛片av久久网站| 国产精品九九99| 最近中文字幕2019免费版| 亚洲一码二码三码区别大吗| 久久性视频一级片| 自拍欧美九色日韩亚洲蝌蚪91| 欧美日韩国产mv在线观看视频| 男人舔女人的私密视频| 国产免费现黄频在线看| 日本vs欧美在线观看视频| 国产1区2区3区精品| 在线观看www视频免费| 精品人妻在线不人妻| 国产福利在线免费观看视频| 国产成人啪精品午夜网站| 国产老妇伦熟女老妇高清| 91成人精品电影| 看十八女毛片水多多多| 日本一区二区免费在线视频| 少妇猛男粗大的猛烈进出视频| 亚洲国产欧美日韩在线播放| 亚洲成色77777| 一区二区av电影网| 色播在线永久视频| 一个人免费看片子| 男的添女的下面高潮视频| 啦啦啦在线观看免费高清www| 精品久久久精品久久久| 搡老岳熟女国产| 国产成人精品久久久久久| 国产精品亚洲av一区麻豆| 婷婷色综合www| 涩涩av久久男人的天堂| 免费观看av网站的网址| 女人精品久久久久毛片| 中文乱码字字幕精品一区二区三区| 国产精品麻豆人妻色哟哟久久| 国产av精品麻豆| av片东京热男人的天堂| 在线 av 中文字幕| 国产欧美日韩一区二区三 | 亚洲美女黄色视频免费看| 中文精品一卡2卡3卡4更新| 久久影院123| 午夜日韩欧美国产| 欧美精品亚洲一区二区| 晚上一个人看的免费电影| 青春草视频在线免费观看| 欧美日本中文国产一区发布| 最近最新中文字幕大全免费视频 | 日本欧美国产在线视频| 久久人人爽人人片av| 午夜精品国产一区二区电影| 免费黄频网站在线观看国产| 宅男免费午夜| 视频区欧美日本亚洲| 久久精品国产亚洲av高清一级| 国产黄色免费在线视频| 极品人妻少妇av视频| 天堂8中文在线网| 色婷婷久久久亚洲欧美| 久久久欧美国产精品| 久久精品成人免费网站| 国产成人av激情在线播放| 老汉色∧v一级毛片| 捣出白浆h1v1| 爱豆传媒免费全集在线观看| 97人妻天天添夜夜摸| 久久精品aⅴ一区二区三区四区| a级毛片在线看网站| 中文字幕最新亚洲高清| 欧美日韩黄片免| 欧美激情极品国产一区二区三区| 亚洲伊人久久精品综合| 国产片特级美女逼逼视频| 日韩精品免费视频一区二区三区| 亚洲激情五月婷婷啪啪| 日日摸夜夜添夜夜爱| 丝瓜视频免费看黄片| 国产av精品麻豆| 日韩中文字幕视频在线看片| 欧美成狂野欧美在线观看| 人人澡人人妻人| 老汉色∧v一级毛片| 免费在线观看完整版高清| 在线观看免费日韩欧美大片| 色播在线永久视频| 80岁老熟妇乱子伦牲交| 欧美人与性动交α欧美精品济南到| 久久 成人 亚洲| 精品人妻一区二区三区麻豆| 男女之事视频高清在线观看 | 丝瓜视频免费看黄片| 欧美日韩综合久久久久久| xxx大片免费视频| 欧美日韩av久久| 亚洲精品一二三| 日本av免费视频播放| 国产1区2区3区精品| 国产亚洲av片在线观看秒播厂| 精品免费久久久久久久清纯 | www.999成人在线观看| 欧美人与性动交α欧美精品济南到| 热re99久久国产66热| 精品亚洲成国产av| 天天操日日干夜夜撸| www.熟女人妻精品国产| 蜜桃国产av成人99| 狠狠婷婷综合久久久久久88av| av网站在线播放免费| 亚洲精品成人av观看孕妇| 亚洲,欧美,日韩| 国产成人av教育| 一本大道久久a久久精品| 亚洲国产看品久久| 久9热在线精品视频| 国产免费一区二区三区四区乱码| 国产一区有黄有色的免费视频| 国产成人精品无人区| 搡老乐熟女国产| 悠悠久久av| 色网站视频免费| 色综合欧美亚洲国产小说| 一二三四在线观看免费中文在| 人妻一区二区av| 少妇人妻 视频| 国产精品熟女久久久久浪| av视频免费观看在线观看| 一区在线观看完整版| 精品卡一卡二卡四卡免费| 天天影视国产精品| 欧美成狂野欧美在线观看| 大片免费播放器 马上看| 在线观看一区二区三区激情| 亚洲人成电影观看| 天天躁日日躁夜夜躁夜夜| 亚洲国产看品久久| 少妇人妻 视频| 亚洲精品日本国产第一区| 久久天堂一区二区三区四区| 免费在线观看黄色视频的| 一本综合久久免费| 亚洲国产精品999| 日韩制服骚丝袜av| 又紧又爽又黄一区二区| 久久女婷五月综合色啪小说| 亚洲欧洲精品一区二区精品久久久| 欧美 日韩 精品 国产| 免费观看人在逋| 国产高清videossex| 悠悠久久av| 国产伦人伦偷精品视频| 国精品久久久久久国模美| 亚洲欧美色中文字幕在线| 亚洲av国产av综合av卡| 一本久久精品| 中文字幕人妻丝袜一区二区| 国产精品免费大片| 天天躁夜夜躁狠狠躁躁| 亚洲激情五月婷婷啪啪| 亚洲欧美一区二区三区久久| 99re6热这里在线精品视频| 免费不卡黄色视频| 啦啦啦啦在线视频资源| 男女免费视频国产| 亚洲伊人久久精品综合| 国精品久久久久久国模美| 飞空精品影院首页| 蜜桃在线观看..| av网站免费在线观看视频| 久久久久视频综合| 午夜91福利影院| 亚洲精品国产av蜜桃| 人妻一区二区av| 男女边摸边吃奶| 午夜激情久久久久久久| 日韩免费高清中文字幕av| 人人妻,人人澡人人爽秒播 | 欧美日韩一级在线毛片| 免费在线观看日本一区| 中文字幕亚洲精品专区| 色精品久久人妻99蜜桃| 夜夜骑夜夜射夜夜干| 尾随美女入室| 免费久久久久久久精品成人欧美视频| 亚洲图色成人| 精品久久久久久久毛片微露脸 | 亚洲欧美色中文字幕在线| 亚洲人成77777在线视频| 亚洲欧洲国产日韩| 手机成人av网站| 久久精品国产亚洲av涩爱| 大码成人一级视频| av线在线观看网站| 久9热在线精品视频| 久久久久网色| 久久中文字幕一级| 国精品久久久久久国模美| av欧美777| 国产极品粉嫩免费观看在线| 曰老女人黄片| 看免费成人av毛片| 国产高清国产精品国产三级| 丝袜喷水一区| 国产成人一区二区三区免费视频网站 | 丝袜在线中文字幕| 欧美在线一区亚洲| 美国免费a级毛片| 黄片小视频在线播放| 成人国语在线视频| 亚洲av综合色区一区| 国产成人精品无人区| 免费一级毛片在线播放高清视频 | 丝瓜视频免费看黄片| 日韩av在线免费看完整版不卡| 国产免费一区二区三区四区乱码| 啦啦啦 在线观看视频| 午夜激情久久久久久久| 丁香六月天网| 久久久精品国产亚洲av高清涩受| 美国免费a级毛片| 久久天堂一区二区三区四区| 国产男女内射视频| 成年av动漫网址| 亚洲精品自拍成人| 2021少妇久久久久久久久久久| www.999成人在线观看| 美女扒开内裤让男人捅视频| 亚洲图色成人| 在线观看免费午夜福利视频| 免费看av在线观看网站| 视频在线观看一区二区三区| 黄色毛片三级朝国网站| 亚洲久久久国产精品| 日韩av免费高清视频| 好男人电影高清在线观看| 欧美亚洲 丝袜 人妻 在线| 国产精品熟女久久久久浪| 女性生殖器流出的白浆| 亚洲av电影在线观看一区二区三区| 在线观看一区二区三区激情| 桃花免费在线播放| 老熟女久久久| 国产国语露脸激情在线看| 99热全是精品| a级毛片在线看网站| 午夜福利影视在线免费观看| 天天添夜夜摸| 大片免费播放器 马上看| 欧美黄色片欧美黄色片| 激情五月婷婷亚洲| 久久精品熟女亚洲av麻豆精品| 少妇人妻久久综合中文| 天天躁夜夜躁狠狠躁躁| 观看av在线不卡| 亚洲欧美精品综合一区二区三区| 人成视频在线观看免费观看| 无限看片的www在线观看| 五月开心婷婷网| 国产片内射在线| 国产日韩欧美在线精品| 欧美精品一区二区免费开放| 9191精品国产免费久久| 99国产精品免费福利视频| 国产成人啪精品午夜网站| www.自偷自拍.com| 欧美人与性动交α欧美精品济南到| 丝袜美足系列| avwww免费| 最新在线观看一区二区三区 | 国产午夜精品一二区理论片| 国产男女内射视频| 男女无遮挡免费网站观看| 两人在一起打扑克的视频| 久久久久久久大尺度免费视频| 最新的欧美精品一区二区| 国产精品熟女久久久久浪| 精品久久久久久久毛片微露脸 | 国产在视频线精品| 大陆偷拍与自拍| 精品少妇久久久久久888优播| 国产精品国产av在线观看| 狂野欧美激情性xxxx| 亚洲av在线观看美女高潮| 久9热在线精品视频| 国产日韩欧美视频二区| 国产成人影院久久av| 老司机影院成人| 黑丝袜美女国产一区| 久久青草综合色| 宅男免费午夜| 亚洲国产精品一区三区| 亚洲国产精品999| 欧美少妇被猛烈插入视频| 天天影视国产精品| 精品欧美一区二区三区在线| 午夜影院在线不卡| 各种免费的搞黄视频| 成人国产一区最新在线观看 | 丝袜喷水一区| 亚洲免费av在线视频| 三上悠亚av全集在线观看| 一区二区三区精品91| 亚洲专区国产一区二区| 亚洲精品日韩在线中文字幕| 一边摸一边做爽爽视频免费| 免费高清在线观看视频在线观看| 建设人人有责人人尽责人人享有的| 母亲3免费完整高清在线观看| 国产精品熟女久久久久浪| 久久中文字幕一级| 高清欧美精品videossex| 最近中文字幕2019免费版| 亚洲成人手机| 久久久国产精品麻豆| av在线播放精品| 久久精品国产亚洲av涩爱| 国产精品一区二区免费欧美 | 久久99精品国语久久久| 天堂俺去俺来也www色官网| 亚洲一区二区三区欧美精品| 日韩一区二区三区影片| 青草久久国产| 超碰97精品在线观看| 国产成人影院久久av| 又紧又爽又黄一区二区| 一区二区三区精品91| 一边摸一边做爽爽视频免费| 大香蕉久久成人网| 欧美日韩黄片免| 中文欧美无线码| 麻豆乱淫一区二区| 香蕉国产在线看| 一区二区三区激情视频| 波多野结衣一区麻豆| 国产一级毛片在线| 操出白浆在线播放| av天堂在线播放| 国产精品秋霞免费鲁丝片| 国产欧美日韩一区二区三区在线| 国产欧美日韩综合在线一区二区| 91字幕亚洲| av福利片在线| 丝瓜视频免费看黄片| 一区二区av电影网| 精品亚洲成国产av| 亚洲综合色网址| 天天影视国产精品| 夫妻午夜视频| 日韩精品免费视频一区二区三区| 国产精品 欧美亚洲| av欧美777| √禁漫天堂资源中文www| 亚洲第一av免费看| 国产精品三级大全| 宅男免费午夜| 国产99久久九九免费精品| 19禁男女啪啪无遮挡网站| 免费一级毛片在线播放高清视频 | 91麻豆精品激情在线观看国产 | 一级黄色大片毛片| 成人手机av| 婷婷成人精品国产| 精品国产乱码久久久久久小说| 999久久久国产精品视频| 最黄视频免费看| 自线自在国产av| 老司机午夜十八禁免费视频| 国产一区有黄有色的免费视频| 国产精品人妻久久久影院| 天天影视国产精品| 黑人猛操日本美女一级片| 亚洲人成网站在线观看播放| 青青草视频在线视频观看| 免费在线观看完整版高清| 黄色a级毛片大全视频| 亚洲精品美女久久av网站| 啦啦啦视频在线资源免费观看| 性高湖久久久久久久久免费观看| 一区二区三区乱码不卡18| 国产有黄有色有爽视频| 老司机影院成人| 老鸭窝网址在线观看| 久久国产精品影院| 亚洲色图 男人天堂 中文字幕| 999精品在线视频| 国产欧美日韩综合在线一区二区| videos熟女内射| 日韩中文字幕视频在线看片| 80岁老熟妇乱子伦牲交| 50天的宝宝边吃奶边哭怎么回事| 在线天堂中文资源库| 青青草视频在线视频观看| 国产精品香港三级国产av潘金莲 | 伊人久久大香线蕉亚洲五| 在线观看免费日韩欧美大片| 亚洲一区中文字幕在线| 国产在线免费精品| 亚洲精品一区蜜桃| 青草久久国产| 黄色视频在线播放观看不卡| 天天添夜夜摸| 一级毛片女人18水好多 | 国产精品 欧美亚洲| 午夜福利视频在线观看免费| 美女主播在线视频| 亚洲熟女毛片儿| 欧美精品一区二区大全| 王馨瑶露胸无遮挡在线观看| 99re6热这里在线精品视频| 欧美少妇被猛烈插入视频| 日本欧美视频一区| bbb黄色大片| 亚洲欧美激情在线| 久9热在线精品视频| 国产深夜福利视频在线观看| 爱豆传媒免费全集在线观看| 国产av一区二区精品久久| 黑人欧美特级aaaaaa片| 美女高潮到喷水免费观看| 亚洲国产欧美网| 成年美女黄网站色视频大全免费| 侵犯人妻中文字幕一二三四区| 国产精品一国产av| 女人高潮潮喷娇喘18禁视频| 国产男女内射视频| 中文字幕人妻丝袜一区二区| 天天躁日日躁夜夜躁夜夜| 欧美日韩亚洲综合一区二区三区_| 在线 av 中文字幕| 大香蕉久久成人网| av线在线观看网站| 国产男女内射视频| 精品人妻熟女毛片av久久网站| 国产成人精品久久二区二区免费| 性色av乱码一区二区三区2| 手机成人av网站| 91国产中文字幕| 男人舔女人的私密视频| 自拍欧美九色日韩亚洲蝌蚪91| 精品人妻在线不人妻| 高潮久久久久久久久久久不卡| 午夜福利在线免费观看网站| 男人爽女人下面视频在线观看| 免费人妻精品一区二区三区视频| 好男人电影高清在线观看| 日韩中文字幕视频在线看片| 18禁国产床啪视频网站| 亚洲精品av麻豆狂野| 欧美日韩亚洲综合一区二区三区_| 9热在线视频观看99| 欧美成狂野欧美在线观看| 人人妻,人人澡人人爽秒播 | tube8黄色片| 伦理电影免费视频| 久久久国产精品麻豆| 色婷婷久久久亚洲欧美| 亚洲美女黄色视频免费看| 亚洲av在线观看美女高潮| 午夜激情久久久久久久| 91精品三级在线观看| 美国免费a级毛片| 日韩av在线免费看完整版不卡| 每晚都被弄得嗷嗷叫到高潮| 国产精品人妻久久久影院| 欧美老熟妇乱子伦牲交| 亚洲中文日韩欧美视频| 欧美精品人与动牲交sv欧美| 午夜视频精品福利| 又粗又硬又长又爽又黄的视频| 亚洲男人天堂网一区| 亚洲欧美一区二区三区久久| 婷婷色麻豆天堂久久| 午夜精品国产一区二区电影| av网站在线播放免费| 亚洲成av片中文字幕在线观看| 欧美乱码精品一区二区三区| 亚洲精品日韩在线中文字幕| 韩国精品一区二区三区| 亚洲欧洲日产国产| 国产精品.久久久| 亚洲一区中文字幕在线| 观看av在线不卡| 国产在线观看jvid| 我的亚洲天堂| 国产伦人伦偷精品视频| 精品国产超薄肉色丝袜足j| 七月丁香在线播放| 国产不卡av网站在线观看| 午夜福利视频精品| 日韩人妻精品一区2区三区| 纯流量卡能插随身wifi吗| 精品久久蜜臀av无| www.999成人在线观看| 无限看片的www在线观看| 嫁个100分男人电影在线观看 | 免费av中文字幕在线| 亚洲中文av在线| www日本在线高清视频| 久久性视频一级片| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲国产精品一区三区| 香蕉丝袜av| 一级黄片播放器| 性少妇av在线| 在线观看免费视频网站a站| 一级毛片女人18水好多 | 亚洲精品在线美女| 各种免费的搞黄视频| 亚洲av美国av| 欧美 亚洲 国产 日韩一| 欧美亚洲 丝袜 人妻 在线| 新久久久久国产一级毛片| 青春草亚洲视频在线观看| 亚洲人成77777在线视频| 一级黄色大片毛片| 国产成人91sexporn| 国产精品久久久人人做人人爽| 丝袜美足系列| 日韩大码丰满熟妇| 在线观看人妻少妇| 50天的宝宝边吃奶边哭怎么回事| 亚洲欧美一区二区三区黑人| 晚上一个人看的免费电影| 日韩av免费高清视频| 五月开心婷婷网| 日韩 亚洲 欧美在线| 精品一区二区三区四区五区乱码 | 色综合欧美亚洲国产小说| 日本黄色日本黄色录像| 国产片特级美女逼逼视频| 免费在线观看黄色视频的| 人妻 亚洲 视频| 午夜日韩欧美国产| 超色免费av| 欧美av亚洲av综合av国产av| 久久99热这里只频精品6学生| 亚洲一码二码三码区别大吗| 好男人电影高清在线观看| 国产视频首页在线观看| 久久中文字幕一级| 欧美日韩黄片免| 中文精品一卡2卡3卡4更新| 岛国毛片在线播放| 亚洲精品一卡2卡三卡4卡5卡 | www.精华液| 午夜福利在线免费观看网站| 国产精品一二三区在线看| 国产一区亚洲一区在线观看| 国产欧美亚洲国产| 欧美日韩av久久| 老司机午夜十八禁免费视频| 亚洲男人天堂网一区| 久久久久网色| 日本wwww免费看| 蜜桃在线观看..| 超碰成人久久| 99热国产这里只有精品6| 少妇被粗大的猛进出69影院| 大片免费播放器 马上看| 嫁个100分男人电影在线观看 | 一本色道久久久久久精品综合| 久久久精品免费免费高清| 午夜免费鲁丝| 高清黄色对白视频在线免费看| 男人舔女人的私密视频| 青春草亚洲视频在线观看| 亚洲av日韩在线播放| 日韩制服丝袜自拍偷拍| 国产精品一区二区免费欧美 | www.精华液| 精品国产一区二区三区久久久樱花| 蜜桃国产av成人99| 欧美国产精品一级二级三级| 国产熟女欧美一区二区| 久久久久久久大尺度免费视频| 久久久久精品国产欧美久久久 | 大香蕉久久成人网| 久久狼人影院| 久久精品国产综合久久久| 青草久久国产| 亚洲精品久久成人aⅴ小说| 人妻人人澡人人爽人人| 99精品久久久久人妻精品| 午夜免费男女啪啪视频观看| 国产精品熟女久久久久浪|