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

    結合AOP思想和依賴注入技術的輕量級MVC框架

    2016-01-22 09:07:46姜林美李國剛杜勇前
    華僑大學學報(自然科學版) 2016年1期
    關鍵詞:攔截器表單服務端

    姜林美, 李國剛, 杜勇前

    (華僑大學 計算機科學與技術學院, 福建 廈門 361021)

    ?

    結合AOP思想和依賴注入技術的輕量級MVC框架

    姜林美, 李國剛, 杜勇前

    (華僑大學 計算機科學與技術學院, 福建 廈門 361021)

    摘要:為了解決目前Java主流模型-視圖-控制器(MVC)框架日益龐大,從而導致性能低下的問題,提出了一個輕量級的MVC框架.該框架利用面向方面編程(AOP)技術實現(xiàn)了橫向業(yè)務的剝離,采用控制反轉設計模式實現(xiàn)了模塊間的最低耦合,并通過Java反射技術實現(xiàn)了數據庫記錄與Java對象的自動轉換.實驗結果表明:該框架以僅僅70 KB左右的JAR包實現(xiàn)了比其龐大數百倍的類似框架的主要功能,同時支持網絡應用和移動應用的開發(fā),具有更高的執(zhí)行效率.

    關鍵詞:Java反射; 依賴注入; 控制反轉; 模型-視圖-控制器框架; 面向方面編程; 移動應用開發(fā)

    在面向對象設計領域,框架是由一組相互協(xié)作的可重用設計的類構成,對這些類進行特化(specialized),即可創(chuàng)建不同的客戶應用程序[1].目前,框架設計已成為加速信息系統(tǒng)開發(fā)和軟件重用的一項關鍵技術[2],盡可能地降低模塊之間的耦合性.模型-視圖-控制器(model view controller,MVC)框架的核心是能夠實現(xiàn)三層甚至多層的松散耦合[3].面向方面編程(aspect oriented programming,AOP)的核心思想是對軟件系統(tǒng)中各個互相獨立的橫切關系(如日志記錄、權限檢查、緩存和持久化等)加以模塊化,使之可以有效地集中被管理,而不會讓其分散到程序代碼的各個地方[4].AOP把一個系統(tǒng)看作一批關注點,強調調用者與被調用者之間的解耦,并能夠自動將橫切關注點織入到面向對象的軟件系統(tǒng)中[5],將業(yè)務關注點和橫切關注點分離[6-7].依賴注入是Martin Fowler對IoC(inversion of control)模式的一種擴展解釋,即高層不應依賴于底層,兩者都應依賴于抽象;抽象不應依賴于細節(jié),細節(jié)應依賴于抽象[8].在Java中,依賴注入一般通過反射機制來實現(xiàn).Java反射機制允許在運行時加載、探知和使用編譯期完全不知道的類[9].目前,SSH(struts2 spring hibernate)框架在Java Web輕量級應用開發(fā)領域得到了廣泛的應用.SSH是由Struts2,Spring和Hibernate三個獨立組件組合而成,它們各有自己的不同的版本,這些版本相互組合存在兼容性問題和執(zhí)行效率低下的問題.另外,Hibernate因采用對象關系映射(ORM)技術導致效率比精心編寫的JDBC(java data base connectivity)差[10].最后,SSH的各個組件的尺寸越來越大,所帶來的問題是應用系統(tǒng)的可維護性差,運行效率的降低.為此,本文提出應用AOP和Java依賴注入技術的思想的輕量級MVC框架.

    1框架的設計

    文中提出的框架運行于Web容器之上,其總體結構如圖1所示.

    圖1 框架結構Fig.1 Structure of the framework

    1.1 派遣過濾器

    派遣過濾器是框架與Web容器交互的界面.派遣過濾器實現(xiàn)了javax.servlet.Filter接口.Filter接口的配置管理器由派遣過濾器創(chuàng)建并調用,負責讀取并解析系統(tǒng)配置文件.frame.xml.init()方法中,通過配置管理器讀取框架的配置文件frame.xml,并進行解析.Filter接口的doFilter()方法中,利用Action調度器對Web容器發(fā)來的HttpServletRequest請求進行處理,并將處理結果通過HttpServletResponse反饋給Web容器.

    1.2 配置管理器

    配置管理器由派遣過濾器創(chuàng)建并調用,它負責讀取并解析系統(tǒng)配置文件frame.xml.根據配置文件中的配置項生成各類映射表,包括Action映射表、攔截器映射表、終結器映射表、DAO(data access object)映射表、結果視圖映射表和常量映射表.前4種映射表是Action調度器進行依賴注入的依據.另外,配置管理器還通過反射機制創(chuàng)建數據庫連接池.該連接池在DAO對象調用數據庫操作工具包進行數據庫訪問時被自動引用,并在派遣過濾器銷毀時自動銷毀.

    1.3 Action調度器

    當客戶端的HTTP請求經Web服務器送達Web容器后,Web容器生成相應HttpServletRequest請求,派遣過濾器則會在其doFilter() 方法中截獲該請求,并通過Action調度器對該請求進行處理,并反饋處理結果.因此,Action調度器是整個框架的核心.

    1.3.1依賴注入依賴注入是Action調度器對一次HttpServletRequest請求所做的第一個操作,需要調用反射工具包中的反射處理函數配合完成.首先,Action調度器會根據請求的URL(universal resource locator)信息,在配置管理器的Action映射表中查找相應的Action類名.如果找到,則通過依賴注入創(chuàng)建相應的Action實例;否則,立即終止請求,并輸出錯誤提示.Action實例成功創(chuàng)建之后,調度器繼續(xù)在配置管理器的映射表中查找與該Action相關的攔截器和終結器,查找成功,即通過依賴注入創(chuàng)建相應的實例.此外,調度器還將在配置管理器的DAO映射表中查找與該Action相關聯(lián)的DAO,如果查找成功,則創(chuàng)建DAO實例,并將創(chuàng)建的DAO實例注入該Action對象.最后,調度器通過Java反射功能檢查該Action中的成員變量中是否有表單類型的對象,如果有,則創(chuàng)建表單實例,并為表單對象的各成員變量注入值.所注入的值來自HttpServletRequest中與成員變量同名的請求參數,表單類型指的是直接或間接從Form類繼承的類.

    1.3.2攔截器調度器在完成依賴注入之后,在配置文件中,以攔截器配置的先后順序依次調用攔截器對象的intercept()方法,該方法以接收請求相應的Action對象作為其參數.在攔截器中可以對請求做任何橫切事務處理,并根據橫切處理結果決定是否要繼續(xù)執(zhí)行Action對象中的目標方法.

    1.3.3ActionAction是框架提供給上層應用的主要接口,應用程序應當是在Action中或Action的交互類中實現(xiàn)業(yè)務處理的核心代碼.

    如節(jié)1.3.1所述,Action中若有DAO類型的成員變量,并在frame.xml中進行了相應的配置,該成員變量的值會在依賴注入階段進行注入.另外,Action中表單類型的成員變量的值也會在依賴注入階段進行注入.因此,在Action中可以直接使用DAO進行數據庫訪問,也可以通過表單類型的成員變量直接獲得客戶端提交的數據.

    在Action中,可通過“表單-POJO(plain ordinary java objects)轉換器”將表單對象轉換成POJO對象.轉換的原則是同名成員變量做類型轉換后,進行相應的賦值,轉換后的POJO對象即可供業(yè)務處理使用.此后,若業(yè)務處理過程需要進行數據庫操作,可使用DAO對象來完成.在DAO中只需編寫SQL語句,然后調用數據庫操作工具包中的相應方法執(zhí)行該SQL語句,即可完成任何數據庫操作.若執(zhí)行的是有結果集(Resultset)的SQL語句,所取得所有記錄行(結果集中的)會通過“記錄行-POJO轉換器”轉換成POJO對象,然后整個結果集中的數據將被封裝成一個List列表(POJO數據集)返回.

    1.3.4結果視圖結果視圖對應MVC框架的視圖部分,在Action中對業(yè)務邏輯進行處理之后,可根據處理結果選擇在frame.xml中配置好的屬于Action的任一結果視圖.框架支持的結果類型包括FORWARD,REDIRECT,REDIRECT_TOP,CHAIN,PLAINTEXT,JSON和XML.前3種類型一般用于JSP頁面,其中,F(xiàn)ORWARD類型用于直接在服務端轉發(fā)請求的JSP頁面;RIDRECT類型則用于重新轉發(fā)到一個新的URL頁面;REDIRECT_TOP和RIDRECT一樣,但在原始頁面由多個frame(指html的〈frame〉或〈iframe〉)構成時,會在頂層顯示轉發(fā)后的結果頁面.CHAIN類型用于直接調用另一個Action作后續(xù)處理的頁面;使用PLAINTEXT類型會向客戶端傳送普通文本;使用JSON類型則會將Action中的處理結果格式化成JSON字符串,再傳送給客戶端.最后,XML類型意味著向客戶端傳送XML文檔.

    1.3.5終結器Action調度器處理的最后一步,在配置文件中,對終結器配置的先后順序依次調用終結器對象的intercept()方法,該方法同樣以接收請求相應的Action對象作為其參數,可對請求做任何橫切事務處理.

    2框架的實現(xiàn)

    框架源碼實現(xiàn)時含4個包,分別是工具包util、數據庫包db、核心包core和活動包action.整個框架最終被打包成xxdw-platform.jar提供給上層應用程序來使用,框架的源碼組織結構,如圖2所示.

    圖2 源碼組織結構Fig.2 Organization of the source codes

    工具包util提供整個框架的一些工具類,工具類只有一些靜態(tài)的方法,以便通過類名直接調用.其中:ReflectUtil類是實現(xiàn)依賴注入的基礎,同時也為Form2PojoUtil類進行表單-POJO的轉換,以及為Record2PojoUtil進行記錄行-POJO的轉換提供支持.ReflectUtil的核心操作是依賴注入和數據類型的轉換.

    ViewUtil定義了和視圖操作相關的一些方法,如取上下文路徑、視圖重定向等.CommonUtil則定義了其他一些常用的公共方法,如設置調試模式、獲取遠端IP地址、特殊字符轉義處理等.

    數據庫包db中的類均與數據庫處理相關.其中:ConnectionPoolFactory是用于創(chuàng)建連接池的工廠類;ConnectionPool是數據庫連接池.配置管理器在讀入并解析frame.xml時,實例化連接池工廠,并創(chuàng)建連接池;Dao是一個抽象類,應用程序應當繼承該類以實現(xiàn)自身的各種數據庫訪問操作;DbUtil類提供一系列靜態(tài)方法以執(zhí)行任何SQL查詢操作,使用Record2PojoUtil工具可將數據庫記錄轉換成Java對象.

    核心包core實現(xiàn)整個框架的“控制”(即MVC中的Controller)部分,其中:FrameFilter是派遣過濾器,它被配置到Web容器的web.xml文件中,以截獲客戶端的ServletRequest請求;ConfigureManager即配置管理器,管理frame.xml中的各配置項;ActionItem,ResultItem和DaoItem分別用于其中的Action配置項、結果視圖配置項和Dao配置項;ActionDispatcher對應框架中的Action調度器,對整個HttpServletRequest的請求處理過程進行調度處理.

    活動包action中實現(xiàn)了一些應用程序所必須繼承的基礎類或應當實現(xiàn)的接口,應用程序主要通過這些類使用框架的各項功能.其中:Action類是業(yè)務活動基類,所有繼承該類的類應當在frame.xml中進行配置,并會在框架的依賴注入階段被實例化;Form是所有表單類應繼承的基類,用于接收客戶端提交的數據,表單類也會在依賴注入階段被實例化,并被注入數據;Interceptor和Finalizer分別為攔截器和終結器接口;Pojo類則是應用程序中的簡單對象類.

    3實驗結果與分析

    為驗證所提出的輕量級MVC框架的性能,建立了兩個Web項目,分別采用struts 2框架和所提出的輕量級MVC框架對客戶端的請求進行處理.客戶端通過多線程來模擬并發(fā)連接,每個線程可連續(xù)向服務端發(fā)起多個請求.線程數稱為并發(fā)數;每個線程連續(xù)發(fā)起的請求數稱為每并發(fā)請求數,簡稱請求數.因此,總請求數=并發(fā)數×請求數,客戶端向服務端提交請求的核心代碼如下所示.

    ∥建立一個Socket

    Socket socket=new Socket(InetAddress.getByName(“l(fā)ocalhost”),8080);

    ∥提交的數據

    String para=“username=alice&password=568998”;

    StringBuffer command=new StringBuffer()

    .append(“POST” +path+ “HTTP/1.1 ” )

    .append(“Accept:*/* ”)

    .append(“Content-Type: application/x-www-form-urlencoded ”)

    .append(“HOST:localhost:8080 ”)

    .append(“Connection:Close ”)

    .append(“Content-Length: ”+para.length() + “ ”)

    .append(“ ”+para);

    ∥發(fā)送命令

    BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

    writer.write(command.toString());

    writer.flush();

    ∥接收返回的結果

    BufferedReader reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));

    while (reader.readLine() != null);

    兩個Web項目所構建的服務端接收相同的請求數據(即username=alice&password=123456)并對其進行讀取,然后向客戶端返回相同的jsp響應頁面.

    實驗一的客戶端和服務器采用同一臺主機,該主機的配置如下:CPU為Pentium (R) Dual Core CPU E5200@2.5 GHz,內存3.0 G,操作系統(tǒng)為Windows 7,32位旗艦版 Service Pack 1,Web服務器為Apache Tomcat 6.0.26.

    實驗二的服務端同實驗一,客戶端則為一臺安卓華為C8813手機.華為C8813的主要參數:操作系統(tǒng)為Android OS 4.1,CPU為高通驍龍Snapdragon MSM8625Q雙核1.2 GHz,內存512 M.

    兩個實驗各自的總請求數均為2 500(基本接近Tomcat 6所能接受的并發(fā)連接數的上限),各自測試3種具有代表性的情形:并發(fā)數為1,每并發(fā)連接數為2 500;并發(fā)數為50,每并發(fā)連接數也為50;并發(fā)數為2 500,每并發(fā)連接數為1.第1,3種情形屬于極端情況,中間一種情形代表了普通情況.3種情況下,采用struts 2的服務端和采用文中MVC框架的服務端的平均耗時(每種情形均進行1 000次測試),如表1所示.表1中:T為并發(fā)數;R為請求數.由表1可知:采用輕量級MVC框架的服務端所用時間遠低于采用struts 2的服務端所用時間.

    表1 處理2 500個連接的耗時

    為更清晰地觀察兩個框架的性能區(qū)別,根據表1計算出的兩個框架每秒所能處理的請求數,如表2所示.由表2可知:在客戶端為PC機的情況下,相比于struts 2,采用文中輕量級MVC框架可提升處理請求的能力平均達57.11%;在客戶端為手機的情況下,受限于移動終端的并行處理能力,相比于struts 2,采用文中輕量級MVC框架可提升處理請求的能力小一些,但平均仍達16.64%.

    每秒所能處理的連接數對比,如圖3所示.圖3中:橫軸標識中的T表示并發(fā)數;R表示每并發(fā)請求數.由圖3可以直觀地看出:文中輕量級MVC框架的性能優(yōu)越性.

    (a) PC客戶端 (b) Android客戶端圖3 每秒所能處理的連接數對比Fig.3 Connection processing performance comparison

    從實驗結果可以看出:兩個框架在并發(fā)數和每并發(fā)請求數均衡的普通情況下的處理能力均優(yōu)于各自的極端情況,但是在任何情形下,文中所述框架在性能上均優(yōu)于struts框架.

    表2 每秒處理的請求數和性能比較

    4結束語

    鑒于AOP程序設計和MVC框架在Web應用程序開發(fā)中日益廣泛的應用,而現(xiàn)存的采用Java平臺的MVC框架(如SSH)日益龐大繁雜,提出了一個精簡的輕量級的結合AOP和依賴注入的MVC框架.該框架的成品jar包庫僅有72.1 KB,遠小于SSH和Spring MVC等框架的jar包庫.實驗數據說明:該框架相比于struts 2具有更好的運行性能.另外,該框架已在多個Web和移動應用項目中得到應用.實踐結果證明:該框架能極大地提升應用開發(fā)的效率.最后,增加Web服務支持可以更大地提高框架的通用性,這也是進一步的研究方向.

    參考文獻:

    [1]LI Fangxing,BROADWATER R P.Software framework concepts for power distribution system analysis[J].IEEE Transactions on Power Systems,2004,19(2):948-956.

    [2]CHEN Liyan,GAO Qing.Research on framework developing technology based on MVC[J].Advances in Information Sciences and Service Sciences,2011,3(3):25-31.

    [3]張忻.基于MVC模式的Struts框架在物流管理信息系統(tǒng)中的應用[D].成都:西南交通大學,2005:7-8.

    [4]徐倩穎,楊宗源.面向方面編程的一種新型設計模式[J].華東師范大學學報(自然科學版),2008,2008(1):68-74.

    [5]史玉珍,李波.一種面向方面的UML建模方法研究[J].計算機測量與控制,2009,17(12):2497-2499.

    [6]陳月娟,李慧,劉光遠,等.基于AOP的信息管理系統(tǒng)的研究與實現(xiàn)[J].計算機應用與軟件,2010,27(2):130-132,140.

    [7]卞世暉,李龍澍,陳圣兵,等.基于AOP理念的Struts 2攔截器的研究與應用[J].電子設計工程,2010,18(1):8-9.

    [8]ROBERT C M.敏捷軟件開發(fā):原則、 模式與實踐[M].北京:清華大學出版社,2003:116-118.

    [9]費廷偉,劉淑芬,屈志勇,等.Java反射驅動的規(guī)則引擎技術研究[J].計算機應用,2010,30(5):1324-1326,1330.

    [10]柏銀.基于Struts+Spring+Hibernate多架構的性能分析系統(tǒng)[D].成都:四川大學,2006:26-30.

    (責任編輯: 陳志賢英文審校: 吳逢鐵)

    A Light-Weight MVC Framework Combining

    AOP and Dependency Injection

    JIANG Linmei, LI Guogang, DU Yongqian

    (College of Computer Science and Technology, Huaqiao University, Xiamen 361021, China)

    Abstract:To solve the problem of low performance caused by gradually increased size of the most popular Java MVC(Model-View-Control) frameworks, a novel light-weight MVC framework is presented. In the proposed framework, AOP(Aspect Oriented Programming) technology is used to deal with the cross-cutting business logic, and Inversion-of-Control pattern is adopted to achieve the lowest coupling among modules. Meanwhile, Java reflection technology is used to transfer a database record to a Java object automatically. The experimental results show that although the JAR package of the proposed framework takes only around 70 KB, it not only realizes all the primary functions of the similar frameworks whose size are hundreds of times more massive, but also supports the development of both web application and mobile application with higher execution efficiency.

    Keywords:Java reflection; dependency injection; inversion of control; model view controller; aspect oriented programming; mobile application development

    基金項目:福建省廈門市重大科技計劃項目(3502Z20131019)

    通信作者:姜林美(1976-),男,講師,博士研究生,主要從事網絡安全與網絡應用軟件的研究.E-mail:clough@hqu.edu.cn.

    收稿日期:2014-07-30

    中圖分類號:TP 393.01

    文獻標志碼:A

    doi:10.11830/ISSN.1000-5013.2016.01.0092

    文章編號:1000-5013(2016)01-0092-06

    猜你喜歡
    攔截器表單服務端
    多動能攔截器協(xié)同制導規(guī)律的研究及仿真
    制導與引信(2022年2期)2022-07-22 05:37:54
    英國MARSS公司推出新型反無人機攔截器
    無人機(2022年2期)2022-05-20 06:43:32
    以色列“天鎖”公司展出新式反無人機攔截器
    輕兵器(2022年5期)2022-05-19 00:56:24
    電子表單系統(tǒng)應用分析
    華東科技(2021年9期)2021-09-23 02:15:24
    云存儲中基于相似性的客戶-服務端雙端數據去重方法
    新時期《移動Web服務端開發(fā)》課程教學改革的研究
    消費導刊(2018年8期)2018-05-25 13:19:48
    淺談網頁制作中表單的教學
    在Windows Server 2008上創(chuàng)建應用
    基于Infopath實現(xiàn)WEB動態(tài)表單的研究
    電子世界(2012年24期)2012-12-17 10:49:06
    動態(tài)表單技術在教學管理中的應用*
    亚洲欧美日韩无卡精品| 日韩大尺度精品在线看网址| 丰满人妻熟妇乱又伦精品不卡| 国产av一区二区精品久久| 91字幕亚洲| 国产精品久久久久久久电影 | 日韩精品青青久久久久久| 久久久久免费精品人妻一区二区| 日本三级黄在线观看| 亚洲精品国产一区二区精华液| 老司机午夜福利在线观看视频| 久久九九热精品免费| 久久精品91无色码中文字幕| 99国产精品一区二区蜜桃av| 久久久国产精品麻豆| 欧美性猛交黑人性爽| 成在线人永久免费视频| 亚洲熟妇中文字幕五十中出| 亚洲精品色激情综合| 国产真人三级小视频在线观看| 亚洲欧美日韩无卡精品| 国产主播在线观看一区二区| 色噜噜av男人的天堂激情| 18禁黄网站禁片免费观看直播| 两个人的视频大全免费| 国产爱豆传媒在线观看 | 日本a在线网址| 国产亚洲精品久久久久5区| 一二三四社区在线视频社区8| 中文字幕人成人乱码亚洲影| 悠悠久久av| 国产精品影院久久| 亚洲片人在线观看| 九色成人免费人妻av| 国产成人精品久久二区二区91| 午夜老司机福利片| 亚洲欧美日韩高清在线视频| 国产精品乱码一区二三区的特点| 成人av一区二区三区在线看| 欧美午夜高清在线| 男女视频在线观看网站免费 | 波多野结衣高清无吗| 国产精品一区二区三区四区久久| 我要搜黄色片| 国产精品久久久久久人妻精品电影| 欧美黑人巨大hd| av在线天堂中文字幕| 免费在线观看黄色视频的| 午夜久久久久精精品| 国产乱人伦免费视频| 亚洲自拍偷在线| or卡值多少钱| 免费在线观看黄色视频的| 观看免费一级毛片| 欧美性长视频在线观看| 小说图片视频综合网站| 老熟妇仑乱视频hdxx| 国产精品久久久久久精品电影| 露出奶头的视频| 亚洲一卡2卡3卡4卡5卡精品中文| 欧美一级毛片孕妇| 国内久久婷婷六月综合欲色啪| 国产又黄又爽又无遮挡在线| 一级毛片女人18水好多| 欧美激情久久久久久爽电影| 又黄又爽又免费观看的视频| 成人特级黄色片久久久久久久| 午夜两性在线视频| 91字幕亚洲| 99re在线观看精品视频| 日韩精品免费视频一区二区三区| 深夜精品福利| 国产精品精品国产色婷婷| 在线观看美女被高潮喷水网站 | 久久国产精品影院| 老司机靠b影院| 亚洲 国产 在线| 国产高清激情床上av| 亚洲精品色激情综合| 国产高清视频在线观看网站| 国产精品自产拍在线观看55亚洲| 舔av片在线| 制服丝袜大香蕉在线| 日韩av在线大香蕉| а√天堂www在线а√下载| 亚洲国产欧美人成| 啪啪无遮挡十八禁网站| 亚洲人成77777在线视频| 欧美黑人巨大hd| 波多野结衣高清作品| АⅤ资源中文在线天堂| 久久精品人妻少妇| 亚洲人成网站在线播放欧美日韩| 国产亚洲精品av在线| 欧美日韩瑟瑟在线播放| 国产乱人伦免费视频| 亚洲 国产 在线| 两个人免费观看高清视频| 女生性感内裤真人,穿戴方法视频| or卡值多少钱| 国产精品自产拍在线观看55亚洲| 成人手机av| 欧美3d第一页| 人妻丰满熟妇av一区二区三区| 日韩国内少妇激情av| 动漫黄色视频在线观看| 大型黄色视频在线免费观看| 国产精品一区二区精品视频观看| 手机成人av网站| 两个人的视频大全免费| 国内揄拍国产精品人妻在线| 亚洲av成人av| 一个人免费在线观看的高清视频| 亚洲一码二码三码区别大吗| 亚洲精品中文字幕一二三四区| 欧美成人一区二区免费高清观看 | 国内毛片毛片毛片毛片毛片| 亚洲精品久久国产高清桃花| 亚洲成a人片在线一区二区| 蜜桃久久精品国产亚洲av| 9191精品国产免费久久| 久热爱精品视频在线9| 国产高清视频在线播放一区| 在线视频色国产色| 男人舔女人下体高潮全视频| 久久久久久大精品| 亚洲av熟女| 国产v大片淫在线免费观看| 亚洲精品av麻豆狂野| 亚洲人成网站在线播放欧美日韩| 亚洲av成人不卡在线观看播放网| 日韩精品免费视频一区二区三区| 国产高清视频在线观看网站| 天天添夜夜摸| 69av精品久久久久久| 香蕉国产在线看| 久久香蕉激情| www国产在线视频色| 两个人看的免费小视频| 免费无遮挡裸体视频| 午夜福利18| 长腿黑丝高跟| 亚洲五月天丁香| 在线观看午夜福利视频| 免费在线观看黄色视频的| 色尼玛亚洲综合影院| 亚洲国产欧美网| 精品一区二区三区视频在线观看免费| 中文字幕人成人乱码亚洲影| 午夜福利免费观看在线| 桃红色精品国产亚洲av| 成年女人毛片免费观看观看9| 两个人看的免费小视频| 中文资源天堂在线| 欧美精品啪啪一区二区三区| 色哟哟哟哟哟哟| 国产高清激情床上av| 黄色视频,在线免费观看| www.www免费av| 女人被狂操c到高潮| 看片在线看免费视频| 国内精品一区二区在线观看| 亚洲精品中文字幕在线视频| 无遮挡黄片免费观看| 精品国产美女av久久久久小说| 听说在线观看完整版免费高清| 丝袜人妻中文字幕| 亚洲欧美精品综合久久99| 免费一级毛片在线播放高清视频| 色综合站精品国产| 国产精品日韩av在线免费观看| 给我免费播放毛片高清在线观看| 国产v大片淫在线免费观看| 一区二区三区国产精品乱码| 999久久久精品免费观看国产| 久久亚洲精品不卡| 欧美日韩乱码在线| 后天国语完整版免费观看| 亚洲天堂国产精品一区在线| 不卡av一区二区三区| 国产精品久久久久久亚洲av鲁大| 国产精品免费一区二区三区在线| 老鸭窝网址在线观看| 成年女人毛片免费观看观看9| 一区二区三区国产精品乱码| 麻豆久久精品国产亚洲av| 一a级毛片在线观看| 久久中文字幕一级| 男插女下体视频免费在线播放| 国产v大片淫在线免费观看| 看黄色毛片网站| 国产精品综合久久久久久久免费| 日本 av在线| 免费看美女性在线毛片视频| 国产熟女午夜一区二区三区| 一卡2卡三卡四卡精品乱码亚洲| 黑人操中国人逼视频| 老司机靠b影院| 岛国视频午夜一区免费看| 麻豆av在线久日| 精品久久久久久成人av| 免费无遮挡裸体视频| av在线播放免费不卡| 免费观看人在逋| 美女 人体艺术 gogo| 人妻丰满熟妇av一区二区三区| 中文亚洲av片在线观看爽| 在线观看一区二区三区| 久久久精品欧美日韩精品| 成人av在线播放网站| 高潮久久久久久久久久久不卡| 欧美精品亚洲一区二区| 国产av一区二区精品久久| 在线观看午夜福利视频| 欧美国产日韩亚洲一区| 国产精品乱码一区二三区的特点| 啦啦啦免费观看视频1| 免费人成视频x8x8入口观看| 亚洲男人的天堂狠狠| 亚洲最大成人中文| 亚洲国产看品久久| 亚洲九九香蕉| 最新在线观看一区二区三区| 国产午夜精品论理片| 女同久久另类99精品国产91| 久久精品夜夜夜夜夜久久蜜豆 | 欧美乱妇无乱码| 91老司机精品| 一二三四在线观看免费中文在| 欧美黄色片欧美黄色片| 啪啪无遮挡十八禁网站| 丰满人妻熟妇乱又伦精品不卡| 亚洲国产高清在线一区二区三| 久久99热这里只有精品18| 在线观看免费日韩欧美大片| 一级毛片精品| 三级国产精品欧美在线观看 | 天堂动漫精品| 欧美成狂野欧美在线观看| 91老司机精品| 12—13女人毛片做爰片一| 国产精品爽爽va在线观看网站| 久久久久性生活片| 高潮久久久久久久久久久不卡| 我的老师免费观看完整版| 午夜福利免费观看在线| 热99re8久久精品国产| 91在线观看av| 国产三级在线视频| 亚洲av第一区精品v没综合| 国产精品久久电影中文字幕| 欧美绝顶高潮抽搐喷水| 国产在线观看jvid| 男女视频在线观看网站免费 | 此物有八面人人有两片| 国产一区二区三区在线臀色熟女| 91国产中文字幕| 免费一级毛片在线播放高清视频| 神马国产精品三级电影在线观看 | 欧美绝顶高潮抽搐喷水| 久久这里只有精品中国| 黄片大片在线免费观看| 丰满人妻熟妇乱又伦精品不卡| 亚洲色图av天堂| 88av欧美| 国产高清激情床上av| 亚洲国产欧美一区二区综合| 国产又黄又爽又无遮挡在线| 老汉色∧v一级毛片| 天堂动漫精品| 国产视频内射| 欧美精品亚洲一区二区| 国产高清视频在线观看网站| 欧美乱妇无乱码| 亚洲av成人一区二区三| 97碰自拍视频| 丝袜美腿诱惑在线| e午夜精品久久久久久久| 亚洲成av人片在线播放无| 久久久国产欧美日韩av| 俄罗斯特黄特色一大片| 亚洲第一欧美日韩一区二区三区| 免费无遮挡裸体视频| 九色成人免费人妻av| www国产在线视频色| 日本成人三级电影网站| 亚洲18禁久久av| 男人的好看免费观看在线视频 | 黄色视频不卡| 亚洲欧美激情综合另类| 天天一区二区日本电影三级| 久久婷婷人人爽人人干人人爱| 男插女下体视频免费在线播放| 真人做人爱边吃奶动态| 亚洲自拍偷在线| 免费搜索国产男女视频| 嫁个100分男人电影在线观看| 成年免费大片在线观看| 香蕉久久夜色| 国产一区二区在线观看日韩 | 亚洲成av人片在线播放无| 欧美在线黄色| 丝袜人妻中文字幕| 国产99久久九九免费精品| 黄色 视频免费看| 99国产综合亚洲精品| 校园春色视频在线观看| 亚洲人成网站在线播放欧美日韩| 中文字幕人妻丝袜一区二区| bbb黄色大片| 欧美日本视频| av欧美777| 成人手机av| 亚洲av成人一区二区三| avwww免费| 久久久久国内视频| 看免费av毛片| 男女午夜视频在线观看| 免费搜索国产男女视频| 在线播放国产精品三级| 又紧又爽又黄一区二区| 亚洲男人天堂网一区| 一进一出抽搐动态| 国产精品亚洲美女久久久| 婷婷六月久久综合丁香| 日韩大码丰满熟妇| 欧美一级a爱片免费观看看 | 欧美日韩福利视频一区二区| 91在线观看av| 午夜a级毛片| 国产真实乱freesex| 在线十欧美十亚洲十日本专区| 丰满的人妻完整版| 一边摸一边抽搐一进一小说| 成人一区二区视频在线观看| 日韩 欧美 亚洲 中文字幕| 久9热在线精品视频| 国产成人精品久久二区二区免费| 亚洲国产精品999在线| 日韩大码丰满熟妇| 色综合婷婷激情| 久久精品aⅴ一区二区三区四区| 制服诱惑二区| 超碰成人久久| 免费电影在线观看免费观看| 热99re8久久精品国产| 色老头精品视频在线观看| 国产欧美日韩精品亚洲av| 成人国语在线视频| 中出人妻视频一区二区| 在线观看免费视频日本深夜| 麻豆国产97在线/欧美 | av免费在线观看网站| 深夜精品福利| 欧美丝袜亚洲另类 | 国产精品久久久久久精品电影| 久久九九热精品免费| 波多野结衣巨乳人妻| 精品久久久久久,| 国产精华一区二区三区| 搡老熟女国产l中国老女人| 免费av毛片视频| 精品无人区乱码1区二区| 女同久久另类99精品国产91| 国产一区二区激情短视频| 欧美日韩亚洲国产一区二区在线观看| 国产精品国产高清国产av| 亚洲美女视频黄频| 亚洲人成电影免费在线| 久久久久国产精品人妻aⅴ院| 亚洲18禁久久av| 国产69精品久久久久777片 | 色哟哟哟哟哟哟| 日韩欧美免费精品| 国产片内射在线| 欧美又色又爽又黄视频| 日韩av在线大香蕉| 国产av麻豆久久久久久久| 国产真人三级小视频在线观看| 两性夫妻黄色片| 欧美 亚洲 国产 日韩一| 亚洲熟妇熟女久久| 非洲黑人性xxxx精品又粗又长| 又黄又爽又免费观看的视频| 国产三级黄色录像| 欧美日韩亚洲国产一区二区在线观看| 中文亚洲av片在线观看爽| 国产精品av久久久久免费| 精品第一国产精品| 国产男靠女视频免费网站| 亚洲精品久久国产高清桃花| 9191精品国产免费久久| 色综合亚洲欧美另类图片| 亚洲人成伊人成综合网2020| 国产精品亚洲一级av第二区| or卡值多少钱| 日韩欧美国产在线观看| 亚洲真实伦在线观看| 国产亚洲av嫩草精品影院| 亚洲va日本ⅴa欧美va伊人久久| 两个人免费观看高清视频| 亚洲成人久久爱视频| 亚洲专区国产一区二区| 中文字幕熟女人妻在线| 亚洲国产精品久久男人天堂| 免费在线观看影片大全网站| 久久精品国产亚洲av高清一级| 亚洲av中文字字幕乱码综合| 黄色女人牲交| 国产视频内射| 悠悠久久av| 日韩av在线大香蕉| 国产亚洲精品av在线| 亚洲精品美女久久久久99蜜臀| 亚洲第一欧美日韩一区二区三区| 悠悠久久av| 亚洲精品中文字幕一二三四区| 日韩欧美国产在线观看| 欧美av亚洲av综合av国产av| 欧美成人一区二区免费高清观看 | 成人一区二区视频在线观看| www日本黄色视频网| 成人手机av| 老熟妇乱子伦视频在线观看| 深夜精品福利| 蜜桃久久精品国产亚洲av| 免费看a级黄色片| av福利片在线| 国产精品亚洲一级av第二区| 国产亚洲精品久久久久5区| 波多野结衣巨乳人妻| 亚洲熟妇中文字幕五十中出| 日本在线视频免费播放| 美女免费视频网站| 可以在线观看的亚洲视频| 在线a可以看的网站| 男女之事视频高清在线观看| 黄色毛片三级朝国网站| 亚洲avbb在线观看| 久久久久亚洲av毛片大全| 禁无遮挡网站| 午夜激情av网站| 成在线人永久免费视频| 两个人看的免费小视频| 一a级毛片在线观看| 久久这里只有精品19| 日韩欧美 国产精品| 十八禁人妻一区二区| 欧美精品啪啪一区二区三区| a级毛片a级免费在线| 成人一区二区视频在线观看| 久久精品国产亚洲av香蕉五月| 成年免费大片在线观看| 成人国产一区最新在线观看| 美女午夜性视频免费| 一级黄色大片毛片| 国产精品av久久久久免费| 一级毛片精品| 美女高潮喷水抽搐中文字幕| 蜜桃久久精品国产亚洲av| 久久人人精品亚洲av| 18禁黄网站禁片午夜丰满| 亚洲成人久久性| 制服诱惑二区| 欧美成人午夜精品| 国产精品久久视频播放| 亚洲欧美日韩东京热| 91成年电影在线观看| 九色国产91popny在线| 日本 av在线| 97超级碰碰碰精品色视频在线观看| 色哟哟哟哟哟哟| a在线观看视频网站| 曰老女人黄片| 国产精品av久久久久免费| 久久 成人 亚洲| 国产精品久久久人人做人人爽| 老司机福利观看| 女人高潮潮喷娇喘18禁视频| 日本一区二区免费在线视频| 一区二区三区高清视频在线| 十八禁人妻一区二区| 国产精品国产高清国产av| 国内毛片毛片毛片毛片毛片| 久久 成人 亚洲| 久久久水蜜桃国产精品网| 最近最新中文字幕大全电影3| 99久久精品热视频| 欧美另类亚洲清纯唯美| 精华霜和精华液先用哪个| 一进一出抽搐动态| ponron亚洲| 黄色片一级片一级黄色片| 色老头精品视频在线观看| 亚洲一码二码三码区别大吗| 在线十欧美十亚洲十日本专区| 天天添夜夜摸| 女人爽到高潮嗷嗷叫在线视频| 精品乱码久久久久久99久播| 中出人妻视频一区二区| 亚洲精品一区av在线观看| 美女 人体艺术 gogo| 午夜福利高清视频| 99精品久久久久人妻精品| 亚洲精品中文字幕在线视频| 欧美乱妇无乱码| 国产一级毛片七仙女欲春2| 桃红色精品国产亚洲av| 亚洲人成网站在线播放欧美日韩| 中亚洲国语对白在线视频| 国产黄片美女视频| 99久久无色码亚洲精品果冻| 国内精品一区二区在线观看| 国产精品av久久久久免费| 韩国av一区二区三区四区| 天天添夜夜摸| 人人妻人人看人人澡| 最近视频中文字幕2019在线8| 中文字幕高清在线视频| 亚洲av日韩精品久久久久久密| 中文字幕高清在线视频| 久久久久久大精品| 免费一级毛片在线播放高清视频| 变态另类丝袜制服| 国产av麻豆久久久久久久| 国产黄a三级三级三级人| 男女那种视频在线观看| 亚洲av美国av| 黄色a级毛片大全视频| 深夜精品福利| 国产又黄又爽又无遮挡在线| 久久中文看片网| 黄色a级毛片大全视频| 五月玫瑰六月丁香| 国产成人av激情在线播放| 亚洲精品美女久久av网站| 国产精品电影一区二区三区| 床上黄色一级片| 精品久久久久久久人妻蜜臀av| 久久久久久国产a免费观看| 国产av麻豆久久久久久久| 久久久久久大精品| 看黄色毛片网站| av在线天堂中文字幕| 又黄又粗又硬又大视频| 性色av乱码一区二区三区2| 日韩精品中文字幕看吧| 一级片免费观看大全| 白带黄色成豆腐渣| 一边摸一边抽搐一进一小说| 亚洲熟女毛片儿| tocl精华| 少妇粗大呻吟视频| 无人区码免费观看不卡| 国产三级在线视频| 91麻豆av在线| 国产av一区二区精品久久| 伦理电影免费视频| 久久久久久久久久黄片| xxx96com| 天堂√8在线中文| 人妻丰满熟妇av一区二区三区| 国产欧美日韩精品亚洲av| 亚洲精品av麻豆狂野| 午夜福利免费观看在线| 亚洲一区二区三区不卡视频| 亚洲欧美一区二区三区黑人| 色老头精品视频在线观看| 母亲3免费完整高清在线观看| 小说图片视频综合网站| 禁无遮挡网站| 欧美一区二区精品小视频在线| 非洲黑人性xxxx精品又粗又长| 村上凉子中文字幕在线| 老司机福利观看| 久久99热这里只有精品18| xxx96com| 欧美一区二区国产精品久久精品 | 亚洲成人久久性| 精品无人区乱码1区二区| 亚洲欧美日韩无卡精品| 欧美中文综合在线视频| 国产蜜桃级精品一区二区三区| 91大片在线观看| 十八禁网站免费在线| 午夜日韩欧美国产| 性色av乱码一区二区三区2| 老司机在亚洲福利影院| 一本久久中文字幕| 999久久久精品免费观看国产| 国产成人aa在线观看| 在线视频色国产色| 丰满人妻熟妇乱又伦精品不卡| 国产精品免费一区二区三区在线| 亚洲欧美日韩高清在线视频| 90打野战视频偷拍视频| 免费在线观看视频国产中文字幕亚洲| 夜夜爽天天搞| 国产99白浆流出| 国产成人av教育| 精华霜和精华液先用哪个| 国产片内射在线| 久久精品影院6| 香蕉久久夜色| 国产精品久久久久久人妻精品电影| 变态另类成人亚洲欧美熟女| 久久九九热精品免费| 久久欧美精品欧美久久欧美| 成人亚洲精品av一区二区| 丰满人妻一区二区三区视频av | 亚洲精品在线观看二区| 中文字幕精品亚洲无线码一区| 99re在线观看精品视频| 久久午夜综合久久蜜桃| 久久香蕉国产精品|