精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

在Java EE 6中使用JSF 2.0簡化頁面制作

原創(chuàng)
開發(fā) 后端
Java EE 6中使用了JSF 2.0,即JSR 314規(guī)范。最新的JavaServer Faces視圖聲明語言令創(chuàng)建一個JSF頁面更加容易。本文介紹了新的Facelets,模板,混合組件以及行為監(jiān)聽器,并介紹了JSF 2.0的Ajax支持以及其他的一些新特性。

【51CTO精選譯文】過去幾個星期,51CTO對Java EE 6的新特性進行了一系列介紹。除了Servlet 3.0的特性,Java EE 6也使用了新的JSF 2.0標(biāo)準(zhǔn)。下面我們來看一看JSF 2.0是如何簡化頁面制作并提供Ajax支持的。***,我們對Servlet 3.0和JSF 2.0的新特性進行了總結(jié)。

簡化JSF 2.0頁面制作

JavaServer Faces技術(shù)提供了一個服務(wù)端組件框架,簡化了Java EE應(yīng)用程序用戶界面的開發(fā),其中最顯著的改進是頁面制作,通過使用標(biāo)準(zhǔn)的JavaServer Faces視圖聲明語言(JavaServer Faces View Declaration Language,俗稱Facelets)創(chuàng)建一個JSF頁面更加容易。

Facelets

Facelets是一個強大的輕量級聲明語言,可以使用它展示一個JSF頁面,使用Facelets時,你可以使用HTML風(fēng)格的模板展示一個JSF頁面,也可以構(gòu)建一個組件樹,JSF應(yīng)用程序中的用戶界面通常是由JSF組件構(gòu)成的JSF頁面,F(xiàn)acelets在JSP之上提供了更多優(yōu)點。

在JSP中,Web頁面中的元素是按照漸進順序處理和渲染的,而JSF提供了它自己的處理和渲染順序,這可能會導(dǎo)致不可預(yù)測的行為發(fā)生,F(xiàn)acelets解決了這個問題,通過模板,F(xiàn)acelets也允許代碼復(fù)用,可以大大減少開發(fā)UI的時間,現(xiàn)在Facelets已經(jīng)成為構(gòu)建JSF應(yīng)用程序的***技術(shù)。

Facelets通常是使用XHTML標(biāo)記語言編寫的,因此Facelets是可以跨不同開發(fā)平臺的,下面是Java EE 6教材中提供的JSF頁面的Facelets XHTML代碼部分:

  1. <xml version="1.0" encoding="UTF-8"?> 
  2.            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
  3.            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  4.    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" 
  5.            xmlns:f="http://java.sun.com/jsf/core" 
  6.            xmlns:h="http://java.sun.com/jsf/html" 
  7.            xmlns:ui="http://java.sun.com/jsf/facelets"> 
  8.    <head> 
  9.            <title>Guess Number JSF Application</title> 
  10.    </head> 
  11.    <body> 
  12.       <h:form> 
  13.        <h2> 
  14.        Hi. My name is Duke. I am thinking of a number from <b> 
  15.               <h:outputText value="#{UserNumberBean.minimum}"/> to  
  16.               &nbsp;&nbsp;<b> 
  17.        <h:outputText value="#{UserNumberBean.maximum}"/>.  
  18.        <p> 
  19.          Can you guess it ?  
  20.        </p> 
  21.        <h:graphicImage id="waveImg" url="/wave.med.gif" /> 
  22.        <h:inputText id="userNo" 
  23.              value="#{UserNumberBean.userNumber}"> 
  24.           converterMessage="#{ErrMsg.userNoConvert}"> 
  25.        <f:validateLongRange 
  26.              minimum="#{UserNumberBean.minimum}" 
  27.              maximum="#{UserNumberBean.maximum}"/> 
  28.        </h:inputText> 
  29.        <h:commandButton id="submit" 
  30.              action="success" value="submit" /> 
  31.        <h:message showSummary="true" showDetail="false" 
  32.                   style="color: red;  
  33.                    font-family: 'New Century Schoolbook', serif;  
  34.                    font-style: oblique;  
  35.                    text-decoration: overline"  
  36.                    id="errors1" 
  37.                    for="userNo"/> 
  38.        </h2> 
  39.       </h:form> 
  40.    </body> 
  41.    </html> 
  42.  

頁面渲染效果如圖1所示。

使用Facelets創(chuàng)建的用戶界面 
圖 1 使用Facelets創(chuàng)建的用戶界面

這個Facelets XHTML頁面和普通JSP頁面并沒有多大不同,F(xiàn)acelets支持JSF和JSTL標(biāo)簽庫,它也包括一個Facelets標(biāo)簽庫,支持功能豐富的頁面模板。命名空間聲明xmlns:ui="http://java.sun.com/jsf/facelets"就是針對facelets標(biāo)簽庫的,但這里沒有使用facelets標(biāo)簽庫的標(biāo)簽,facelets也支持統(tǒng)一的表達(dá)式語言。

模板

使用模板,你可以創(chuàng)建一個頁面作為應(yīng)用程序中其它頁面的模板,這樣可以避免多次創(chuàng)建結(jié)構(gòu)類似的頁面,同時也可以統(tǒng)一應(yīng)用程序中多個頁面的視覺風(fēng)格。

Facelets標(biāo)簽庫包括一個模板標(biāo)簽<ui:insert>,為了實施模板化,首先創(chuàng)建一個包括<ui:insert>標(biāo)簽的模板頁面,然后創(chuàng)建一個使用這個模板的客戶端頁面,在客戶端頁面中,使用<ui:composition>標(biāo)簽指定模板,使用<ui:define>標(biāo)簽指定插入到模板中的內(nèi)容。

下面是一個模板頁面的內(nèi)容:

  1. <xml version="1.0" encoding="UTF-8"?> 
  2.    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
  3.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  4.  
  5.    <html xmlns="http://www.w3.org/1999/xhtml" 
  6.          xmlns:ui="http://java.sun.com/jsf/facelets" 
  7.          xmlns:h="http://java.sun.com/jsf/html" 
  8.  
  9.       <head> 
  10.          <title><ui:insert name="title">Page Title</ui:insert</title><body> 
  11.       </head> 
  12.       <body> 
  13.           <div> 
  14.               <ui:insert name="Links"/> 
  15.           </div> 
  16.           <div> 
  17.               <ui:insert name="Data"/> 
  18.          </div> 
  19.       </body> 
  20.    </html> 
  21.  

下面是使用這個模板的客戶端頁面代碼:

  1. <xml version="1.0" encoding="UTF-8"?> 
  2.     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
  3.  
  4.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  5.  
  6.     <html xmlns="http://www.w3.org/1999/xhtml" 
  7.           xmlns:ui="http://java.sun.com/jsf/facelets" 
  8.           xmlns:h="http://java.sun.com/jsf/html" 
  9.      <body> 
  10.        <ui:composition template="/template.xhtml"> 
  11.            This text will not be displayed.  
  12.            <ui:define name="title"> 
  13.                Welcome page  
  14.            </ui:define> 
  15.            <ui:define name="Links"> 
  16.                ... [Links should be here]  
  17.            </ui:define> 
  18.            <ui:define name="Links"> 
  19.                ... [Data should be here]  
  20.            </ui:define> 
  21.        </ui:composition> 
  22.            This text also will not be displayed.  
  23.      </body> 
  24.     </html> 

當(dāng)客戶端調(diào)用這個模板時,它使用標(biāo)題Welcome Page渲染這個頁面,這個頁面顯示了兩部分內(nèi)容,一個顯示客戶端中指定的鏈接列表,另一個顯示客戶端中指定的數(shù)據(jù)。

混合組件

混合組件時JSF中的一個新特性,通過它創(chuàng)建自定義JSF組件會更加容易。你可以使用JSF頁面標(biāo)記和其它JSF組件創(chuàng)建混合組件。在Facelets的標(biāo)注下,任何XHTML頁面都可以變成一個混合組件。此外,混合組件可以有驗證器,轉(zhuǎn)換器和監(jiān)聽器。

創(chuàng)建好混合組件后,你可以將它保存到庫中,以后有需要時就可以調(diào)用了。

讓我們創(chuàng)建一個渲染為登錄面板的混合組件,用戶登錄時,組件反饋一個登錄事件,如圖2所示。

登錄面板混合組件 
圖 2 登錄面板混合組件

下面是混合組件的源代碼:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3.    <html xmlns="http://www.w3.org/1999/xhtml" 
  4.       xmlns:h="http://java.sun.com/jsf/html" 
  5.       xmlns:f="http://java.sun.com/jsf/core"> 
  6.       xmlns:f="http://java.sun.com/jsf/facelets"> 
  7.       xmlns:composite="http://java.sun.com/jsf/composite"> 
  8.  
  9.    <h:head> 
  10.    <title>This content will not be displayed in the rendered output</title> 
  11.    </h:head> 
  12.  
  13.    <h:body> 
  14.     <composite:interface> 
  15.            <composite:actionSource name="loginEvent"/> 
  16.     </composite:interface> 
  17.     <composite:implementation> 
  18.      <table> 
  19.     <tr> 
  20.        <td>Username:  <h:inputText id="username" /> </td> 
  21.     </tr> 
  22.     <tr> 
  23.        <td>Password: <h:inputSecret id="password" /></td> 
  24.     </tr> 
  25.     <tr> 
  26.        <td><h:commandButton value="Login" id="loginEvent" /></td> 
  27.     </tr> 
  28.      </table> 
  29.     </composite:implementation> 
  30.    </h:body> 
  31.    </html> 
  32.  

xmlns:composite="http://java.sun.com/jsf/composite"聲明了混合UI組件的命名空間,<composite:interface>標(biāo)簽聲明混合組件的使用契約,<composite:attribute>標(biāo)簽在使用契約中指定<composite:actionSource>標(biāo)簽,這個表示組件可以暴露一個事件,讓使用這個混合組件的頁面可以輕松訪問它。
<composite:implementation>標(biāo)簽定義了混合組件的實現(xiàn),這里的實現(xiàn)是一個簡單的表,它包括用戶名、密碼和登錄按鈕JSF組件。

為了讓混合組件可用,將代碼保存為XHTML文件,將文件放到應(yīng)用程序根目錄下resources目錄的子目錄中即可。子目錄的名字可以采用包含混合組件的資源庫名字,JSF運行時通過向混合組件的標(biāo)簽名后追加.xhtml后綴查找混合組件。例如,如果你將標(biāo)簽命名為loginPanel,那么保存為混合組件的文件名就是loginPanel.xhtml。然后你就可以在Web頁面中使用混合組件了,下面就是一個使用混合組件的Web頁面代碼示例:

  1. <!DOCTYPE html  
  2.    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
  3.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  4.    <html xmlns="http://www.w3.org/1999/xhtml" 
  5.       xmlns:h="http://java.sun.com/jsf/html" 
  6.       xmlns:f="http://java.sun.com/jsf/core" 
  7.       xmlns:ui="http://java.sun.com/jsf/facelets" 
  8.       xmlns:ez="http://java.sun.com/jsf/composite/ezcomp"> 
  9.  
  10.    <head> 
  11.    <title>Example 01>/title> 
  12.    <style type="text/css"> 
  13.    .grayBox { padding: 8px; margin: 10px 0; border: 1px solid #CCC; background-color: #f9f9f9;  }  
  14.    </style> 
  15.    </h:head> 
  16.  
  17.    <h:body> 
  18.      <p>Usage of Login Panel Component</p> 
  19.  
  20.         <ui:debug hotkey="p" rendered="true"/> 
  21.  
  22.      <h:form> 
  23.          <div id="compositeComponent" class="grayBox" style="border: 1px solid #090;"> 
  24.             <ez:loginPanel> 
  25.                 <f:actionListener for="loginEvent" type="example01.LoginActionListener" /> 
  26.  
  27.             </ez:loginPanel> 
  28.          </div> 
  29.      <p><h:commandButton value="reload" /></p> 
  30.  
  31.      <p><h:outputText value="#{loginActionMessage}" /></p> 
  32.      </h:form> 
  33.  
  34.    </h:body> 
  35.    </html> 
  36.  

注意聲明xmlns:ez="http://java.sun.com/jsf/composite/ezcomp",它指定了混合組件的命名空間和前綴,這里的ezcomp是資源目錄的子目錄名,JSF使用下面的約定:所有命名空間URI都以http://java.sun.com/jsf/composite/開頭,使用資源庫的名稱結(jié)束。

<f:actionListener>

標(biāo)簽關(guān)聯(lián)混合組件的行為監(jiān)聽器,標(biāo)簽中的for屬性表示這個監(jiān)聽器是為混合組件上名為loginEvent行為事件準(zhǔn)備的,你需要編寫代碼來處理事件,例如:

  1. import javax.faces.component.UIComponent;  
  2.  import javax.faces.component.ValueHolder;  
  3.  import javax.faces.context.FacesContext;  
  4.  import javax.faces.event.AbortProcessingException;  
  5.  import javax.faces.event.ActionEvent;  
  6.  import javax.faces.event.ActionListener;  
  7.  
  8.  public class LoginActionListener implements ActionListener {  
  9.  
  10.      public void processAction(ActionEvent event) throws AbortProcessingException {  
  11.          FacesContext context = FacesContext.getCurrentInstance();  
  12.          context.getExternalContext().getRequestMap().put("loginActionMessage",  
  13.                  "Login event happened");  
  14.      }  
  15.  }  

#p#

JSF 2.0對Ajax的支持

JSF 2.0天生就支持Ajax,利用Ajax技術(shù),Web應(yīng)用程序在后臺以異步的方式從服務(wù)器獲取數(shù)據(jù)。支持Ajax后,允許頁面局部刷新,允許選擇視圖中的一個組件進行處理而不影響其它組件。

要在JSF中使用Ajax,需要訪問有資源標(biāo)識符的JavaScript資源jsf.js,它存在于javax.faces資源庫中,包含讓JSF與Ajax交互的JavaScript API,JavaScript API由一組標(biāo)準(zhǔn)的JavaScript函數(shù)組成,使JavaServer Faces框架中的Ajax操作變得簡單了,你幾乎不用直接包括這個文件,當(dāng)你使用任何開啟Ajax的標(biāo)簽或組件時,JSF會自動包括它。然后你就可以使用<f:ajax>標(biāo)簽或調(diào)用JavaScript API中的函數(shù)了。

下面是一個使用<f:ajax>標(biāo)簽的示例:

  1. <h:commandButton id="button1"> 
  2.       <f:ajax execute="..." render="..."/> 
  3.    </h:commandButton> 
  4.  

這里的<f:ajax>標(biāo)簽是嵌套在<h:commandButton>標(biāo)簽內(nèi)的,這樣會結(jié)合在execute屬性中指定的Ajax行為和<h:commandButton>標(biāo)簽呈現(xiàn)的命令按鈕,你也可以指定一個event屬性來識別JavaScript DOM事件,如果你不指定event屬性,JSF使用組件的默認(rèn)行為,這里的默認(rèn)行為是onclick,因此JSF結(jié)合execute屬性中指定的Ajax請求和呈現(xiàn)按鈕的onclick事件。用戶點擊該按鈕時,JSF提交Ajax請求給服務(wù)器。

使用<f:ajax>標(biāo)簽的一個好處是不用在頁面中指定載入jsf.js,它會自動為你載入,相比之下,如果你調(diào)用JavaScript API,首先需要使用<h:outputScript>讓jsf.js對當(dāng)前視圖可用,例如:

  1. <f:view contentType="text/html"/> 
  2.      <h:head> 
  3.        <meta... 
  4.        <title... 
  5.      </h:head> 
  6.      <h:body> 
  7.        ...  
  8.        <h:outputScript name="jsf.js" library="javax.faces" target="body"/> 
  9.        ...  
  10.      </h:body> 
  11.      ...  
  12.  

然后才可以使用JavaScript API中的函數(shù)產(chǎn)生Ajax請求。例如,你使用JavaScript函數(shù)jsf.ajax.request向服務(wù)器發(fā)送一個請求,如下面的代碼:

  1. <h:commandButton id="button1" value="submit"> 
  2.    onclick="jsf.ajax.request(this,event);" /> 
  3.  

代碼包括一個<h:commandButton>標(biāo)簽,它呈現(xiàn)為一個按鈕,用戶點擊這個按鈕時,向服務(wù)器提交一個Ajax請求。

Servlet 3.0和JSF2.0中的更多新特性

Servlet 3.0中另一個新特性是允許你使用ServletContext類中的方法通過編程在Web應(yīng)用程序啟動時向其添加Servlet和Servlet過濾器,使用addServlet()方法添加Servlet,使用addFilter()添加Servlet過濾器。結(jié)合可插拔式共享框架特性,Web框架可以在無開發(fā)人員介入的情況下實現(xiàn)自我配置。

#t#此外Servlet 3.0加入了許多安全特性,除了聲明安全外,Server 3.0通過HttpServletRequest接口提供了編程安全,例如,你可以在應(yīng)用程序中使用HttpServletRequest的authenticate()方法執(zhí)行用戶名和密碼的收集,或者使用login()方法指向容器驗證一個非強制請求上下文中的請求調(diào)用者。有關(guān)Servlet 3.0的更多特性,請參閱JSR 315規(guī)范。

JSF 2.0中的一些額外增強與資源如何打包和處理有關(guān),JSF 2.0標(biāo)準(zhǔn)化了打包哪里的資源。所有資源都放在resources目錄或一個子目錄下,資源需要按順序正確地進行渲染,例如CSS文件和JavaScript文件,圖3顯示了Netbeans中的一個JSF項目部分結(jié)構(gòu)及文件,注意其中的resources目錄,CSS和images目錄。

JSF應(yīng)用程序中resources目錄下的資源 
圖 3  JSF應(yīng)用程序中resources目錄下的資源

JSF 2.0也包括顯示和處理資源的API,使用javax.faces.application.Resource類顯示一個資源,使用javax.faces.application.ResourceHandler類創(chuàng)建資源的實例。有關(guān)JSF 2.0的更多信息,請參閱JSR 314規(guī)范。

【51CTO.com譯稿,非經(jīng)授權(quán)請勿轉(zhuǎn)載。合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com,且不得修改原文內(nèi)容。】

原文:Introducing the Java EE 6 Platform 作者:Ed Ort

責(zé)任編輯:yangsai 來源: 51CTO.com
相關(guān)推薦

2009-06-22 17:26:26

頁面導(dǎo)航JSF

2011-10-26 10:12:53

Sencha Touc布局

2010-01-26 09:10:38

Java EE 6注解Profile

2009-06-23 11:35:44

JSF的Naviati

2009-06-24 17:34:58

使用JSF的經(jīng)驗

2009-07-03 17:52:17

JSP2.0

2009-06-22 16:24:33

JSF框架中使用的設(shè)計

2009-06-24 17:21:23

JSF框架設(shè)計模式

2024-03-04 11:52:16

Flutter應(yīng)用程序資產(chǎn)管理

2009-07-21 15:55:59

使用Web PartsASP.NET 2.0

2021-03-22 08:45:30

異步編程Java

2020-09-17 06:00:21

Git

2012-06-29 14:40:39

英偉達(dá)SPI

2011-03-11 09:20:35

jQueryjavascript

2009-06-01 09:30:51

JSF2.0FaceletsAjax4JSF

2009-08-04 09:39:11

2009-02-25 10:55:29

FCKeditor控件JSP

2009-06-26 17:27:15

JSF文件

2009-06-26 13:48:57

G4JSFGWTJSF

2009-06-25 16:49:24

Hibernate
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲日本欧美在线| 欧美在线观看网址综合| 熟妇女人妻丰满少妇中文字幕| 97超碰在线公开在线看免费| 国产·精品毛片| 69精品小视频| 奇米网一区二区| 操欧美女人视频| 欧美亚洲愉拍一区二区| 天堂а√在线中文在线| 牛牛澡牛牛爽一区二区| 韩国三级在线一区| 91国内在线视频| 日日操免费视频| 国产精品宾馆| 91 com成人网| 成年人视频网站免费观看| 里番在线观看网站| 337p粉嫩大胆噜噜噜噜噜91av| 成人h视频在线观看播放| 日韩av在线播放观看| 国产精品久久久久久久久久10秀 | 97成人在线观看视频| 午夜激情视频在线| 久久影视一区二区| 国产精品二区三区| 国产巨乳在线观看| 老牛国产精品一区的观看方式| 久久99热精品这里久久精品| 一级特黄曰皮片视频| 欧美美女啪啪| 日韩欧美一区电影| 99日在线视频| 韩国精品主播一区二区在线观看| 亚洲国产日韩a在线播放性色| 一本久久a久久精品vr综合 | 成人综合在线网站| 成人国产在线激情| 中文字幕一区二区免费| 99在线观看免费视频精品观看| 麻豆成人在线看| 99精品中文字幕| 欧美日韩一二三四| 亚洲人精品午夜在线观看| 三级视频网站在线观看| 中文字幕亚洲在线观看| 欧美一区二区三区日韩视频| 亚洲a级黄色片| 欧美极品在线| 欧美日韩免费在线视频| 奇米影音第四色| 456成人影院在线观看| 一本大道久久a久久综合婷婷| 国产精品无码人妻一区二区在线| 大桥未久在线播放| 亚洲国产wwwccc36天堂| 给我免费播放片在线观看| 女人天堂av在线播放| 亚洲精品videosex极品| 一区二区三区在线观看www| 91视频在线观看| 国产精品伦理一区二区| 亚洲一区在线免费| 黄色成人在线| 一区二区三区在线免费观看| 成人小视频在线观看免费| 欧美人体视频xxxxx| 亚洲国产日韩综合久久精品| 成人在线国产视频| 女厕盗摄一区二区三区| 色婷婷久久99综合精品jk白丝| 无码aⅴ精品一区二区三区浪潮| 午夜影院在线播放| 日本乱码高清不卡字幕| 狠狠躁狠狠躁视频专区| 国产999精品在线观看| 日韩三级在线免费观看| 老司机午夜免费福利| 亚洲视频分类| 色综合伊人色综合网| 五月天激情丁香| 亚洲视频狠狠| 国产97在线播放| 一本大道伊人av久久综合| 国产一区视频网站| 国产一区自拍视频| 高清福利在线观看| 亚洲人123区| 日本手机在线视频| 蜜桃精品在线| 日韩欧美中文字幕一区| a视频免费观看| 日韩精品不卡一区二区| 欧美日韩第一页| 亚洲大片免费观看| 国产一区二区三区综合| 国产欧美日韩视频一区二区三区| 黄色免费在线播放| 一区二区三区**美女毛片| 日本一本二本在线观看| 3d动漫一区二区三区在线观看| 欧美videofree性高清杂交| 精品无人区无码乱码毛片国产| 婷婷亚洲最大| 欧美在线播放视频| 国产www视频| 久久久.com| 成人毛片100部免费看| 日韩三级影视| 欧美精品一区二区三区在线| 娇小11一12╳yⅹ╳毛片| 国产亚洲毛片在线| 999热视频在线观看| 可以在线观看的av| 亚洲国产欧美在线| 亚洲天堂国产视频| 九热爱视频精品视频| 欧美黄色三级网站| 国产乱子伦精品无码码专区| 久久久亚洲综合| 成人免费网站入口| 四虎永久精品在线| 亚洲日韩第一页| 国产奶水涨喷在线播放| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩av中文字幕在线免费观看| 成人信息集中地| 久久精品一本| 精品综合在线| av色在线观看| 91精品国产综合久久久久久| 无码少妇精品一区二区免费动态| 影音先锋亚洲一区| 97视频资源在线观看| 里番在线观看网站| 欧美人伦禁忌dvd放荡欲情| 精品无人区无码乱码毛片国产| 亚洲精选一区| 国产精品久久久久免费| 在线三级中文| 日韩一区二区精品在线观看| 婷婷国产成人精品视频| 蜜臀久久99精品久久久久久9 | 性感美女一级片| 亚洲最大成人综合| 欧美一级大片免费看| 一个色综合网| 亚洲伊人一本大道中文字幕| 免费黄色在线网站| 5月丁香婷婷综合| 三级黄色录像视频| 久久精品国产一区二区三| 亚洲成人在线视频网站| 日韩制服一区| 国产偷亚洲偷欧美偷精品| 三级黄色免费观看| 紧缚奴在线一区二区三区| 自拍视频一区二区三区| 九色精品蝌蚪| 欧美激情亚洲一区| 午夜福利视频一区二区| 色系网站成人免费| 我想看黄色大片| 久久99久国产精品黄毛片色诱| 亚洲国产欧美不卡在线观看| 99re8精品视频在线观看| 欧美成人手机在线| 内射后入在线观看一区| 精品女厕一区二区三区| 国产一二三四五区| 久热成人在线视频| 国内自拍中文字幕| 日韩美女毛片| 国产精品久久电影观看| 国产黄网站在线观看| 精品久久久久99| 日本一区二区三区精品| 国产精品三级在线观看| 91视频福利网| 国产日韩欧美一区二区三区在线观看| 欧美xxxx黑人又粗又长密月| 福利一区和二区| 欧美乱大交xxxxx另类电影| 日本激情一区二区三区| 日韩欧美精品中文字幕| 狂野欧美性猛交| 国产91丝袜在线播放0| 黄页网站在线观看视频| 成人线上播放| 欧美综合第一页| 调教视频免费在线观看| 精品国产污污免费网站入口| 亚洲无码精品一区二区三区| 最新高清无码专区| 国产麻豆天美果冻无码视频 | 一区二区三区毛片| 人妻丰满熟妇aⅴ无码| 久久黄色级2电影| 久久久久久久久久网| 日本久久精品| 国产精品国产精品| 久久精品国产福利| 欧美亚洲一区在线| 黄色在线免费看| 亚洲精品网站在线播放gif| 国产乱码一区二区| 91福利精品视频| 日韩和一区二区| 中文字幕五月欧美| 右手影院亚洲欧美| 国产成人免费视频网站| 亚洲成色www.777999| 最新日韩在线| 精品一区二区三区毛片| 成人在线免费小视频| 久久66热这里只有精品| 久久视频免费| 国产欧美日韩最新| 日本高清不卡一区二区三区视频| 欧美精品久久久久久久免费观看| 午夜毛片在线| 亚洲午夜小视频| 天堂在线视频免费观看| 日韩免费一区二区三区在线播放| 亚洲特级黄色片| 在线观看日韩毛片| 亚洲影院在线播放| 午夜精品久久久久久久久久久| 久久中文免费视频| 1024亚洲合集| 精品一区二区在线观看视频| 国产女主播视频一区二区| 成人影视免费观看| 97久久精品人人做人人爽| 国产一线在线观看| 岛国一区二区三区| 91人人澡人人爽| 国产精品一区二区不卡| 国产精品嫩草影视| 国产资源在线一区| 999久久久精品视频| 久久国产免费看| 亚洲国产成人va在线观看麻豆| 日本伊人色综合网| 午夜免费一区二区| 美女视频第一区二区三区免费观看网站| 美女福利视频在线| 久久视频一区| 黄色aaa级片| 日本sm残虐另类| 精品亚洲一区二区三区四区| 老司机免费视频一区二区三区| 亚洲成人av免费看| 男女男精品视频| 91女神在线观看| 国产一区视频导航| 波多野结衣三级视频| 高清不卡在线观看av| 三级视频网站在线观看| 久久影院午夜论| 久久免费手机视频| 亚洲色图一区二区| 精品无码人妻一区二区三| 欧美日韩国产一中文字不卡| 丁香六月婷婷综合| 欧美少妇xxx| 99久久精品无免国产免费| 精品美女在线播放| 水莓100在线视频| 久久噜噜亚洲综合| 无码一区二区三区在线| 中文字幕中文乱码欧美一区二区 | 欧美一级本道电影免费专区| 亚洲成人在线视频网站| 欧美黄在线观看| 九色在线视频观看| 免费在线视频一区| 男男受被啪到高潮自述| a在线播放不卡| 亚洲av熟女国产一区二区性色| 最新中文字幕一区二区三区| 精品少妇久久久| 91成人在线免费观看| 97人妻精品一区二区三区软件| 精品欧美一区二区三区精品久久 | 99久久综合99久久综合网站| 免费在线观看污| 亚洲欧美日韩国产成人精品影院 | 国产精品影院在线观看| 日本精品视频| 欧美日本韩国一区二区三区| 婷婷激情综合| 国产免费毛卡片| 国产尤物一区二区| 久久成人激情视频| 亚洲国产成人av| 亚洲图片中文字幕| 亚洲国产免费av| 国产福利视频在线观看| 日韩av第一页| silk一区二区三区精品视频| 色综合久久av| 亚洲免费观看| 欧美激情第一区| 久久久不卡网国产精品一区| 欧美丰满艳妇bbwbbw| 欧美午夜在线一二页| 天堂成人在线视频| 久久精品久久久久久| 26uuu亚洲电影| 99精品欧美一区二区三区| jlzzjlzz亚洲女人| 欧美 丝袜 自拍 制服 另类| 久久精品国产精品青草| 短视频在线观看| 亚洲伊人色欲综合网| 国产精品视频a| 亚洲视频在线看| 牛牛精品一区二区| 国产精品对白一区二区三区| 夜间精品视频| 天天操天天干天天做| 国产亚洲视频系列| 国产精品第9页| 日韩免费视频一区二区| 麻豆tv在线| 国产日韩欧美夫妻视频在线观看| 要久久电视剧全集免费| 欧美综合在线播放| 成人性视频免费网站| 欧美成人精品欧美一| 91精品国产欧美一区二区成人| 91精彩视频在线播放| 国产经典一区二区| 日韩av三区| 阿v天堂2017| caoporn国产精品| 日韩少妇高潮抽搐| 亚洲第一综合天堂另类专| 日本无删减在线| 7777精品伊久久久大香线蕉语言| 亚洲成人最新网站| 三级性生活视频| 一区二区中文字幕在线| 国产情侣激情自拍| 草民午夜欧美限制a级福利片| 91成人福利社区| 无码人妻aⅴ一区二区三区日本| 极品少妇xxxx精品少妇| 在线观看亚洲大片短视频| 精品视频在线视频| 色开心亚洲综合| 91久久精品日日躁夜夜躁国产| 久久久久久久久久久9不雅视频| 国内外成人免费在线视频| 国产精品成人午夜| 国产精品久久久久久免费免熟| 久久久999精品| 亚洲视频国产| 亚洲美免无码中文字幕在线| 91亚洲精品久久久蜜桃网站| av网站中文字幕| 亚洲天堂男人天堂| 国产亚洲人成a在线v网站 | 久久国产精品无码一级毛片| 色999日韩国产欧美一区二区| 国产美女性感在线观看懂色av| 国产成人免费av电影| 91亚洲国产高清| 手机看片国产精品| 精品国产成人在线| 91成人高清| 成人欧美一区二区三区视频xxx| 99精品欧美| 欧美激情视频二区| 91精品国产综合久久蜜臀| av免费不卡| 日韩福利二区| 国产盗摄视频一区二区三区| 日韩精品1区2区| 色婷婷综合久久久久| 一区二区亚洲视频| 国产免费人做人爱午夜视频| 国产精品国产馆在线真实露脸| 亚洲AV无码一区二区三区性 | 国产日本欧美在线| 成人亚洲精品久久久久软件| 精产国品一区二区| 欧美猛少妇色xxxxx| 亚洲精品小区久久久久久| 中文字幕1234区| 欧美日韩在线视频观看| 在线看的av网站| 精品久久久久久中文字幕动漫| 蜜臀av性久久久久蜜臀aⅴ| 国产一级生活片| 中文字幕日韩综合av| 国产成人一二片| 欧美一级xxxx| 日韩欧美在线国产|