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

    一種基于ES2SH框架的Java EE應用架構

    2018-11-16 09:11:32歐陽宏基宋笑雪
    實驗室研究與探索 2018年10期
    關鍵詞:表示層配置文件架構

    歐陽宏基, 李 紅,2, 宋笑雪

    (1. 咸陽師范學院 計算機學院, 陜西 咸陽 712000; 2. 西安電子科技大學 智能感知與圖像理解教育部重點實驗室, 西安 710071)

    0 引 言

    基于框架的軟件復用是目前應用系統(tǒng)開發(fā)所采用的主流技術,框架提供了良好的基礎結構,只要按照框架的約定進行“填充式”開發(fā)即可獲得穩(wěn)定性高、擴展性強的軟件成品[1-2]。傳統(tǒng)Java EE應用以企業(yè)級(Enterprise JavaBean,EJB)框架為主進行構建,具有依賴性高、開發(fā)難度大、交互體驗差、部署復雜、難于維護等缺點[3-4]。針對這些問題,開源的輕量級框架應用而生,其中以Struts、Spring、Hibernate、Mybatis等最具代表性。輕量級框架具有無侵入式、應用編程接口(Application Programming Interface,API)易于使用、配置簡單、開源等優(yōu)點,允許使用框架的部分技術進行系統(tǒng)局部功能開發(fā);同時不同框架之間允許集成,可充分發(fā)揮每種框架的優(yōu)勢而完成系統(tǒng)整體功能的開發(fā)。

    本文研究了目前主流的Easy UI、Struts2、Spring、Hibernate等框架。在分析它們各自優(yōu)點的基礎上,提出基于ES2SH框架的Java EE應用架構。該架構利用Easy UI創(chuàng)建表示層,Struts2創(chuàng)建控制層,采用JavaScript對象標記(JavaScript Object Notation ,JSON)[5]作為表示層與控制層之間傳輸數(shù)據(jù)的格式。利用Hibernate創(chuàng)建數(shù)據(jù)持久層,通過Spring管理控制層與業(yè)務層、業(yè)務層與持久層之間組件的依賴關系,采用可擴展標記語言(eXtensible Markup Language,XML)文件+注解的方式進行Struts2、Spring和Hibernate的集成。將該架構應用到高等院校目標考核管理系統(tǒng)的設計與實施中,詳細描述了該架構應用的關鍵技術,為Java EE應用的開發(fā)提供了一定的參考價值。

    1 相關技術

    Easy UI是支持超文本標記語言(HyperText Markup Language,HTML)5標準的JavaScript框架,提供了豐富的用戶接口(User Interface,UI)組件支持Web應用的富客戶端效果,支持異步的 JavaScript 和 XML (Asynchronous JavaScript and XML,Ajax)請求與響應,兼容JSON格式的數(shù)據(jù)傳輸,具有良好的瀏覽器兼容性、開源、體積小、易于掌握等優(yōu)點[6]。Struts2是 Web開發(fā)框架,它利用核心控制器StrutsPrepareAndExecutorFilter和配置文件,完成了視圖、Action控制器和模型之間的分離[7-8]。Spring 是一個基于控制反轉(Inversion of Control,IOC)容器和面向方面編程(Aspect Oriented Programming,AOP)編程的輕量級框架。其中,IOC容器是一個Bean工廠,用來創(chuàng)建對象并管理對象之間的依賴關系[9];AOP能夠將系統(tǒng)業(yè)務邏輯與公共服務模塊相分離,以橫切關注點集中管理公共服務模塊[10],在系統(tǒng)運行時通過動態(tài)代理以正交方式織入業(yè)務邏輯。Hibernate是對Java數(shù)據(jù)庫連接(Java DataBase Connectivity,JDBC)的輕量級封裝,能夠完成實體對象與數(shù)據(jù)庫表、對象屬性與表字段、對象關聯(lián)與表關聯(lián)之間的轉換。同時提供了功能強大的Hibernate查詢語言(Hibernate Query Language,HQL),允許開發(fā)人員以面向對象方式操作關系型數(shù)據(jù)庫[11-12]。注解是Java的一種元數(shù)據(jù),它可以聲明在包、類、字段、方法、局部變量、方法參數(shù)等的前面,主要用來生成文檔、跟蹤代碼的依賴性從而代替配置文件、編譯時語法檢查等[13]。

    2 ES2SH架構

    2.1 ES2SH架構模型

    根據(jù)分層模型,基于上述框架建立滿足模型視圖控制器(Model View Controller,MVC)模式[14]的5層Java EE應用架構模型,如圖1所示。表示層由Easy UI、Java服務器端頁面(Java Server Page,JSP)和Struts2標簽組成,通過表示層發(fā)送的請求統(tǒng)一由控制層的核心控制器接收,核心控制器根據(jù)配置文件將請求轉發(fā)到某個具體的Action組件。Action得到業(yè)務邏輯層的執(zhí)行結果后,將要呈現(xiàn)給表示層的數(shù)據(jù)封裝成JSON格式,通知核心過濾器調用視圖響應用戶請求。業(yè)務邏輯層通過Service接口向Action組件提供服務,具體的業(yè)務邏輯處理和計算由Service對象完成,Service對象由Spring IOC容器管理。業(yè)務邏輯運算過程中需要的持久化數(shù)據(jù)通過持久層獲取。數(shù)據(jù)持久層由數(shù)據(jù)訪問對象(Data Access Object,DAO)模式與Hibernate框架搭建,DAO接口定義持久化邏輯并作為業(yè)務邏輯層訪問的入口,DAO對象封裝Hibernate通過映射文件完成持久化對象(Persistent Object,PO)與數(shù)據(jù)存儲層之間的交互,DAO對象由Spring IOC容器管理。數(shù)據(jù)存儲層負責存儲應用系統(tǒng)所需要長久保存的數(shù)據(jù)以及之間的關聯(lián)關系,通過觸發(fā)器和存儲過程完成相關的匯總、統(tǒng)計計算。

    圖1 S2SH框架分層架構

    從圖1可以看出,ES2SH架構很好實現(xiàn)了各層的解耦合,層與層之間通過接口進行方法的調用,使得上層的實現(xiàn)不依賴于下層的變化而變化,很好地滿足了面向對象設計的“開-閉”原則。同時,相鄰層之間能直接“通信”,間接層之間不能直接“通信”,很好地滿足了面向對象設計的“迪米特法則”。

    2.2 ES2SH框架的集成

    ES2SH框架的集成主要是Struts2、Spring和Hibernate這三者之間的集成。具體集成思路是:以Spring為核心,向下整合Hibernate完成數(shù)據(jù)持久化操作;向上整合Struts2完成控制邏輯,分離數(shù)據(jù)顯示與業(yè)務處理。本文采用XML配置文件+注解的方式進行框架整合和系統(tǒng)開發(fā),其中基礎配置部分采用XML文件,包括Struts2、Spring、Hibernate的核心配置文件以及持久化類的映射文件。開發(fā)部分中的依賴關系采用注解,依賴關系體現(xiàn)在業(yè)務邏輯層對持久層的依賴、控制層對業(yè)務邏輯層的依賴。

    2.2.1Spring與Hibernate整合

    首先,定義Hibernate配置文件-Hibernate.config.xml。然后,在Spring配置文件中定義SessionFactory,在SessionFactory中配置數(shù)據(jù)庫連接池,可以實現(xiàn)數(shù)據(jù)庫連接對象的復用,提高訪問效率。同時,把Hibernate.config.xml文件注入給Spring,通過LocalSessionFactory的configLocation屬性用來讀取Hibernate配置文件。在Spring配置文件中定義事務管理器,由Spring控制Hibernate的事務。持久化邏輯中不用考慮事務相關的代碼,提高了開發(fā)效率。最后,在Spring配置文件中定義注解掃描,進行此項配置后,在應用開發(fā)部分就可采用注解方式進行整合。

    2.2.2Spring與Struts2整合

    Spring與Struts2框架集成有3種方案[15-16],本文采用將Struts2的Action組件納入Spring IOC容器管理的方法進行集成。因為該方法充分利用了IOC依賴注入的原理,通過IOC容器獲取Action組件,避免了Struts2 API與Spring API的緊密耦合。這兩者框架的整合不需要在Spring配置文件中進行配置,只需導入Struts2框架提供支持Spring 的插件包,并在Action類中加入@Controller和@Scope注解即可。

    2.2.3使用的注解

    開發(fā)部分用到的注解如表1所示,使用注解后,不用在 XML配置文件中顯式使用 進行Bean 的配置。Spring 在容器初始化時將自動掃描 base-package 指定的包及其子包下的所有 class文件,加了注解的類都納入IOC容器管理。

    3 ES2SH架構在目標考核管理系統(tǒng)中的應用

    3.1 目標考核系統(tǒng)簡介

    根據(jù)上述ES2SH框架的Java EE架構和整合方法,設計并實現(xiàn)了咸陽師范學院目標考核管理系統(tǒng)。目標考核系統(tǒng)是采用計算機與網(wǎng)絡技術所實現(xiàn)的目標考核工作的管理信息系統(tǒng)。該系統(tǒng)的主要功能是:學校相關職能部門在發(fā)展規(guī)劃處的領導下,按年度、分指標對二級學院下達目標責任;二級學院教學秘書、各教師、輔導員等在自然年度內(nèi)按指標要求,錄入相關任務完成的具體信息;各職能部門在對錄入的信息審核后,根據(jù)指標分值和完成情況計算各二級學院的得分情況,根據(jù)得分高低來判斷各二級學院本年度任務完成的情況,為本年度的獎懲和來年目標任務的下達提供一定的參考。通過該系統(tǒng)體現(xiàn)了目標考核工作的公平、客觀、公開、反饋、嚴格、獎懲等原則,對全校教職工的工作具有良好的引導和激勵作用,促進了各項指標的如期實現(xiàn)。系統(tǒng)角色包括教師、各二級學院管理員、二級學院院長、各職能部門管理員、各職能部門領導、校領導和系統(tǒng)管理員。功能模塊如圖2所示。

    表1 用到的注解

    圖2 目標考核系統(tǒng)功能模塊

    3.2 領域模型設計

    領域模型設計主要是從面向對象角度,根據(jù)需求分析提取出系統(tǒng)的實體類、實體類之間的關系、業(yè)務對象和值對象。Hibernate會根據(jù)映射文件將實體類及其關系自動生成數(shù)據(jù)庫表,因此領域模型設計不再以傳統(tǒng)數(shù)據(jù)庫E-R設計為主。業(yè)務對象和值對象與數(shù)據(jù)庫無關,前者負責業(yè)務計算,后者負責在持久層與業(yè)務層、控制層與表示層之間傳遞數(shù)據(jù)。值對象中的屬性可能是某個或幾個實體類屬性的子集,這取決于業(yè)務層計算和表示層數(shù)據(jù)顯示的需要。 本系統(tǒng)設計的實體類一共有52個,分別表示用戶、職能部門賬戶、角色、權限、教材、專著、科研項目、科研論文、科研獎勵、部門、崗位、課程、班級、綜合指標、業(yè)績指標、指標下達、指標完成和指標得分等。鑒于篇幅限制,以指標管理模塊的綜合指標為例,實體類及其聯(lián)系如圖3所示。IndexLevelOne表示1級指標,IndexLevelTwo表示2級指標,IndexLevelThree表示3級指標。1級與2級指標之間是一對多關系,2級與3級指標是一對多關系。AssignTask表示目標任務,由各職能部門給各二級學院下達目標任務時使用。TaskDetail表示目標任務完成的具體信息,由各二級學院教學秘書和教師角色按照3級指標提交任務完成信息時使用。TaskSubtotal表示審核通過的任務信息,審核通過后計算對應3級指標的實際得分和超額得分,供按2級指標和1級指標統(tǒng)計某個學院得分時使用。

    圖3 綜合指標實體類關系

    3.3 數(shù)據(jù)持久層設計

    數(shù)據(jù)持久層負責實體類與數(shù)據(jù)表之間的映射,設計思路是為每個實體類定義對應的DAO接口和DAO實現(xiàn)類[17],DAO接口中封裝該實體類的持久化邏輯并作為業(yè)務邏輯層的訪問入口,DAO實現(xiàn)類封裝Hibernate API具體實現(xiàn)持久化邏輯。通過DAO模式向業(yè)務邏輯層屏蔽數(shù)據(jù)持久化的細節(jié),實現(xiàn)兩者之間的解耦合。

    由于每個實體類都具有保存、刪除、修改、按id查找、查找全部等共性持久化邏輯,為了將這些共性操作合并,同時減少持久化代碼的冗余度,設計了圖4所示的持久層邏輯結構。其中BaseDao是采用泛型技術設

    圖4 持久層邏輯結構

    計的所有DAO的父接口,其中封裝了所有實體類共有的持久化方法。泛型類BaseDaoImp是BaseDao的實現(xiàn)類,通過關聯(lián)的SessionFactory對象來獲取Hibernate的Session對象實現(xiàn)相關的持久化邏輯;在框架集成階段已經(jīng)將SessionFactory對象配置好了,所以通過@Resource注解表明從IOC容器獲取SessionFactory。具體DAO接口從BaseDao繼承,具體DAO接口的實現(xiàn)類繼承BaseDaoImp并添加@Repository注解。BaseDaoImp的部分核心代碼如下所示:

    @Transactional

    public abstract class BaseDaoImp implements BaseDao {

    @Resource

    private SessionFactory sessionFactory;

    private Class clazz;

    public DaoSupportImp()

    { // 使用反射得到T的真實類型

    ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();

    // 獲取第一個類型參數(shù)的真實類型

    this.clazz = (Class) pt.getActualTypeArguments()[0]; }

    // 獲取當前可用的Session

    protected Session getSession() {

    return sessionFactory.getCurrentSession();

    }

    //所有實體類的共性保存方法

    public void save(T entity) {

    getSession().save(entity);

    }

    ….}

    3.4 業(yè)務層設計

    業(yè)務層完成系統(tǒng)核心業(yè)務邏輯,通過Service接口向控制層提供調用接口,Service接口實現(xiàn)類依賴業(yè)務對象完成業(yè)務處理與數(shù)據(jù)計算,調用持久層的DAO接口完成業(yè)務邏輯中需要持久化的部分[18],如圖5所示。

    圖5 業(yè)務層類圖關系

    以下是目標考核分值計算Service實現(xiàn)類的部分源碼,其中業(yè)務方法computeExcessByIndexOne是獲得某年某學院某個綜合1級指標的超額得分。該方法通過@Resource注解從IOC容器獲取所依賴的相關Service對象、DAO對象和業(yè)務對象(Business Object,BO),根據(jù)得到的1級指標完成得分和下達的目標任務得分,通過summaryProcessBO對象得到超額得分,并返回供控制層使用的值對象(Value Object,VO)。@Service注解表明該類對象是業(yè)務層對象,由Spring IOC容器管理。@Transactional注解表明該類中的方法啟用事務操作。

    @Transactional

    @Service("summaryProcessService")

    public class SummaryProcessServiceImp implements SummaryProcessService {

    // 綜合指標計算Service

    @Resource

    private TaskSubtotalService taskSubtotalService;

    // 下達的目標任務Service

    @Resource

    private AssignTaskService assignTaskService;

    //綜合一級指標Service

    @Resource

    private IndexLevelOneService indexLevelOneService;

    //綜合一級指標Dao

    @Resource

    private IndexLevelOneDao levelOneDao;

    //目標考核分值計算Dao

    @Resource

    private SummaryProcessDao summaryProcessDao;

    //目標考核分值計算BO

    @Resource

    private SummaryProcessBO summaryProcessBO;

    ………………

    public List com-pute-ExcessByIndexOne(int year,long deptId, long oneId)

    {

    // 綜合指標得分

    float synthesizeScore;

    // 超額得分

    float excessScore;

    List listVo = new ArrayList< TaskSubtotalByIndexOneVO>();

    // 查找某院系某年某個一級指標的得分

    TaskSubtotalByIndexOneVO oneVO = taskSubtotalService.getSubtotalByYearDeptOneId(year, deptId, oneId);

    // 某年某學院某個一級指標的得分

    synthesizeScore = oneVO.getScore();

    //獲取某年某學院某個一級指標的任務下達分

    float assignScore = assignTaskService.get-AssignTask-ScoreByAcceptDeptIndexOne(year, deptId, oneId);

    //通過BO對象計算超額得分, 并修正綜合指標得分存放到listVO中

    excessScore=summaryProcessBO.getExcessScore(synthesizeScore, assignScore);

    TaskSubtotalByIndexOneVO vo = new TaskSubtotal-ByIndexOneVO();

    vo.setIndexOneId(oneId);

    vo.setIndexOneName(oneVO.getIndexOneName());

    vo.setDepartmentName(oneVO.getDepartmentName());

    vo.setScore(excessScore);

    listVo.add(vo);

    return listVo;

    }

    3.5 控制層設計

    控制層接收表示層的請求和數(shù)據(jù),依據(jù)Struts2配置文件調用相關Action處理請求。所以配置文件和Action組件是該層設計的重點。本文將配置文件分為兩種:核心配置文件(struts.xml)和各模塊對應的配置文件。首先,引入struts2-json-plugin.jar包,在struts.xml中定義抽象package繼承json-default,支持Action返回JSON格式數(shù)據(jù)到表示層,其他配置文件的package繼承當前package。然后,在該package中配置自定義攔截器棧、默認Action、全局Result并引入各模塊對應的配置文件。在自定義攔截器棧中新增4個攔截器,分別是權限驗證攔截器、Session失效攔截器、日志記錄攔截器和異常攔截器。最后,在其他配置文件中定義相關Action和表示層的映射關系。

    由于每個模塊在控制層都具備一些共同的操作,為了節(jié)省代碼量,設計了如圖6所示的Action組件類圖。其中,BaseAction是每個模塊對應Action的直接父類,它繼承ActionSupport類,使當前Action具備數(shù)據(jù)校驗、序列化、國際化和默認處理用戶請求等功能,從而簡化Action的開發(fā)。通過泛型ModelDriven接口獲取表示層傳遞過來的數(shù)據(jù),利用ModelDrivenInterceptor攔截器將這些參數(shù)封裝成實體對象(屬性Model表示)并壓入ValueStack,便于Action調用。pageSize和pageNum用來表示分頁操作的頁數(shù)和頁碼。通過@Resource注解定義所有業(yè)務層對應的Service接口。在構造方法中通過反射獲取屬性Model對應的真實類型。具體某個模塊對應的Action繼承BaseAction后,加入@Controller和@Scope("protoType")注解并定義供表示層調用相關的方法。

    圖6 Action組件類圖關系

    3.6 表示層設計

    表示層與用戶進行數(shù)據(jù)交互,接收用戶請求并響應。本系統(tǒng)中表示層主要由Struts 標簽、JSP頁面、Div、層疊樣式表(Cascading Style Sheets,CSS) 和Easy UI構成,通過VO對象由表示層向控制層傳遞請求數(shù)據(jù),采用JSON由控制層向表示層傳遞響應數(shù)據(jù)。這樣做避免了顯示邏輯與控制層Java代碼的耦合,增強了表示層的重用性,提高了用戶體驗,便于后期測試和維護。以發(fā)展規(guī)劃處管理員角色進入系統(tǒng)后所呈現(xiàn)的主頁面為例,詳細說明表示層的實現(xiàn),如圖7所示。

    首先,創(chuàng)建JSP頁面通過taglib指令引入Struts2標簽庫,通過Script標簽引入Easy UI對應的JS文件。然后,利用CSS+Div進行頁面布局,通過Easy UI標簽提供數(shù)據(jù)的輸入和顯示。最后,創(chuàng)建JS文件完成對應Easy UI控件的編程,并以Ajax方式發(fā)送請求到控制層的Action。圖7左側是利用Div創(chuàng)建的用于顯示登錄用戶權限的菜單,通過Struts2的〈s:iterator〉、〈s: property〉、〈s:if〉和〈s:else〉等標簽動態(tài)的讀取存放在Session中的用戶權限信息,點擊對應的權限后通過自定義的addPanel函數(shù)在主框架中添加一個頁面,該面板中利用Easy UI的datagrid控件顯示從控件層返回的JSON數(shù)據(jù),流程如圖8所示。顯示效果如圖7右側部分,通過Ajax請求方式,實現(xiàn)了頁面的局部刷新,提高了用戶瀏覽體驗。

    圖7 發(fā)展規(guī)劃處管理員角色主頁面

    圖8 Ajax方式發(fā)送請求的流程

    4 結 語

    本文對Easy UI、Struts2、Spring和Hibernate框架進行分析的基礎上,提出了基于ES2SH框架的Java EE應用架構。以Spring為“橋梁”實現(xiàn)了架構的集成,詳細描述了集成的原理和實現(xiàn)過程。將ES2SH架構應用于某學院目標考核管理系統(tǒng)的開發(fā)實踐中,給出了各層的設計思想與核心代碼。目前該系統(tǒng)已在學校各職能部門、二級學院和全體教師之間展開運行,全面提升了學校目標考核工作的信息化水平,取得了較好的滿意度,表明本文所提出的Java EE架構切實有效。

    猜你喜歡
    表示層配置文件架構
    基于FPGA的RNN硬件加速架構
    提示用戶配置文件錯誤 這樣解決
    功能架構在電子電氣架構開發(fā)中的應用和實踐
    汽車工程(2021年12期)2021-03-08 02:34:30
    搭建簡單的Kubernetes集群
    互不干涉混用Chromium Edge
    基于Spring的企業(yè)級Web項目架構設計研究
    軟件(2019年6期)2019-10-08 06:27:21
    忘記ESXi主機root密碼怎么辦
    LSN DCI EVPN VxLAN組網(wǎng)架構研究及實現(xiàn)
    電信科學(2017年6期)2017-07-01 15:45:17
    ASP.NET三層構架解析
    基于SSH框架科研管理系統(tǒng)的設計
    乱人伦中国视频| 久久国产精品大桥未久av| av有码第一页| 国产午夜精品久久久久久| 欧美日韩亚洲高清精品| 婷婷精品国产亚洲av在线 | 在线观看66精品国产| 搡老岳熟女国产| 免费黄频网站在线观看国产| 女警被强在线播放| 老司机靠b影院| 乱人伦中国视频| 午夜福利免费观看在线| 在线天堂中文资源库| 亚洲一区二区三区欧美精品| 欧美av亚洲av综合av国产av| 精品亚洲成a人片在线观看| 黄色 视频免费看| 伊人久久大香线蕉亚洲五| 日韩制服丝袜自拍偷拍| 国产不卡一卡二| 80岁老熟妇乱子伦牲交| 99国产极品粉嫩在线观看| 老司机深夜福利视频在线观看| 又黄又粗又硬又大视频| 亚洲专区字幕在线| 亚洲黑人精品在线| 乱人伦中国视频| 久久国产精品影院| 在线看a的网站| 天天躁日日躁夜夜躁夜夜| 操美女的视频在线观看| 免费看十八禁软件| 三级毛片av免费| 在线av久久热| 午夜精品在线福利| 国产成人免费观看mmmm| 在线观看日韩欧美| 十八禁人妻一区二区| 9色porny在线观看| 中文字幕人妻熟女乱码| 亚洲综合色网址| 国产精品免费大片| 99精品在免费线老司机午夜| 99国产精品一区二区三区| 啦啦啦 在线观看视频| 99国产精品免费福利视频| 国产精品秋霞免费鲁丝片| 久久国产精品人妻蜜桃| 午夜福利免费观看在线| 午夜激情av网站| 欧美日韩福利视频一区二区| 欧美一级毛片孕妇| 中文字幕av电影在线播放| 亚洲专区字幕在线| 超碰97精品在线观看| 久久精品国产a三级三级三级| 亚洲成人免费av在线播放| 午夜福利视频在线观看免费| 国产一区在线观看成人免费| 亚洲男人天堂网一区| 欧美午夜高清在线| 90打野战视频偷拍视频| 久久久久久久精品吃奶| 亚洲五月婷婷丁香| 在线观看日韩欧美| 高潮久久久久久久久久久不卡| 久久久久久久久免费视频了| 国产99白浆流出| 香蕉国产在线看| 国产精品1区2区在线观看. | 亚洲欧美日韩高清在线视频| 国产成+人综合+亚洲专区| 亚洲专区国产一区二区| 一级毛片高清免费大全| 亚洲熟女精品中文字幕| 免费在线观看亚洲国产| 亚洲人成伊人成综合网2020| 国产成人免费观看mmmm| 国产精品欧美亚洲77777| 视频在线观看一区二区三区| 久久久久久人人人人人| 欧美成狂野欧美在线观看| 另类亚洲欧美激情| 99热网站在线观看| 久久国产精品男人的天堂亚洲| 国产成人免费无遮挡视频| tube8黄色片| 国产麻豆69| 欧美性长视频在线观看| 俄罗斯特黄特色一大片| 国产免费男女视频| 欧美日韩瑟瑟在线播放| 韩国精品一区二区三区| 色婷婷久久久亚洲欧美| av中文乱码字幕在线| 国产在线一区二区三区精| 纯流量卡能插随身wifi吗| 91成人精品电影| 在线免费观看的www视频| 欧美老熟妇乱子伦牲交| 母亲3免费完整高清在线观看| 亚洲人成电影免费在线| 亚洲人成伊人成综合网2020| 天天躁日日躁夜夜躁夜夜| 亚洲三区欧美一区| 成年人午夜在线观看视频| 亚洲熟妇中文字幕五十中出 | 成人手机av| 99热国产这里只有精品6| 欧美国产精品va在线观看不卡| 久久精品国产亚洲av高清一级| 亚洲熟妇熟女久久| 国产一区二区三区在线臀色熟女 | 亚洲视频免费观看视频| 久久香蕉国产精品| 午夜成年电影在线免费观看| 亚洲av片天天在线观看| 亚洲精品国产区一区二| av电影中文网址| 手机成人av网站| 女同久久另类99精品国产91| 午夜免费鲁丝| 日韩欧美国产一区二区入口| 久久久水蜜桃国产精品网| 亚洲九九香蕉| 成人国语在线视频| 精品卡一卡二卡四卡免费| 女同久久另类99精品国产91| 高清视频免费观看一区二区| 中国美女看黄片| 国产区一区二久久| 久久精品国产综合久久久| 在线观看66精品国产| 久久香蕉精品热| 欧美av亚洲av综合av国产av| 黑丝袜美女国产一区| 在线天堂中文资源库| 女人高潮潮喷娇喘18禁视频| 18禁观看日本| 亚洲第一青青草原| 成在线人永久免费视频| 久久久精品国产亚洲av高清涩受| 欧美大码av| 美女国产高潮福利片在线看| 欧美精品高潮呻吟av久久| 国产欧美亚洲国产| 制服诱惑二区| 操出白浆在线播放| 伦理电影免费视频| 人妻久久中文字幕网| 久久久久久久精品吃奶| 欧美黄色淫秽网站| 日日夜夜操网爽| 精品少妇一区二区三区视频日本电影| 另类亚洲欧美激情| 亚洲av熟女| 国产成人精品在线电影| 亚洲在线自拍视频| 国产深夜福利视频在线观看| 精品午夜福利视频在线观看一区| 夜夜爽天天搞| 亚洲男人天堂网一区| 亚洲av美国av| 日本精品一区二区三区蜜桃| 老汉色∧v一级毛片| 久久人人97超碰香蕉20202| 亚洲午夜精品一区,二区,三区| 18禁黄网站禁片午夜丰满| 久久国产精品人妻蜜桃| 国产av精品麻豆| 久久中文字幕一级| 最近最新中文字幕大全免费视频| 90打野战视频偷拍视频| 欧美激情高清一区二区三区| 在线免费观看的www视频| 国产在线一区二区三区精| 精品国产美女av久久久久小说| 午夜久久久在线观看| 在线观看午夜福利视频| 亚洲av欧美aⅴ国产| 中文字幕制服av| 岛国毛片在线播放| 亚洲精品久久成人aⅴ小说| 国产野战对白在线观看| 日韩欧美一区视频在线观看| 亚洲男人天堂网一区| 国产成人精品在线电影| 色播在线永久视频| 一级,二级,三级黄色视频| 香蕉丝袜av| 亚洲欧美一区二区三区黑人| 巨乳人妻的诱惑在线观看| 国产亚洲欧美精品永久| 91av网站免费观看| 日韩 欧美 亚洲 中文字幕| 亚洲精品国产一区二区精华液| 狠狠狠狠99中文字幕| 男女之事视频高清在线观看| 国产精品一区二区在线观看99| 国产又色又爽无遮挡免费看| 久久天躁狠狠躁夜夜2o2o| av国产精品久久久久影院| 久久这里只有精品19| 丰满人妻熟妇乱又伦精品不卡| 精品国产一区二区三区久久久樱花| 日韩 欧美 亚洲 中文字幕| 欧美精品高潮呻吟av久久| 日本精品一区二区三区蜜桃| 午夜福利在线免费观看网站| 久久久精品免费免费高清| 日韩精品免费视频一区二区三区| 亚洲成人免费电影在线观看| 精品一区二区三区av网在线观看| 啦啦啦免费观看视频1| 交换朋友夫妻互换小说| 午夜福利视频在线观看免费| 91成人精品电影| 丝袜美足系列| 亚洲精品国产精品久久久不卡| 亚洲一区二区三区不卡视频| 高清毛片免费观看视频网站 | 一区二区三区激情视频| 母亲3免费完整高清在线观看| 午夜福利免费观看在线| 国产欧美亚洲国产| 欧美日本中文国产一区发布| 日韩欧美免费精品| 久久99一区二区三区| 国产精品偷伦视频观看了| 日韩大码丰满熟妇| 人人妻人人澡人人看| e午夜精品久久久久久久| 国产精品美女特级片免费视频播放器 | 亚洲伊人色综图| 精品亚洲成a人片在线观看| 国产又爽黄色视频| 两个人免费观看高清视频| 久久精品aⅴ一区二区三区四区| 国产野战对白在线观看| 麻豆乱淫一区二区| 亚洲精品在线观看二区| 国产亚洲精品第一综合不卡| www日本在线高清视频| 欧美乱色亚洲激情| 一进一出抽搐gif免费好疼 | 好看av亚洲va欧美ⅴa在| 中国美女看黄片| 又大又爽又粗| 老司机亚洲免费影院| 美女国产高潮福利片在线看| 一区在线观看完整版| 五月开心婷婷网| 午夜亚洲福利在线播放| 满18在线观看网站| √禁漫天堂资源中文www| 99精国产麻豆久久婷婷| 午夜福利视频在线观看免费| av中文乱码字幕在线| 亚洲av成人不卡在线观看播放网| 激情视频va一区二区三区| 午夜视频精品福利| 十八禁高潮呻吟视频| 激情在线观看视频在线高清 | 午夜免费鲁丝| 91在线观看av| 丝袜美足系列| 美女国产高潮福利片在线看| 变态另类成人亚洲欧美熟女 | 又紧又爽又黄一区二区| 脱女人内裤的视频| 757午夜福利合集在线观看| 亚洲成国产人片在线观看| 在线观看免费午夜福利视频| 日本一区二区免费在线视频| 熟女少妇亚洲综合色aaa.| 午夜免费鲁丝| 岛国在线观看网站| 亚洲精品一卡2卡三卡4卡5卡| 日韩免费av在线播放| 99在线人妻在线中文字幕 | 免费黄频网站在线观看国产| 国产一区二区三区视频了| 好男人电影高清在线观看| 在线观看一区二区三区激情| 欧美黑人欧美精品刺激| 久久精品国产亚洲av香蕉五月 | 高清在线国产一区| 国产成人免费观看mmmm| av片东京热男人的天堂| 亚洲成国产人片在线观看| 人人妻人人添人人爽欧美一区卜| 亚洲中文日韩欧美视频| 黄色成人免费大全| 天天躁夜夜躁狠狠躁躁| 99久久人妻综合| av欧美777| 天堂√8在线中文| 精品国产乱码久久久久久男人| 51午夜福利影视在线观看| 成人黄色视频免费在线看| 欧美日韩福利视频一区二区| 欧美丝袜亚洲另类 | 国产欧美日韩一区二区三| 久久精品国产清高在天天线| 国产区一区二久久| 欧美激情久久久久久爽电影 | 老鸭窝网址在线观看| 欧美另类亚洲清纯唯美| 国产亚洲一区二区精品| 啦啦啦 在线观看视频| 黄色片一级片一级黄色片| 精品卡一卡二卡四卡免费| 涩涩av久久男人的天堂| 亚洲av日韩在线播放| www.精华液| 精品国产亚洲在线| 极品教师在线免费播放| 久久久久精品国产欧美久久久| 亚洲五月色婷婷综合| 亚洲国产看品久久| 大香蕉久久成人网| 精品高清国产在线一区| 国产在线观看jvid| 十八禁人妻一区二区| 黄色毛片三级朝国网站| 亚洲国产精品sss在线观看 | 久久国产乱子伦精品免费另类| 操出白浆在线播放| 亚洲欧美精品综合一区二区三区| 精品国产美女av久久久久小说| 午夜精品久久久久久毛片777| 欧美乱码精品一区二区三区| 亚洲精品一二三| 视频区图区小说| 老司机亚洲免费影院| 一区福利在线观看| 久久这里只有精品19| 欧美日韩瑟瑟在线播放| 一本一本久久a久久精品综合妖精| 1024视频免费在线观看| 91大片在线观看| 韩国精品一区二区三区| 久久精品国产亚洲av高清一级| 亚洲精品乱久久久久久| 午夜两性在线视频| 天天添夜夜摸| 最新美女视频免费是黄的| 久久久久国产精品人妻aⅴ院 | 99热网站在线观看| 日韩免费高清中文字幕av| 激情视频va一区二区三区| 首页视频小说图片口味搜索| 首页视频小说图片口味搜索| 啦啦啦在线免费观看视频4| 中文字幕av电影在线播放| 亚洲成人手机| 国产高清视频在线播放一区| 国产精品免费一区二区三区在线 | 男人的好看免费观看在线视频 | 满18在线观看网站| 久久九九热精品免费| www.精华液| 日韩免费高清中文字幕av| 成人av一区二区三区在线看| 欧美黑人欧美精品刺激| av片东京热男人的天堂| 美女福利国产在线| 一区福利在线观看| 最近最新免费中文字幕在线| 免费久久久久久久精品成人欧美视频| 成人av一区二区三区在线看| 午夜精品久久久久久毛片777| 免费日韩欧美在线观看| 五月开心婷婷网| 少妇猛男粗大的猛烈进出视频| 国产高清激情床上av| 国产成人精品在线电影| 韩国av一区二区三区四区| 国产男女超爽视频在线观看| 日韩免费高清中文字幕av| 美女高潮喷水抽搐中文字幕| 女人精品久久久久毛片| 久久婷婷成人综合色麻豆| 亚洲av日韩在线播放| 中文字幕精品免费在线观看视频| 亚洲av日韩精品久久久久久密| svipshipincom国产片| 国产av一区二区精品久久| 一进一出抽搐动态| 一级毛片高清免费大全| 99国产综合亚洲精品| 久久午夜综合久久蜜桃| 国产精品影院久久| 午夜福利在线观看吧| 男男h啪啪无遮挡| 精品国产美女av久久久久小说| 国产亚洲欧美98| 日韩中文字幕欧美一区二区| 欧美在线一区亚洲| 国产亚洲精品一区二区www | 一区二区日韩欧美中文字幕| 久久久久久亚洲精品国产蜜桃av| 欧美精品啪啪一区二区三区| 人妻一区二区av| av网站在线播放免费| 伊人久久大香线蕉亚洲五| 欧美黑人欧美精品刺激| 成人黄色视频免费在线看| 免费日韩欧美在线观看| 免费高清在线观看日韩| 三级毛片av免费| 老司机亚洲免费影院| 黄片小视频在线播放| 老司机午夜十八禁免费视频| 国产精品免费视频内射| 人人妻人人澡人人爽人人夜夜| 精品第一国产精品| 国产成人系列免费观看| 日韩有码中文字幕| 亚洲午夜精品一区,二区,三区| 亚洲精品国产精品久久久不卡| 欧洲精品卡2卡3卡4卡5卡区| 婷婷成人精品国产| 亚洲av欧美aⅴ国产| 搡老熟女国产l中国老女人| 国产91精品成人一区二区三区| 久久久国产成人精品二区 | 熟女少妇亚洲综合色aaa.| 亚洲精品在线美女| 电影成人av| 怎么达到女性高潮| 人妻 亚洲 视频| 久久久久国内视频| 高清欧美精品videossex| 热99久久久久精品小说推荐| 日韩欧美免费精品| 亚洲av片天天在线观看| 国产精品二区激情视频| 亚洲精品国产一区二区精华液| 丝瓜视频免费看黄片| 嫁个100分男人电影在线观看| 在线十欧美十亚洲十日本专区| 亚洲欧美一区二区三区久久| 国产一卡二卡三卡精品| 少妇的丰满在线观看| 三上悠亚av全集在线观看| 中亚洲国语对白在线视频| 亚洲av片天天在线观看| 欧美激情极品国产一区二区三区| 9色porny在线观看| 精品国产一区二区三区四区第35| 女警被强在线播放| 无遮挡黄片免费观看| 国产成人啪精品午夜网站| 欧美午夜高清在线| 国产成人免费无遮挡视频| 免费高清在线观看日韩| 亚洲色图av天堂| 国产精品偷伦视频观看了| 亚洲专区中文字幕在线| 18禁裸乳无遮挡动漫免费视频| 一a级毛片在线观看| 国产片内射在线| 一本一本久久a久久精品综合妖精| 91精品国产国语对白视频| 亚洲成av片中文字幕在线观看| 午夜久久久在线观看| 91字幕亚洲| 波多野结衣一区麻豆| 一级a爱视频在线免费观看| 欧美激情高清一区二区三区| 精品国产国语对白av| 国产不卡av网站在线观看| av片东京热男人的天堂| 国产精品综合久久久久久久免费 | 99热国产这里只有精品6| 亚洲成人免费电影在线观看| 久久久久久久久久久久大奶| 欧美国产精品va在线观看不卡| 大陆偷拍与自拍| 美女福利国产在线| 亚洲成av片中文字幕在线观看| 国产精品永久免费网站| 天天影视国产精品| x7x7x7水蜜桃| 久久久久久久国产电影| 成人黄色视频免费在线看| 成人特级黄色片久久久久久久| 老鸭窝网址在线观看| 免费久久久久久久精品成人欧美视频| 久久香蕉精品热| 欧美激情极品国产一区二区三区| 亚洲一卡2卡3卡4卡5卡精品中文| 99国产精品99久久久久| 在线视频色国产色| 视频区欧美日本亚洲| 操出白浆在线播放| 热99re8久久精品国产| av不卡在线播放| 国产欧美日韩一区二区三| 老司机福利观看| 亚洲国产精品sss在线观看 | 69精品国产乱码久久久| 麻豆成人av在线观看| 香蕉国产在线看| 精品国产亚洲在线| 久久这里只有精品19| 国产精品影院久久| 欧美中文综合在线视频| 精品视频人人做人人爽| 黑人猛操日本美女一级片| 天堂√8在线中文| 我的亚洲天堂| 国产精品二区激情视频| 精品国内亚洲2022精品成人 | 大香蕉久久网| 亚洲自偷自拍图片 自拍| 成年人黄色毛片网站| 国产日韩欧美亚洲二区| 国产精品永久免费网站| 国产精品九九99| 日日夜夜操网爽| 日韩欧美一区二区三区在线观看 | 三上悠亚av全集在线观看| 香蕉国产在线看| 久久香蕉精品热| 成人黄色视频免费在线看| 悠悠久久av| 99国产精品一区二区蜜桃av | 久久国产精品大桥未久av| 日日摸夜夜添夜夜添小说| 亚洲精品粉嫩美女一区| 黄片播放在线免费| 中文字幕另类日韩欧美亚洲嫩草| 亚洲国产欧美网| 他把我摸到了高潮在线观看| 在线播放国产精品三级| 久久精品熟女亚洲av麻豆精品| 一区在线观看完整版| 国产xxxxx性猛交| 亚洲综合色网址| 亚洲第一av免费看| 夜夜躁狠狠躁天天躁| 欧美老熟妇乱子伦牲交| 国产精品一区二区在线不卡| 久热这里只有精品99| 夜夜夜夜夜久久久久| 亚洲美女黄片视频| 夜夜夜夜夜久久久久| 精品人妻1区二区| 91大片在线观看| 国产不卡av网站在线观看| 成人18禁高潮啪啪吃奶动态图| 一进一出好大好爽视频| 欧美乱码精品一区二区三区| 大陆偷拍与自拍| 少妇猛男粗大的猛烈进出视频| 欧美黑人欧美精品刺激| 淫妇啪啪啪对白视频| 精品国产美女av久久久久小说| 久久国产精品人妻蜜桃| 高清视频免费观看一区二区| 欧美久久黑人一区二区| 久久人妻福利社区极品人妻图片| 一本综合久久免费| 欧美日韩亚洲综合一区二区三区_| 动漫黄色视频在线观看| 欧美色视频一区免费| 三上悠亚av全集在线观看| 欧美精品一区二区免费开放| 老司机靠b影院| 国产精品美女特级片免费视频播放器 | 欧美另类亚洲清纯唯美| 国产免费av片在线观看野外av| 国产aⅴ精品一区二区三区波| 亚洲第一青青草原| 亚洲精品久久午夜乱码| 黄色视频不卡| 亚洲午夜理论影院| 久久香蕉国产精品| 久久国产亚洲av麻豆专区| 女性生殖器流出的白浆| 亚洲欧洲精品一区二区精品久久久| 亚洲伊人色综图| 18禁黄网站禁片午夜丰满| 中文字幕制服av| 热99re8久久精品国产| 国产一区有黄有色的免费视频| 大片电影免费在线观看免费| 欧美黑人精品巨大| 免费av中文字幕在线| 日韩欧美三级三区| 黄色怎么调成土黄色| av有码第一页| 国产精品 欧美亚洲| 一区二区日韩欧美中文字幕| 丰满迷人的少妇在线观看| 男女床上黄色一级片免费看| 亚洲精品久久午夜乱码| а√天堂www在线а√下载 | 精品人妻1区二区| 日韩欧美在线二视频 | cao死你这个sao货| 日韩免费高清中文字幕av| 亚洲av第一区精品v没综合| 午夜福利影视在线免费观看| 99国产综合亚洲精品| 91老司机精品| 精品一品国产午夜福利视频| 亚洲欧美激情综合另类| 欧美黄色片欧美黄色片| 久久 成人 亚洲| 99精国产麻豆久久婷婷| 国产激情欧美一区二区|