日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tomcat servlet工作原理

發布時間:2023/12/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tomcat servlet工作原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java web 的基礎就是servlet,其也是Java web的根。

Tomcat 的容器等級中,Context 容器是直接管理 Servlet 在容器中的包裝類 Wrapper,所以 Context 容器如何運行將直接影響 Servlet 的工作方式。


從上圖可以看出 Tomcat 的容器分為四個等級,真正管理 Servlet 的容器是 Context 容器,一個 Context 對應一個 Web 工程,在 Tomcat 的配置文件中可以很容易發現這一點,如下:

清單 1 Context 配置參數
<Context path="/projectOne " docBase="D:\projects\projectOne" reloadable="true" />

下面詳細介紹一下 Tomcat 解析 Context 容器的過程,包括如何構建 Servlet 的過程。

Tomcat7 也開始支持嵌入式功能,增加了一個啟動類 org.apache.catalina.startup.Tomcat。創建一個實例對象并調用 start 方法就可以很容易啟動 Tomcat,我們還可以通過這個對象來增加和修改 Tomcat 的配置參數,如可以動態增加 Context、Servlet 等。下面我們就利用這個 Tomcat 類來管理新增的一個 Context 容器,我們就選擇 Tomcat7 自帶的 examples Web 工程,并看看它是如何加到這個 Context 容器中的。

清單 2 . 給 Tomcat 增加一個 Web 工程
Tomcat tomcat = getTomcatInstance(); File appDir = new File(getBuildDirectory(), "webapps/examples"); tomcat.addWebapp(null, "/examples", appDir.getAbsolutePath()); tomcat.start(); ByteChunk res = getUrl("http://localhost:" + getPort() + "/examples/servlets/servlet/HelloWorldExample"); assertTrue(res.toString().indexOf("<h1>Hello World!</h1>") > 0);

清單 1 的代碼是創建一個 Tomcat 實例并新增一個 Web 應用,然后啟動 Tomcat 并調用其中的一個 HelloWorldExample Servlet,看有沒有正確返回預期的數據。

Tomcat 的 addWebapp 方法的代碼如下:

清單 3 .Tomcat.addWebapp
public Context addWebapp(Host host, String url, String path) { silence(url); Context ctx = new StandardContext(); ctx.setPath( url ); ctx.setDocBase(path); if (defaultRealm == null) { initSimpleAuth(); } ctx.setRealm(defaultRealm); ctx.addLifecycleListener(new DefaultWebXmlListener()); ContextConfig ctxCfg = new ContextConfig(); ctx.addLifecycleListener(ctxCfg); ctxCfg.setDefaultWebXml("org/apache/catalin/startup/NO_DEFAULT_XML"); if (host == null) { getHost().addChild(ctx); } else { host.addChild(ctx); } return ctx; }

前面已經介紹了一個 Web 應用對應一個 Context 容器,也就是 Servlet 運行時的 Servlet 容器,添加一個 Web 應用時將會創建一個 StandardContext 容器,并且給這個 Context 容器設置必要的參數,url 和 path 分別代表這個應用在 Tomcat 中的訪問路徑和這個應用實際的物理路徑,這個兩個參數與清單 1 中的兩個參數是一致的。其中最重要的一個配置是 ContextConfig,這個類將會負責整個 Web 應用配置的解析工作,后面將會詳細介紹。最后將這個 Context 容器加到父容器 Host 中。

接下去將會調用 Tomcat 的 start 方法啟動 Tomcat,如果你清楚 Tomcat 的系統架構,你會容易理解 Tomcat 的啟動邏輯,Tomcat 的啟動邏輯是基于觀察者模式設計的,所有的容器都會繼承 Lifecycle 接口,它管理者容器的整個生命周期,所有容器的的修改和狀態的改變都會由它去通知已經注冊的觀察者(Listener),關于這個設計模式可以參考《 Tomcat 的系統架構與設計模式,第二部分:設計模式》。Tomcat 啟動的時序圖可以用圖 :


上圖描述了 Tomcat 啟動過程中,主要類之間的時序關系,下面我們將會重點關注添加 examples 應用所對應的 StandardContext 容器的啟動過程。

當 Context 容器初始化狀態設為 init 時,添加在 Contex 容器的 Listener 將會被調用。ContextConfig 繼承了 LifecycleListener 接口,它是在調用清單 3 時被加入到 StandardContext 容器中。ContextConfig 類會負責整個 Web 應用的配置文件的解析工作。

ContextConfig 的 init 方法將會主要完成以下工作:

  • 創建用于解析 xml 配置文件的 contextDigester 對象
  • 讀取默認 context.xml 配置文件,如果存在解析它
  • 讀取默認 Host 配置文件,如果存在解析它
  • 讀取默認 Context 自身的配置文件,如果存在解析它
  • 設置 Context 的 DocBase
  • ContextConfig 的 init 方法完成后,Context 容器的會執行 startInternal 方法,這個方法啟動邏輯比較復雜,主要包括如下幾個部分:

  • 創建讀取資源文件的對象
  • 創建 ClassLoader 對象
  • 設置應用的工作目錄
  • 啟動相關的輔助類如:logger、realm、resources 等
  • 修改啟動狀態,通知感興趣的觀察者(Web 應用的配置)
  • 子容器的初始化
  • 獲取 ServletContext 并設置必要的參數
  • 初始化“load on startup”的 Servlet
  • Web 應用的初始化工作

    Web 應用的初始化工作是在 ContextConfig 的 configureStart 方法中實現的,應用的初始化主要是要解析 web.xml 文件,這個文件描述了一個 Web 應用的關鍵信息,也是一個 Web 應用的入口。

    Tomcat 首先會找 globalWebXml 這個文件的搜索路徑是在 engine 的工作目錄下尋找以下兩個文件中的任一個 org/apache/catalin/startup/NO_DEFAULT_XML 或 conf/web.xml。接著會找 hostWebXml 這個文件可能會在 System.getProperty("catalina.base")/conf/${EngineName}/${HostName}/web.xml.default,接著尋找應用的配置文件 examples/WEB-INF/web.xml。web.xml 文件中的各個配置項將會被解析成相應的屬性保存在 WebXml 對象中。如果當前應用支持 Servlet3.0,解析還將完成額外 9 項工作,這個額外的 9 項工作主要是為 Servlet3.0 新增的特性,包括 jar 包中的 META-INF/web-fragment.xml 的解析以及對 annotations 的支持。

    接下去將會將 WebXml 對象中的屬性設置到 Context 容器中,這里包括創建 Servlet 對象、filter、listener 等等。這段代碼在 WebXml 的 configureContext 方法中。下面是解析 Servlet 的代碼片段:

    清單 4. 創建 Wrapper 實例
    for (ServletDef servlet : servlets.values()) { Wrapper wrapper = context.createWrapper(); String jspFile = servlet.getJspFile(); if (jspFile != null) { wrapper.setJspFile(jspFile); } if (servlet.getLoadOnStartup() != null) { wrapper.setLoadOnStartup(servlet.getLoadOnStartup().intValue()); } if (servlet.getEnabled() != null) { wrapper.setEnabled(servlet.getEnabled().booleanValue()); } wrapper.setName(servlet.getServletName()); Map<String,String> params = servlet.getParameterMap(); for (Entry<String, String> entry : params.entrySet()) { wrapper.addInitParameter(entry.getKey(), entry.getValue()); } wrapper.setRunAs(servlet.getRunAs()); Set<SecurityRoleRef> roleRefs = servlet.getSecurityRoleRefs(); for (SecurityRoleRef roleRef : roleRefs) { wrapper.addSecurityReference( roleRef.getName(), roleRef.getLink()); } wrapper.setServletClass(servlet.getServletClass()); MultipartDef multipartdef = servlet.getMultipartDef(); if (multipartdef != null) { if (multipartdef.getMaxFileSize() != null && multipartdef.getMaxRequestSize()!= null && multipartdef.getFileSizeThreshold() != null) { wrapper.setMultipartConfigElement(new MultipartConfigElement( multipartdef.getLocation(), Long.parseLong(multipartdef.getMaxFileSize()), Long.parseLong(multipartdef.getMaxRequestSize()), Integer.parseInt( multipartdef.getFileSizeThreshold()))); } else { wrapper.setMultipartConfigElement(new MultipartConfigElement( multipartdef.getLocation())); } } if (servlet.getAsyncSupported() != null) { wrapper.setAsyncSupported( servlet.getAsyncSupported().booleanValue()); } context.addChild(wrapper); }

    這段代碼清楚的描述了如何將 Servlet 包裝成 Context 容器中的 StandardWrapper,這里有個疑問,為什么要將 Servlet 包裝成 StandardWrapper 而不直接是 Servlet 對象。這里 StandardWrapper 是 Tomcat 容器中的一部分,它具有容器的特征,而 Servlet 為了一個獨立的 web 開發標準,不應該強耦合在 Tomcat 中。

    除了將 Servlet 包裝成 StandardWrapper 并作為子容器添加到 Context 中,其它的所有 web.xml 屬性都被解析到 Context 中,所以說 Context 容器才是真正運行 Servlet 的 Servlet 容器。一個 Web 應用對應一個 Context 容器,容器的配置屬性由應用的 web.xml 指定,這樣我們就能理解 web.xml 到底起到什么作用了。

    創建 Servlet 實例

    前面已經完成了 Servlet 的解析工作,并且被包裝成 StandardWrapper 添加在 Context 容器中,但是它仍然不能為我們工作,它還沒有被實例化。下面我們將介紹 Servlet 對象是如何創建的,以及如何被初始化的。

    創建 Servlet 對象

    如果 Servlet 的 load-on-startup 配置項大于 0,那么在 Context 容器啟動的時候就會被實例化,前面提到在解析配置文件時會讀取默認的 globalWebXml,在 conf 下的 web.xml 文件中定義了一些默認的配置項,其定義了兩個 Servlet,分別是:org.apache.catalina.servlets.DefaultServlet 和 org.apache.jasper.servlet.JspServlet 它們的 load-on-startup 分別是 1 和 3,也就是當 Tomcat 啟動時這兩個 Servlet 就會被啟動。

    創建 Servlet 實例的方法是從 Wrapper. loadServlet 開始的。loadServlet 方法要完成的就是獲取 servletClass 然后把它交給 InstanceManager 去創建一個基于 servletClass.class 的對象。如果這個 Servlet 配置了 jsp-file,那么這個 servletClass 就是 conf/web.xml 中定義的 org.apache.jasper.servlet.JspServlet 了。

    創建 Servlet 對象的相關類結構圖如下:


    初始化 Servlet

    初始化 Servlet 在 StandardWrapper 的 initServlet 方法中,這個方法很簡單就是調用 Servlet 的 init 的方法,同時把包裝了 StandardWrapper 對象的 StandardWrapperFacade 作為 ServletConfig 傳給 Servlet。Tomcat 容器為何要傳 StandardWrapperFacade 給 Servlet 對象將在后面做詳細解析。

    如果該 Servlet 關聯的是一個 jsp 文件,那么前面初始化的就是 JspServlet,接下去會模擬一次簡單請求,請求調用這個 jsp 文件,以便編譯這個 jsp 文件為 class,并初始化這個 class。

    這樣 Servlet 對象就初始化完成了,事實上 Servlet 從被 web.xml 中解析到完成初始化,這個過程非常復雜,中間有很多過程,包括各種容器狀態的轉化引起的監聽事件的觸發、各種訪問權限的控制和一些不可預料的錯誤發生的判斷行為等等。我們這里只抓了一些關鍵環節進行闡述,試圖讓大家有個總體脈絡。

    下面是這個過程的一個完整的時序圖,其中也省略了一些細節。


    Servlet 體系結構

    我們知道 Java Web 應用是基于 Servlet 規范運轉的,那么 Servlet 本身又是如何運轉的呢?為何要設計這樣的體系結構。


    從上圖可以看出 Servlet 規范就是基于這幾個類運轉的,與 Servlet 主動關聯的是三個類,分別是 ServletConfig、ServletRequest 和 ServletResponse。這三個類都是通過容器傳遞給 Servlet 的,其中 ServletConfig 是在 Servlet 初始化時就傳給 Servlet 了,而后兩個是在請求達到時調用 Servlet 時傳遞過來的。我們很清楚 ServletRequest 和 ServletResponse 在 Servlet 運行的意義,但是 ServletConfig 和 ServletContext 對 Servlet 有何價值?仔細查看 ServletConfig 接口中聲明的方法發現,這些方法都是為了獲取這個 Servlet 的一些配置屬性,而這些配置屬性可能在 Servlet 運行時被用到。而 ServletContext 又是干什么的呢? Servlet 的運行模式是一個典型的“握手型的交互式”運行模式。所謂“握手型的交互式”就是兩個模塊為了交換數據通常都會準備一個交易場景,這個場景一直跟隨個這個交易過程直到這個交易完成為止。這個交易場景的初始化是根據這次交易對象指定的參數來定制的,這些指定參數通常就會是一個配置類。所以對號入座,交易場景就由 ServletContext 來描述,而定制的參數集合就由 ServletConfig 來描述。而 ServletRequest 和 ServletResponse 就是要交互的具體對象了,它們通常都是作為運輸工具來傳遞交互結果。

    ServletConfig 是在 Servlet init 時由容器傳過來的,那么 ServletConfig 到底是個什么對象呢?

    下圖是 ServletConfig 和 ServletContext 在 Tomcat 容器中的類關系圖。


    上圖可以看出 StandardWrapper 和 StandardWrapperFacade 都實現了 ServletConfig 接口,而 StandardWrapperFacade 是 StandardWrapper 門面類。所以傳給 Servlet 的是 StandardWrapperFacade 對象,這個類能夠保證從 StandardWrapper 中拿到 ServletConfig 所規定的數據,而又不把 ServletConfig 不關心的數據暴露給 Servlet。

    同樣 ServletContext 也與 ServletConfig 有類似的結構,Servlet 中能拿到的 ServletContext 的實際對象也是 ApplicationContextFacade 對象。ApplicationContextFacade 同樣保證 ServletContex 只能從容器中拿到它該拿的數據,它們都起到對數據的封裝作用,它們使用的都是門面設計模式。

    通過 ServletContext 可以拿到 Context 容器中一些必要信息,比如應用的工作路徑,容器支持的 Servlet 最小版本等。

    Servlet 中定義的兩個 ServletRequest 和 ServletResponse 它們實際的對象又是什么呢?,我們在創建自己的 Servlet 類時通常使用的都是 HttpServletRequest 和 HttpServletResponse,它們繼承了 ServletRequest 和 ServletResponse。為何 Context 容器傳過來的 ServletRequest、ServletResponse 可以被轉化為 HttpServletRequest 和 HttpServletResponse 呢?


    上圖是 Tomcat 創建的 Request 和 Response 的類結構圖。Tomcat 一接受到請求首先將會創建 org.apache.coyote.Request 和 org.apache.coyote.Response,這兩個類是 Tomcat 內部使用的描述一次請求和相應的信息類它們是一個輕量級的類,它們作用就是在服務器接收到請求后,經過簡單解析將這個請求快速的分配給后續線程去處理,所以它們的對象很小,很容易被 JVM 回收。接下去當交給一個用戶線程去處理這個請求時又創建 org.apache.catalina.connector. Request 和 org.apache.catalina.connector. Response 對象。這兩個對象一直穿越整個 Servlet 容器直到要傳給 Servlet,傳給 Servlet 的是 Request 和 Response 的門面類 RequestFacade 和 RequestFacade,這里使用門面模式與前面一樣都是基于同樣的目的——封裝容器中的數據。一次請求對應的 Request 和 Response 的類轉化如下圖所示:


    Servlet 如何工作

    我們已經清楚了 Servlet 是如何被加載的、Servlet 是如何被初始化的,以及 Servlet 的體系結構,現在的問題就是它是如何被調用的。

    當用戶從瀏覽器向服務器發起一個請求,通常會包含如下信息:http://hostname: port /contextpath/servletpath,hostname 和 port 是用來與服務器建立 TCP 連接,而后面的 URL 才是用來選擇服務器中那個子容器服務用戶的請求。那服務器是如何根據這個 URL 來達到正確的 Servlet 容器中的呢?

    Tomcat7.0 中這件事很容易解決,因為這種映射工作有專門一個類來完成的,這個就是 org.apache.tomcat.util.http.mapper,這個類保存了 Tomcat 的 Container 容器中的所有子容器的信息,當 org.apache.catalina.connector. Request 類在進入 Container 容器之前,mapper 將會根據這次請求的 hostnane 和 contextpath 將 host 和 context 容器設置到 Request 的 mappingData 屬性中。所以當 Request 進入 Container 容器之前,它要訪問那個子容器這時就已經確定了。


    可能你有疑問,mapper 中怎么會有容器的完整關系,這要回到圖 2 中 19 步 MapperListener 類的初始化過程,下面是 MapperListener 的 init 方法代碼 :

    清單 5. MapperListener.init
    public void init() { findDefaultHost(); Engine engine = (Engine) connector.getService().getContainer(); engine.addContainerListener(this); Container[] conHosts = engine.findChildren(); for (Container conHost : conHosts) { Host host = (Host) conHost; if (!LifecycleState.NEW.equals(host.getState())) { host.addLifecycleListener(this); registerHost(host); } } }

    這段代碼的作用就是將 MapperListener 類作為一個監聽者加到整個 Container 容器中的每個子容器中,這樣只要任何一個容器發生變化,MapperListener 都將會被通知,相應的保存容器關系的 MapperListener 的 mapper 屬性也會修改。for 循環中就是將 host 及下面的子容器注冊到 mapper 中。


    上圖描述了一次 Request 請求是如何達到最終的 Wrapper 容器的,我們現正知道了請求是如何達到正確的 Wrapper 容器,但是請求到達最終的 Servlet 還要完成一些步驟,必須要執行 Filter 鏈,以及要通知你在 web.xml 中定義的 listener。

    接下去就要執行 Servlet 的 service 方法了,通常情況下,我們自己定義的 servlet 并不是直接去實現 javax.servlet.servlet 接口,而是去繼承更簡單的 HttpServlet 類或者 GenericServlet 類,我們可以有選擇的覆蓋相應方法去實現我們要完成的工作。

    Servlet 的確已經能夠幫我們完成所有的工作了,但是現在的 web 應用很少有直接將交互全部頁面都用 servlet 來實現,而是采用更加高效的 MVC 框架來實現。這些 MVC 框架基本的原理都是將所有的請求都映射到一個 Servlet,然后去實現 service 方法,這個方法也就是 MVC 框架的入口。

    當 Servlet 從 Servlet 容器中移除時,也就表明該 Servlet 的生命周期結束了,這時 Servlet 的 destroy 方法將被調用,做一些掃尾工作。

    Session 與 Cookie

    前面我們已經說明了 Servlet 如何被調用,我們基于 Servlet 來構建應用程序,那么我們能從 Servlet 獲得哪些數據信息呢?

    Servlet 能夠給我們提供兩部分數據,一個是在 Servlet 初始化時調用 init 方法時設置的 ServletConfig,這個類基本上含有了 Servlet 本身和 Servlet 所運行的 Servlet 容器中的基本信息。根據前面的介紹 ServletConfig 的實際對象是 StandardWrapperFacade,到底能獲得哪些容器信息可以看看這類提供了哪些接口。還有一部分數據是由 ServletRequest 類提供,它的實際對象是 RequestFacade,從提供的方法中發現主要是描述這次請求的 HTTP 協議的信息。所以要掌握 Servlet 的工作方式必須要很清楚 HTTP 協議,如果你還不清楚趕緊去找一些參考資料。關于這一塊還有一個讓很多人迷惑的 Session 與 Cookie。

    Session 與 Cookie 不管是對 Java Web 的熟練使用者還是初學者來說都是一個令人頭疼的東西。Session 與 Cookie 的作用都是為了保持訪問用戶與后端服務器的交互狀態。它們有各自的優點也有各自的缺陷。然而具有諷刺意味的是它們優點和它們的使用場景又是矛盾的,例如使用 Cookie 來傳遞信息時,隨著 Cookie 個數的增多和訪問量的增加,它占用的網絡帶寬也很大,試想假如 Cookie 占用 200 個字節,如果一天的 PV 有幾億的時候,它要占用多少帶寬。所以大訪問量的時候希望用 Session,但是 Session 的致命弱點是不容易在多臺服務器之間共享,所以這也限制了 Session 的使用。

    不管 Session 和 Cookie 有什么不足,我們還是要用它們。下面詳細講一下,Session 如何基于 Cookie 來工作。實際上有三種方式能可以讓 Session 正常工作:

  • 基于 URL Path Parameter,默認就支持
  • 基于 Cookie,如果你沒有修改 Context 容器個 cookies 標識的話,默認也是支持的
  • 基于 SSL,默認不支持,只有 connector.getAttribute("SSLEnabled") 為 TRUE 時才支持
  • 第一種情況下,當瀏覽器不支持 Cookie 功能時,瀏覽器會將用戶的 SessionCookieName 重寫到用戶請求的 URL 參數中,它的傳遞格式如 /path/Servlet;name=value;name2=value2? Name3=value3,其中“Servlet;”后面的 K-V 對就是要傳遞的 Path Parameters,服務器會從這個 Path Parameters 中拿到用戶配置的 SessionCookieName。關于這個 SessionCookieName,如果你在 web.xml 中配置 session-config 配置項的話,其 cookie-config 下的 name 屬性就是這個 SessionCookieName 值,如果你沒有配置 session-config 配置項,默認的 SessionCookieName 就是大家熟悉的“JSESSIONID”。接著 Request 根據這個 SessionCookieName 到 Parameters 拿到 Session ID 并設置到 request.setRequestedSessionId 中。

    請注意如果客戶端也支持 Cookie 的話,Tomcat 仍然會解析 Cookie 中的 Session ID,并會覆蓋 URL 中的 Session ID。

    如果是第三種情況的話將會根據 javax.servlet.request.ssl_session 屬性值設置 Session ID。

    有了 Session ID 服務器端就可以創建 HttpSession 對象了,第一次觸發是通過 request. getSession() 方法,如果當前的 Session ID 還沒有對應的 HttpSession 對象那么就創建一個新的,并將這個對象加到 org.apache.catalina. Manager 的 sessions 容器中保存,Manager 類將管理所有 Session 的生命周期,Session 過期將被回收,服務器關閉,Session 將被序列化到磁盤等。只要這個 HttpSession 對象存在,用戶就可以根據 Session ID 來獲取到這個對象,也就達到了狀態的保持。

    上從圖中可以看出從 request.getSession 中獲取的 HttpSession 對象實際上是 StandardSession 對象的門面對象,這與前面的 Request 和 Servlet 是一樣的原理。下圖是 Session 工作的時序圖:


    還有一點與 Session 關聯的 Cookie 與其它 Cookie 沒有什么不同,這個配置的配置可以通過 web.xml 中的 session-config 配置項來指定。

    Servlet 中的 Listener

    整個 Tomcat 服務器中 Listener 使用的非常廣泛,它是基于觀察者模式設計的,Listener 的設計對開發 Servlet 應用程序提供了一種快捷的手段,能夠方便的從另一個縱向維度控制程序和數據。目前 Servlet 中提供了 5 種兩類事件的觀察者接口,它們分別是:4 個 EventListeners 類型的,ServletContextAttributeListener、ServletRequestAttributeListener、ServletRequestListener、HttpSessionAttributeListener 和 2 個 LifecycleListeners 類型的,ServletContextListener、HttpSessionListener。如下圖所示:


    它們基本上涵蓋了整個 Servlet 生命周期中,你感興趣的每種事件。這些 Listener 的實現類可以配置在 web.xml 中的 <listener> 標簽中。當然也可以在應用程序中動態添加 Listener,需要注意的是 ServletContextListener 在容器啟動之后就不能再添加新的,因為它所監聽的事件已經不會再出現。掌握這些 Listener 的使用,能夠讓我們的程序設計的更加靈活。

    總結

    以上是生活随笔為你收集整理的Tomcat servlet工作原理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产98色在线 | 日韩 | 亚洲日本韩国一区二区 | 麻豆视频在线看 | 综合中文字幕 | 成人亚洲网 | 亚洲最新av在线网站 | 五月婷婷在线视频观看 | 国产精品毛片久久久久久久久久99999999 | 99色免费视频| 中文字幕在线观看的网站 | 国产黄色片一级 | 国产精品1区2区3区在线观看 | 欧美精品首页 | 免费网站观看www在线观看 | 精品国模一区二区 | 亚洲成av人电影 | 色婷av | 男女全黄一级一级高潮免费看 | 中文字幕高清免费日韩视频在线 | 一区二区三区av在线 | 综合激情网 | 亚洲精品国偷自产在线91正片 | 久久久精品视频成人 | 成人羞羞视频在线观看免费 | 精品无人国产偷自产在线 | 午夜色婷婷 | 国产精品夜夜夜一区二区三区尤 | 日韩欧美视频在线播放 | 国产亚洲va综合人人澡精品 | 欧美久久九九 | 超级碰碰碰碰 | 一级片色播影院 | 天干啦夜天干天干在线线 | 日日干美女 | 日本久久成人中文字幕电影 | 国产精品不卡在线观看 | 精品久久久久_ | 久久www免费视频 | 97狠狠操| 国产一区二区三区四区大秀 | 久久99久久99精品中文字幕 | 国产亚洲欧洲 | 久久午夜精品影院一区 | 久久婷婷视频 | 国产1区在线观看 | 亚洲综合爱 | 奇米影视999| 国产操在线 | 亚洲高清网站 | 探花视频免费观看高清视频 | 精品在线观看国产 | 黄色h在线观看 | 亚洲精品麻豆视频 | 丁香狠狠| 国产一级免费片 | 在线一区观看 | 亚洲国产中文字幕在线视频综合 | 五月天网站在线 | 国产一区二区视频在线播放 | 中文字幕免费高清av | 亚洲国产日韩一区 | 99爱在线观看| 婷婷综合影院 | 超碰激情在线 | 激情欧美xxxx | 在线观看成人 | 日女人免费视频 | 五月婷婷色综合 | 午夜性生活 | av电影不卡在线 | 婷婷久月 | 五月亚洲综合 | 欧美成人黄色 | 国产精品美女久久久久久久 | 久久99国产视频 | 亚洲高清色综合 | 在线看v片成人 | 久久成年人 | 麻豆影视在线观看 | 97超碰资源网 | 成人禁用看黄a在线 | 一区二区中文字幕在线观看 | 国产在线黄 | 成人免费色 | 国产精品18毛片一区二区 | 久久伊人色综合 | 久久精品国产美女 | 成人精品国产免费网站 | 天天爱天天操天天射 | 玖玖精品在线 | 国产一级视频在线免费观看 | 少妇性色午夜淫片aaaze | 欧美一区二区三区四区夜夜大片 | 午夜私人影院久久久久 | 99国产在线 | 五月天综合网站 | 久久一区二区三区日韩 | www.久久免费视频 | 欧美 日韩 视频 | 激情久久久 | 国产一区二区三区免费视频 | 国模精品一区二区三区 | 国产不卡在线观看 | 99se视频在线观看 | 九九视频精品免费 | 精品国产区 | 国产精品18毛片一区二区 | 国产精品久久一区二区三区, | 涩涩网站免费 | 精品伊人久久久 | 久久精彩视频 | 亚洲国产精品成人综合 | 美女国内精品自产拍在线播放 | 亚洲精品国产精品久久99 | 成人av高清| 日韩精品在线观看视频 | 免费网站黄色 | 日韩三级av | 91麻豆精品 | 亚洲夜夜网 | 日韩欧美精品在线视频 | 午夜久久久影院 | 97在线观看免费观看 | 中文在线字幕免 | www日韩欧美| 国产成人一区在线 | 国产黄色精品视频 | 精品国产精品久久一区免费式 | 亚洲国产中文字幕 | 91麻豆精品国产91 | 五月天综合 | 人人干人人超 | 最新日韩视频在线观看 | 在线免费观看不卡av | 人人澡人人模 | 日韩欧美网址 | 亚洲在线激情 | 亚洲精品久久久蜜桃 | 香蕉一区 | 欧美日韩1区 | 日韩高清成人 | 中文字幕在线免费观看 | 午夜美女视频 | 黄色亚洲大片免费在线观看 | 日本黄色片一区二区 | 国产91在线观看 | 久久艹在线观看 | 黄色日批网站 | 欧美最新另类人妖 | 欧美小视频在线观看 | 国产精品久久久久久久久久久久午夜 | 国产精品 国内视频 | 久久国产欧美日韩精品 | 91视频在线免费看 | 九九九九精品 | 黄色大片视频网站 | 久久精品国产免费看久久精品 | 国产不卡视频在线 | 草久久久 | 国产99免费视频 | 综合久久影院 | 在线 国产 日韩 | 天天色天| 成人av免费在线观看 | 婷婷综合 | 久久久电影网站 | 国产精品久久久久久久久岛 | 国产涩涩网站 | 综合久久2023 | 手机看片福利 | 网站在线观看你们懂的 | 精品视频99| 最新三级在线 | 亚洲天堂精品视频 | 色婷婷五| 欧美网站黄色 | 亚洲成人免费观看 | 91最新视频 | 97超碰总站 | 中文字幕电影网 | 97超碰色偷偷 | 国内精品久久久精品电影院 | 91最新在线 | 婷婷丁香国产 | 88av视频| 国产中文字幕国产 | 人人爽影院 | 天天干com| 国产人成精品一区二区三 | 成人av一区二区在线观看 | 国产精品久久久久久久午夜片 | 亚洲精品av在线 | 日韩中文三级 | 久久久久成 | 精品在线观看一区二区 | 国际精品久久久 | 日韩精品久久久久久中文字幕8 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 久久精品国产99 | 日日日天天天 | 成人三级av | 天堂资源在线观看视频 | 狠狠狠综合 | 国产精品毛片一区视频播不卡 | 久久这里只精品 | 国产成人精品电影久久久 | 毛片a级片| 香蕉视频亚洲 | 久久中文网 | 国产精品欧美久久久久三级 | 久久精品一二三区白丝高潮 | 丁香花中文在线免费观看 | 在线免费观看羞羞视频 | 久久精品视频网 | 国产精品xxxx18a99| 久久99这里只有精品 | 黄色电影网站在线观看 | 国产视频亚洲精品 | 国内精品小视频 | 91.精品高清在线观看 | 欧美性脚交 | 精品资源在线 | 国产高清黄色 | 久久首页| 精品中文字幕在线 | 日韩有码在线观看视频 | 久久人人爽爽人人爽人人片av | 欧美最新大片在线看 | 亚洲视频在线免费观看 | 欧美伦理电影一区二区 | 久久久91精品国产一区二区精品 | 欧美色操 | 久久国产午夜精品理论片最新版本 | 欧美亚洲国产精品久久高清浪潮 | 婷婷激情综合 | 国产欧美中文字幕 | 欧美日韩不卡一区 | 久久国产电影院 | 亚洲播播| 午夜12点| 国产999精品| 亚洲人成影院在线 | 亚洲精品国产精品国 | www.com久久 | 国产精品91一区 | 久久国产精品一区二区 | 亚洲国产一区二区精品专区 | 国产精品露脸在线 | 日韩av片无码一区二区不卡电影 | 成人禁用看黄a在线 | 久草香蕉在线视频 | 美女很黄免费网站 | 97国产在线 | 亚洲精品小视频在线观看 | 精品国产亚洲日本 | 国产精品一区二区在线免费观看 | 久草在线观看资源 | 国产专区视频在线观看 | 国产美女精品视频 | 亚洲无在线 | 91精品久久久久久久91蜜桃 | 香蕉在线观看 | 亚洲国产成人精品电影在线观看 | 国产专区在线视频 | 91黄色视屏| 91九色在线观看 | 黄色三级免费片 | 久久亚洲免费 | 国产精品久久久久久久av大片 | 国产精品99久久久久人中文网介绍 | 久久亚洲综合国产精品99麻豆的功能介绍 | 亚洲视频在线免费看 | 欧美最猛性xxxxx(亚洲精品) | 久久99国产综合精品 | 国产视频2区 | 18岁免费看片 | 国产三级视频在线 | 性色va | 精品久久久免费 | 欧美成人理伦片 | 伊人色**天天综合婷婷 | 日韩在线观看a | 日韩免费av网址 | 亚洲精品高清视频在线观看 | a√国产免费a | 在线 视频 一区二区 | 日韩欧美一区二区三区在线观看 | 91香蕉国产在线观看软件 | 亚洲精品影院在线观看 | 日韩精品免费一线在线观看 | 91视频这里只有精品 | 精品亚洲va在线va天堂资源站 | 在线观看成人 | 免费十分钟 | 91 在线视频| 99精品区| jizz999| 国产偷v国产偷∨精品视频 在线草 | 久久99精品久久久久久久久久久久 | 激情av五月婷婷 | 开心激情网五月天 | 日韩国产精品一区 | 久久久亚洲网站 | 一区二区三区在线观看免费视频 | 伊人久久精品久久亚洲一区 | 国产一区在线免费观看视频 | 8x成人在线 | 一级黄色片毛片 | 日韩精品一区二区三区水蜜桃 | 视频在线99 | 久久精品aaa | 狠狠色丁香| 精品一区二区在线看 | 99久久久久久久久久 | av免费观看高清 | 久久网页 | 国产在线高清 | 精品国产一区二区三区av性色 | 亚洲狠狠操 | 欧美日韩亚洲在线 | 国产乱对白刺激视频不卡 | 欧美电影黄色 | 国产成人久久精品 | 97久久精品午夜一区二区 | 日韩在线观看影院 | 久久黄色网页 | 久久国产美女 | 日韩av不卡在线播放 | 国产精品午夜免费福利视频 | 亚洲国产免费 | 亚洲午夜精品久久久久久久久久久久 | 日日干,天天干 | 香蕉网在线 | 97超碰中文字幕 | 波多野结衣电影久久 | 欧美国产不卡 | 五月婷婷久久丁香 | 在线三级播放 | 在线久草视频 | 91视频 - x99av | 日韩性xxxx| 又黄又爽又无遮挡免费的网站 | 中文字幕精品一区二区精品 | 国产精品18久久久久久vr | 人人精久 | 日韩视频免费观看高清 | 国产男女免费完整视频 | 久久精品国产成人精品 | 91精品播放| 国产午夜精品一区二区三区四区 | 国产一级黄色免费看 | 午夜精品久久久久久中宇69 | 久久天天躁夜夜躁狠狠85麻豆 | 青草视频在线播放 | 日韩在线观看一区二区 | 国产精品日韩 | 91在线区 | 久热色超碰 | 国产剧在线观看片 | 国产激情久久久 | 国产高清精品在线观看 | 香蕉精品视频在线观看 | 日韩在线视 | 日韩av在线一区二区 | 天天爽夜夜爽人人爽曰av | 久久久久国产精品一区 | av免费看av | 国产成人一级 | 丁香九月婷婷 | 国产区在线视频 | 国产精品久久99精品毛片三a | 久草在线最新视频 | 成人超碰在线 | 亚洲一级黄色av | 丁香一区二区 | 91av片| 国产99自拍| 精品不卡av| 在线观看不卡的av | 国产色a在线观看 | 五月婷久久 | 香蕉视频久久久 | av黄色影院 | 国产成人av在线影院 | 国产一区二区精品久久91 | 亚洲视频axxx| 一区二区三区 中文字幕 | 在线看欧美 | 日韩欧美在线一区 | 99热在线免费观看 | 999久久国精品免费观看网站 | 欧美日韩免费在线视频 | 国产区精品区 | 久久999精品 | 久久久精品国产一区二区电影四季 | 97精品国产97久久久久久久久久久久 | 午夜精品久久久久久久久久久久 | 97碰在线视频 | 日韩欧美一区二区三区在线观看 | 少妇按摩av | 日韩av手机在线观看 | www.天天操.com| 在线视频app| 精品中文字幕在线观看 | 综合久久婷婷 | 免费成人在线观看视频 | 国产精品久久久久久久久久尿 | 91日韩在线视频 | 国产精彩视频一区二区 | 成人三级网站在线观看 | 国产精品1区| 色97在线 | 欧美日韩激情视频8区 | 久久精品精品电影网 | 色综合天天爱 | 国产日产在线观看 | 久久精品99国产精品酒店日本 | 天天操天天操天天爽 | 狠狠色丁香婷婷综合最新地址 | 久草在线播放视频 | 亚洲欧美婷婷六月色综合 | 国产一区高清在线 | 天天激情天天干 | 久草在线最新 | 国产免费不卡 | 伊人五月天.com | 亚洲狠狠干 | 在线观看黄网 | 久久久午夜视频 | 99re视频在线观看 | 亚洲最大色| 国产一区网址 | 免费看一级特黄a大片 | 亚洲精品午夜国产va久久成人 | 97日日碰人人模人人澡分享吧 | 亚洲国产精品小视频 | 我要看黄色一级片 | 成年人在线看片 | 精品久久久久久久久久久久 | 中文字幕乱码视频 | 国产99久久久国产精品免费二区 | 日本精品小视频 | 久久精品高清 | 成人在线免费看 | 亚洲精品高清一区二区三区四区 | 国产一区高清在线观看 | 在线 成人 | 久久夜色精品国产欧美乱极品 | 日本精品在线视频 | 国产精品成人一区二区 | 91精品看片| 国产无套精品久久久久久 | 国产精品国产亚洲精品看不卡15 | 综合在线亚洲 | 狠狠色丁香婷婷综合视频 | 在线观看911视频 | 久草网在线观看 | 啪啪小视频网站 | 2019免费中文字幕 | 亚洲第一区在线观看 | 国产中文a | 福利视频午夜 | 久久精品99国产精品日本 | 探花视频在线观看免费版 | 日韩欧美在线观看一区二区 | 999久久国产精品免费观看网站 | av电影一区二区三区 | 国产亚洲视频在线 | 日韩电影中文字幕在线 | 亚洲成人资源 | 欧美在线视频免费 | 人人爽人人插 | 欧美日韩国产伦理 | 亚洲视频www | 91麻豆看国产在线紧急地址 | 97av.com | 久久综合之合合综合久久 | 亚洲天天 | 激情婷婷 | 欧美最猛性xxxxx(亚洲精品) | 亚洲爽爽网 | 免费黄色av电影 | 成人91在线观看 | 在线欧美a| caobi视频 | 99精彩视频在线观看免费 | 午夜电影久久久 | 国产精彩视频一区二区 | 午夜国产在线 | 日韩欧美在线观看一区二区 | 色全色在线资源网 | 亚洲一级久久 | 久久久免费看 | 亚洲美女视频在线观看 | 五月丁香| 综合久久网 | 精品视频在线看 | 国产在线观看av | 九九视频一区 | 国产高清av在线播放 | 久草在线视频新 | av+在线播放在线播放 | 亚洲国产成人精品电影在线观看 | av中文字幕网站 | 亚洲视频专区在线 | 国产色久| 日韩性久久 | 在线中文字幕视频 | 亚洲国产偷 | 在线观看成人av | 久99视频| 国产一级特黄电影 | 欧美一二三在线 | 夜夜视频资源 | 亚洲一区二区黄色 | 久久久久久久久久电影 | 婷婷性综合 | 国产高清视频免费最新在线 | 久久综合婷婷国产二区高清 | 日韩在线视| 成人免费视频网站 | 91久久国产露脸精品国产闺蜜 | 久久96| 天天操天天色天天射 | 超碰97人 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 99热最新精品 | 免费福利片2019潦草影视午夜 | 日本在线观看一区二区 | 日日草天天草 | 亚洲国产精品久久久久 | 久久精品国产一区二区电影 | 亚洲一区二区三区毛片 | 天天操天天操一操 | 日本大片免费观看在线 | 日韩精品中文字幕一区二区 | 亚洲三级黄 | 91久久国产自产拍夜夜嗨 | 国产午夜av | 99精品视频在线看 | 久草 | www.黄色网.com | 99精品视频网站 | 九九热中文字幕 | 亚洲午夜久久久影院 | 国产一区二区在线精品 | 99久久夜色精品国产亚洲96 | 国产视频二| 亚洲精品成人av在线 | 99久久久久久久久久 | 成人国产精品久久久春色 | 成人激情开心网 | 久久黄色片 | 91精品对白一区国产伦 | 中文字幕一区av | 久草视频在线免费播放 | 成人少妇影院yyyy | 韩国av一区 | 一区二区视频在线观看免费 | 免费黄在线看 | 午夜成人影视 | 九九在线播放 | 69av免费视频 | 九九九国产 | 久久久久久久久久久电影 | 日韩久久精品一区二区 | 亚洲日日日 | 精品久操 | www.狠狠操.com | 国产精品人人做人人爽人人添 | 国产一区二区在线影院 | 日韩免费电影网 | 99色精品视频 | 国产成人黄色 | 国产999精品 | 久久99国产精品二区护士 | 一本一本久久a久久精品综合妖精 | av免费高清观看 | 久久av一区二区三区亚洲 | 91精品在线免费观看 | 亚洲精品麻豆视频 | 中文字幕视频在线播放 | 久久成人亚洲欧美电影 | 中文字幕视频一区二区 | 国产高清专区 | 日韩网站免费观看 | 久久高视频 | 天堂素人在线 | 免费看国产一级片 | 天天狠狠干 | 国产又粗又猛又黄又爽视频 | 国产中文视频 | 丁香久久久 | 久久任你操 | 91亚洲精品久久久中文字幕 | 99热精品免费观看 | 国产xx视频| 亚洲国产精品成人av | www.超碰| 亚洲久久视频 | 国产精品欧美久久久久无广告 | 91免费黄视频 | 欧美日韩调教 | 免费视频一区二区 | 日韩精品资源 | 精品亚洲va在线va天堂资源站 | 日韩视频欧美视频 | 国产精品一区二区精品视频免费看 | 四虎在线永久免费观看 | 五月婷激情 | 狠狠躁日日躁狂躁夜夜躁av | www.色午夜.com | 中文字幕二区在线观看 | 婷婷色婷婷 | 色5月婷婷| 不卡的av中文字幕 | 日本中文字幕久久 | 亚洲狠狠丁香婷婷综合久久久 | 97在线公开视频 | 久久久亚洲影院 | 天天艹天天操 | 国产精品乱码高清在线看 | 久久久久影视 | 久久精品站 | 91看片一区二区三区 | 麻豆视传媒官网免费观看 | 国产精品爽爽久久久久久蜜臀 | 91精品国产自产在线观看 | 久久综合久久综合这里只有精品 | 久久久久久久av麻豆果冻 | 午夜色性片| 亚洲性视频 | 91成人网在线观看 | 日韩av看片| 精品二区视频 | 天天干,狠狠干 | 中文字幕免费成人 | 国产正在播放 | 国产成人一区二区三区免费看 | 国产成人99av超碰超爽 | 久久精品电影网 | 国产欧美最新羞羞视频在线观看 | 国产一区欧美一区 | 国产美女精品 | 超碰国产在线 | 黄色免费观看 | 国产不卡免费av | 欧美激情视频一区二区三区 | 天天色天天上天天操 | 最近高清中文在线字幕在线观看 | 国产在线观看国语版免费 | 免费网站黄 | 成人av电影在线观看 | 玖玖精品在线 | 草莓视频在线观看免费观看 | 日韩欧美在线高清 | 99久久99久久精品 | 久久99热国产 | 国产精品久久久久久久午夜 | 日本天天色 | 五月天综合激情 | 五月天天色 | 最近中文字幕视频完整版 | 国产精品美乳一区二区免费 | 99精品国产一区二区三区麻豆 | 久久综合久久综合久久综合 | 中文在线免费一区三区 | 99热精品在线 | 香蕉精品在线观看 | 亚洲在线视频观看 | 色婷婷国产精品一区在线观看 | 国产片免费在线观看视频 | 五月激情久久 | 国产一线二线三线性视频 | 日韩精品免费一区二区在线观看 | 在线国产日韩 | 国产 日韩 在线 亚洲 字幕 中文 | 日韩中文字幕亚洲一区二区va在线 | 91亚洲精| 免费av福利 | 天天草天天操 | 国产一区二区三区在线 | 欧美一级视频在线观看 | 国产成人精品999 | 不卡国产视频 | 亚洲精品理论 | 天天天干夜夜夜操 | 日日干美女 | 午夜av免费| 狠狠色免费| 国产一区二区三区高清播放 | 91精品视频在线看 | 国产对白av | 亚洲成人频道 | 福利电影一区二区 | 日韩.com | 99视频免费播放 | 亚洲日本国产精品 | 亚洲成人精品在线观看 | .国产精品成人自产拍在线观看6 | 精品久久福利 | 亚洲精品视| 超碰国产在线观看 | 91精品第一页 | 在线免费观看黄网站 | 在线观看免费视频你懂的 | 欧洲激情综合 | 啪啪激情网| 韩日av一区二区 | 岛国大片免费视频 | 亚洲高清久久久 | 在线精品视频免费播放 | 午夜黄色影院 | 偷拍久久久 | 天天操天天爱天天爽 | 久久激情视频 久久 | 黄污在线看 | 国产亚洲日本 | 日本乱视频| 国产精品久久久一区二区 | 亚洲免费观看视频 | 色婷婷激婷婷情综天天 | 日韩av一卡二卡三卡 | 欧美性色黄大片在线观看 | 丁香婷婷激情 | 色无五月 | 免费在线观看日韩 | 日本黄色免费在线观看 | 国产v在线播放 | 亚洲资源视频 | 国产精品久久久久亚洲影视 | 中文字幕 国产视频 | 国产精品国产亚洲精品看不卡15 | 一区二区三区精品在线视频 | 中文字幕免费 | 少妇18xxxx性xxxx片 | 精品福利视频在线 | 免费在线激情电影 | 一区三区视频在线观看 | www久久久久 | 国产精品美女久久 | 欧美一区二区在线免费看 | 国产在线中文字幕 | 久久a热6| 精品久久久免费 | 天天草天天色 | 亚洲天堂首页 | 欧美性黄网官网 | 亚洲精品人人 | 国产中文字幕视频在线观看 | 色爱成人网 | 日韩精品一区二区在线观看视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲精品网站在线 | 午夜av在线播放 | 精品不卡视频 | 日韩av一区二区三区四区 | 国产精品男女视频 | 欧美另类z0zx | 人人狠狠综合久久亚洲 | 日韩高清一区二区 | 国产亚洲成人网 | 中文av在线免费观看 | 中文字幕一区二区三区在线视频 | 五月婷婷另类国产 | 国产一二三区在线观看 | 亚洲专区路线二 | 四虎永久视频 | 免费av影视 | 99精品一区二区三区 | 看片网站黄 | 国产精品久久久久久久久久久免费看 | 天天干天天天天 | 国产日韩视频在线播放 | 久久高清视频免费 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 久久免费中文视频 | 91精品老司机久久一区啪 | 国产精品一区二区62 | 欧美韩国日本在线观看 | 久久精彩免费视频 | 99精品久久久久久久 | 中文有码在线视频 | 探花视频在线观看免费 | 精品1区2区| 在线观看视频免费大全 | 正在播放国产精品 | 久久精品综合一区 | 精品一区二区在线免费观看 | 人人操日日干 | 毛片播放网站 | 99精品区| 高清免费在线视频 | 国产精品久久一区二区三区, | 久久免费视频在线观看30 | 亚洲精品久久久久久中文传媒 | 中文字字幕在线 | 国产亚洲无 | 国产99久久精品一区二区300 | 免费在线91| 亚洲六月丁香色婷婷综合久久 | 波多野结衣亚洲一区二区 | 亚洲第一中文字幕 | 97精品超碰一区二区三区 | 免费看特级毛片 | a成人v| 高清不卡免费视频 | 久久国产精品第一页 | 在线国产精品一区 | 亚洲国产精品成人va在线观看 | 亚洲精品www. | 亚洲日韩欧美视频 | 久久这里只有精品23 | 九九视频网 | 狠狠色丁香久久婷婷综合丁香 | 91尤物国产尤物福利在线播放 | 精品一区二区久久久久久久网站 | 欧美另类高潮 | 波多野结衣视频一区二区 | 欧美人交a欧美精品 | 91亚洲网| 99热高清| 五月天狠狠操 | 日韩精品综合在线 | 中文字幕久久精品 | 在线日韩视频 | 97精品国产97久久久久久免费 | 免费中文字幕视频 | 成人av一区二区兰花在线播放 | 色99之美女主播在线视频 | 五月天网页 | 国产流白浆高潮在线观看 | 色香蕉在线视频 | 天天操天天操天天操天天操天天操 | 色婷婷骚婷婷 | 日韩在线观看你懂得 | 99999精品| 精品uu | 成人久久久久久久久久 | 丝袜美腿在线视频 | 91精品国自产在线观看欧美 | japanese黑人亚洲人4k | 精品国产亚洲在线 | 日本黄网站| 狠狠色丁香婷婷综合久小说久 | 综合网伊人 | 亚洲最新视频在线 | 九月婷婷人人澡人人添人人爽 | 国产精品美女久久久久久久网站 | 最新国产在线观看 | 国产精品久久久久久久久久久免费 | 国产资源在线免费观看 | 伊人狠狠色| 日韩欧美在线高清 | av超碰在线观看 | 91福利试看| 91成人免费观看视频 | av黄色影院 | 国产免费a | www.亚洲黄 | 免费看成人av | 青青河边草观看完整版高清 | 久久精品日产第一区二区三区乱码 | 亚洲精品国精品久久99热 | 深夜免费福利在线 | 国产精品一区二区在线免费观看 | 天堂av在线 | 九九九视频精品 | 国产福利91精品一区 | 亚洲黄色激情小说 | 特级大胆西西4444www | 欧美一二区视频 | 探花视频在线观看免费版 | 国产日韩精品在线 | 三上悠亚一区二区在线观看 | 国产精品成人一区二区三区吃奶 | wwwwww黄 | 亚洲日本欧美在线 | 国产日韩精品一区二区在线观看播放 | 国产999精品| 国产精品理论片在线播放 | 国产精品va在线观看入 | 久久久久久久国产精品影院 | 一区二区视频在线看 | 天堂在线免费视频 | 狠狠色丁香九九婷婷综合五月 | 99久久综合狠狠综合久久 | 日韩在线电影一区 | 国产夫妻自拍av | 国产美女精彩久久 | 中文字幕欧美三区 | 日日草夜夜操 | 一区二区精品在线 | 国产日产欧美在线观看 | 在线免费成人 | 国产亚洲激情视频在线 | 国产人成精品一区二区三 | 天天操天天射天天插 | 久久久国产一区 | 最近免费中文字幕大全高清10 | 日韩在线短视频 | 五月婷婷一级片 | 91污污| 中文字幕观看视频 | 欧美日韩午夜爽爽 | 一区二区三区韩国免费中文网站 | 欧美网站黄色 | 婷婷丁香久久五月婷婷 | 欧美乱淫视频 | 高清日韩一区二区 | 中文字幕在线观看视频免费 | 美女一级毛片视频 | 99爱在线观看 | 97超碰在线免费 | 国产精品福利av | 亚洲精品国久久99热 | 麻豆激情电影 | 91在线观看高清 | 丁香av| 成人av高清 | 国产高清免费观看 | 日本久久91 | 免费日韩 精品中文字幕视频在线 | 九9热这里真品2 | 久久久久久久久久久黄色 | 欧美性超爽 | 九九久久影院 | 国产一区在线视频播放 | 久久久久一区二区三区 | 91亚洲精品乱码久久久久久蜜桃 | 免费av小说 | 久久人人爽人人爽 | av三级在线免费观看 | 日韩字幕 | 天天天天天天天天操 | 亚洲欧美日韩国产一区二区三区 | 美女网站黄免费 | 欧美一级视频免费 | 国产成人精品亚洲 | 中文字幕成人av | 久草色在线观看 | 亚洲2019精品 | 91色吧 | 欧美色操 | 亚洲视频分类 | 91黄视频在线观看 | 日日夜夜人人精品 | 久久国产剧场电影 | 制服丝袜成人在线 | 97色在线观看免费视频 | 精品视频久久 | 国产精品情侣视频 | 国产精品资源在线观看 | 精品亚洲一区二区三区 | 一二区av| 操操操日日 | 天天干婷婷 | 国产一区在线免费 | 激情五月在线观看 | 麻豆久久久久久久 | 免费精品人在线二线三线 | 日韩免费b| 日韩剧 | 精品美女在线观看 | 91在线中文 | 国产在线看| 草久久久| 国产精品影音先锋 | 丁香网婷婷 | 四虎国产精品永久在线国在线 | 久久国产美女 | 日韩a级黄色片 | 天天操天天操 | av日韩不卡 | 成年人毛片在线观看 | 精品美女久久久久 | 91精品视频免费观看 | 久久久久久欧美二区电影网 | 欧美少妇18p| 国产精品福利视频 | 蜜臀久久99精品久久久酒店新书 | 久久久免费国产 | 精品一区二区三区在线播放 | 国产精品av一区二区 | 日日躁天天躁 | 久草视频在线观 | 国产精品久久久久久久久久久久午 | 精品999在线观看 | va视频在线 | 精品中文字幕视频 | 在线 成人 | av在线com| 国产 欧美 在线 | 欧美精品一区在线发布 | 色综合久久久久久久久五月 | av成人资源 | 亚洲视频免费 | 欧美日韩成人 |