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

Java理論與實踐: Web層的狀態復制

開發 后端
不管正在構建的是J2EE還是 J2SE 服務器應用程序,都有可能以某種方式使用Java Servlet——可能是直接地通過像JSP技術、Velocity或者 WebMacro 這樣的表示層,也可能通過一個基于 servlet 的Web服務實現。

不管正在構建的是 J2EE 還是 J2SE 服務器應用程序,都有可能以某種方式使用 Java Servlet —— 可能是直接地通過像 JSP 技術、Velocity 或者 WebMacro 這樣的表示層,也可能通過一個基于 servlet 的 Web 服務實現,如 Axis 或者 Glue。Servlet API 提供的一個最重要的功能是會話管理 —— 通過 HttpSession 接口進行用戶狀態的認證、失效和維護。

會話狀態

幾乎每一個 Web 應用程序都有一些會話狀態,這些狀態有可能像記住您是否已登錄這么簡單,也可能是您的會話的更詳細的歷史,如購物車的內容、以前查詢結果的緩存或者 20 頁動態問卷表的完整響應歷史。因為 HTTP 協議本身是無狀態的,所以需要將會話狀態存儲在某處并與瀏覽會話以某種方式相關聯,使得下次請求同一 Web 應用程序的頁面時可以容易地獲取。幸運的是,J2EE 提供了幾種管理會話狀態的方法 —— 狀態可以存儲在數據層,用 Servlet API 的 HttpSession 接口存儲在 Web 層,用有狀態會話 bean 存儲在 Enterprise JavaBeans(EJB)層,甚至用 cookie 或者隱藏表單字段將狀態存儲在客戶層。不幸的是,會話狀態管理不當會帶來嚴重的性能問題。

如果應用程序能夠在 HttpSession 中存儲用戶狀態,這種方法通常比其他方法更好。在客戶端用 HTTP cookie 或者隱藏表單字段存儲會話狀態有很大的安全風險 —— 它將應用程序的一部分內部內容暴露給了非受信任的客戶層。(一個早期的電子商務網站將購物車內容(包括價格)存儲在隱藏表單字段中,從而可以很容易被非法利用,讓任何了解 HTML 和 HTTP 的用戶可以以 0.01 美元購買任何商品。噢)此外,使用 cookie 或者隱藏表單字段很混亂,容易出錯,并且脆弱(如果用戶禁止在瀏覽器中使用 cookie,那么基于 cookie 的方法就完全不能工作)。

在 J2EE 應用程序中存儲服務器端狀態的其他方法是使用有狀態會話 bean,或者在數據庫中存儲會話狀態。雖然有狀態會話 bean 在會話狀態管理方面有更大的靈活性,但是在可能的情況下,將會話狀態存儲在 Web 層仍然有好處。如果業務對象是無狀態的,那么通常可以僅僅添加更多 Web 服務器來擴展應用程序,而不用添加更多 Web 服務器和更多 EJB 容器, 這樣的成本一般要低一些并且容易完成。使用 HttpSession 存儲會話狀態的另一個好處是 Servlet API 提供了一種會話失效時通知的容易方法。在數據庫中存儲會話狀態的成本可能難以承受。

servlet 規范沒有要求 servlet 容器進行某種類型的會話復制或者持久性,但是它建議將狀態復制作為 servlet 首要 存在理由(raison d'etre) 的重要部分,并且它對作為進行會話復制的容器提出了一些要求。會話復制可以提供大量好處 —— 負載平衡、伸縮性、容錯和高可用性。相應地,大多數 servlet 容器支持某種形式的 HttpSession 復制,但是復制的機制、配置和時間是由實現決定的。

HttpSession API

簡單地說, HttpSession 接口支持幾種方法,servlet、JSP 頁或者其他表示層組件可以用這些方法來跨多個 HTTP 請求維護會話信息。會話綁定到特定的用戶,但是在 Web 應用程序的所有 servlet 中共享 —— 不特定于某一個 servlet。一種考慮會話的有用方法是,會話像一個在會話期間存儲對象的 Map —— 可以用 setAttribute 按名字存儲會話屬性,并用 getAttribute 提取它們。 HttpSession 接口還包含會話生存周期方法,如 invalidate() (它通知容器應丟棄會話)。清單 1 顯示 HttpSession 接口最常用的元素:

清單 1. HttpSession API

  1. public interface HttpSession {  
  2.      Object getAttribute(String s);  
  3.      Enumeration getAttributeNames();  
  4.      void setAttribute(String s, Object o);  
  5.      void removeAttribute(String s);  
  6.      boolean isNew();  
  7.      void invalidate();  
  8.      void setMaxInactiveInterval(int i);  
  9.      int getMaxInactiveInterval();  
  10.      ...  
  11.  } 

理論上,可以跨群集一致性地完全復制會話狀態,這樣群集中的所有節點都可以服務任何請求,一個簡單的負載平衡器可以以輪詢方式傳送請求,避開有故障的主機。不過,這種緊密的復制有很高的性能成本,并且難于實現,當群集接近某一規模時,還會有伸縮性的問題。

一種更常用的方式是將負載平衡與會話相似性(affinity) 結合起來 —— 負載平衡器可以將會話與連接相關聯,并將會話中以后的請求發送給同一服務器。有很多硬件和軟件負載平衡器支持這個功能,并且這意味著只有主連接主機和會話需要故障轉移到另一臺服務器時才訪問復制的會話信息。

復制方式

復制提供了一些可能的好處,包括可用性、容錯和伸縮性。此外,有大量會話復制的方法可用:方法的選擇取決于應用程序群集的規模、復制的目標和 servlet 容器支持的復制設施。復制有性能成本,包括 CPU 周期(存儲在會話中的序列化對象)、網絡帶寬(廣播更新),以及基于磁盤的方案中寫入到磁盤或者數據庫的成本。

幾乎所有 servlet 容器都通過存儲在 HttpSession 中的序列化對象進行 HttpSession 復制,所以如果是創建一個分布式應用程序,應當確保只將可序列化對象放到會話中。(一些容器對像 EJB 引用、事務上下文、還有其他非可序列化的 J2EE 對象類型有特殊的處理。)

基于JDBC 的復制

一種會話復制的方法是序列化會話內容并將它寫入數據庫。這種方法相當直觀,其優點是不僅會話可以故障轉移到其他主機,而且即使整個群集失效,會話數據也可以保存下來。基于數據庫的復制的缺點是性能成本 —— 數據庫事務是昂貴的。雖然它可以在 Web 層很好地伸縮,但是它可能在數據層產生伸縮問題 —— 如果群集增長大到一定程度,擴展數據層以容納會話數據會很困難或者成本無法接受。

基于文件的復制

基于文件的復制類似于使用數據庫存儲序列化的會話,只不過是使用共享文件服務器而不是數據庫來存儲會話數據。這種方式的成本一般比使用數據庫的成本(硬件成本、軟件許可證和計算開銷)低,其代價則是可靠性(數據庫可提供比文件系統更強的持久化保證)。

基于內存的復制

另一種復制方式是與群集中的一個或者多個其他服務器共享序列化的會話數據副本。復制所有會話到所有主機中提供了最大的可用性,并且負載平衡最容易,但是因為復制消息所消耗的每個節點的內存和網絡帶寬,最終會限制群集的規模。一些應用服務器支持與“伙伴(buddy)”節點的基于內存的復制,其中每一個會話存在于主服務器上和一臺(或更多)備份服務器上。這種方案比將所有會話復制到所有服務器的伸縮性更好,但是當需要將會話故障轉移到另一臺服務器上時會使負載平衡任務復雜化,因為它必須找出另外哪一臺(幾臺)服務器有這個會話。

時間考慮

除了決定如何存儲復制會話數據,還有什么時候復制數據的問題。最可靠但也最昂貴的方法是每次數據改變時復制它(如每次 servlet 調用結束)。不那么昂貴、但是在故障時會有丟失一些數據的風險的方法是在每超過 N 秒時復制數據。

與時間問題有關的問題是,是復制整個會話還是只試嘗復制會話中改變了的屬性(它包含的數據會少得多)。這些都需要在可靠性和性能之間進行取舍。Servlet 開發人員應當認識到在故障轉移時,會話狀態可能變得“過時”(是幾次請求前的復制),并應當準備處理不是最新的會話內容。(例如,如果一個interview 的第 3 步產生一個會話屬性,而用戶在第 4 步時,請求被故障轉移到一個具有兩次請求之前的會話狀態復制的系統上,那么第 4 步的 servlet 代碼應預備在會話中找不到這個屬性,并采取相應的行動 —— 如重定向,而不是認定它會在那里、并在找不到它時拋出一個 NullPointerException 。)

容器支持

Servlet 容器的 HttpSession 復制選項以及如何配置這些選項是各不相同的。IBM WebSphere ®提供的復制選項是最多的,它提供了在內存中復制或者基于數據庫的復制、在 servlet 末尾或者基于時間的復制時間、傳播全部會話快照(JBoss 3.2 或以后版本)或者只傳播改變了的屬性等選擇。基于內存的復制基于 JMS 發布-訂閱,它可以復制到所有克隆、一個“伙伴”復制品或者一個專門的復制服務器。

WebLogic 還提供了一組選擇,包括內存中(使用一個伙伴復制品)、基于文件的或者基于數據庫的。JBoss 與 Tomcat 或者 Jetty servlet 容器一同使用時,進行基于內存的復制,可以選擇 servlet 末尾或者基于時間的復制時間,而快照選項(在 JBoss 3.2 或以后版本)是只復制改變了的屬性。Tomcat 5.0 為所有群集節點提供了基于內存的復制。此外,通過像 WADI 這樣的項目,可以用 servlet 過濾機制將會話復制添加到像 Tomcat 或者 Jetty 這樣的 servlet 容器中。

改進分布式 Web 應用程序的性能

不管決定使用什么機制進行會話復制,可以用幾種方式改進 Web 應用程序的性能和伸縮性。首先記住,為了獲得會話復制的好處,需要在部署描述符中將 Web 應用程序標記為 distributable,并保證在會話中的所有內容都是可序列化的。

保持會話最小

因為復制會話有隨著會話中的對象圖(object graph) 的變大而增加成本,所以應當盡可能地在會話中少放置數據。這樣做會減少復制的序列化的開銷、網絡帶寬要求和磁盤要求。特別地,將共享對象存儲在會話中一般不是好主意,因為它們需要復制到它們所屬的 每一個會話中。

不要繞過 setAttribute

在改變會話的屬性時,要知道即使 servlet 容器只是試圖做最小的更新(只傳播改變了的屬性),如果沒有調用 setAttribute ,容器也可能沒有注意到已經改變的屬性。(想像在會話中有一個 Vector ,表示購物車中的商品 —— 如果調用 getAttribute() 獲取 Vector 、然后向它添加一些內容,并且不再次調用 setAttribute ,容器可能不會意識到 Vector 已經改變了。)

使用細化的會話屬性

對于支持最小更新的容器,可以通過將多個細化的對象而不是一個大塊頭放到會話中而降低會話復制的成本。這樣,對快速改變的數據的改變也不會迫使容器去序列化并傳播慢速改變的數據。

完成后使之失效

如果知道用戶完成了會話的使用(如,用戶選擇注銷登錄),確保調用 HttpSession.invalidate() 。否則,會話將持久化直到它失效,這會消耗內存,并且可能是長時間的(取決于會話超時時間)。許多 servlet 容器對可以跨所有會話使用的內存的數量有一個限制,達到這個限制時,會序列化最先使用的會話并將它寫到磁盤上。如果知道用戶使用完了會話,可以使容器不再處理它并使它作廢。

保持會話干凈

如果在會話中有大的項,并且只在會話的一部分中使用,那么當不再需要時應刪除它們。刪除它們會減少會話復制的成本。(這種做法類似于使用顯式 nulling 以幫助垃圾收集器,老讀者知道我一般不建議這樣做,但是在這種情況下,因為有復制,在會話中保持垃圾的成本要高得多,因此值得以這種方式幫助容器。)

結束語

通過 HttpSession 復制,Servlet 容器可以在構建復制的、高可用性的 Web 應用程序方面給您減輕很多負擔。不過,對于復制有一些配置選項,每個容器都不一樣,復制策略的選擇對于應用程序的容錯、性能和伸縮性有影響。復制策略的選擇不應當是事后的 —— 您應當在構建 Web 應用程序時就考慮它。并且,一定不要忘記進行負載測試以確定應用程序的伸縮性 —— 在客戶替您做之前。

原文鏈接:http://www.cnblogs.com/ymind/archive/2012/04/27/2474307.html

【編輯推薦】

  1. Java集合框架和數組的排序
  2. 淺談Java中static作用
  3. Java Excel API及詳細教程
  4. Java代碼編寫的30條建議
  5. Java圖形界面開發:高級Swing容器(二)
責任編輯:林師授 來源: 陳彥銘的博客
相關推薦

2017-05-04 16:33:58

Java線程池實踐

2015-04-29 11:23:03

Java理論與實踐 Volatile 變

2012-03-21 10:09:12

2012-08-10 13:55:56

Java動態代理

2009-06-16 11:26:22

弱引用內存泄露

2009-06-25 13:21:00

JTS

2024-07-18 08:38:31

2010-03-18 15:06:16

2019-04-04 09:08:41

2016-08-28 14:44:42

算法TSP生物智能

2022-07-12 16:54:54

字節跳動Flink狀態查詢

2024-08-26 15:35:40

2018-05-10 15:06:43

Java Web分層實踐

2023-04-06 13:15:48

MySQL復制原理應用實踐

2015-09-11 09:59:32

2017-09-20 09:58:21

數據庫“狀態”字段設計

2022-08-26 09:51:33

Web前端自動化

2011-08-24 10:56:27

H3C

2020-08-30 14:26:30

自然語言處理書籍NLP
點贊
收藏

51CTO技術棧公眾號

久久久久久久久久久久久久久久久 | 黄色小视频大全| 99精品视频免费看| 国产手机视频一区二区| 伊人久久久久久久久久| 国产农村妇女精品久久| 日本不卡1234视频| 中文字幕五月欧美| 国产欧美日韩一区| 一级特黄录像免费看| 国产精品chinese| 亚洲天天在线日亚洲洲精| 国产精品久久久久久久99| 一个人www视频在线免费观看| 国产精品视频yy9299一区| 99热在线国产| 中文字幕一区二区久久人妻| 亚洲三级观看| 久久亚洲精品视频| 无码人妻精品一区二区中文| 视频一区在线| 欧美日韩国产美女| 免费黄色福利视频| 激情av在线| 国产精品免费人成网站| 精品国产乱码久久久久久郑州公司| 中文字幕一区二区三区免费看| 亚洲小说欧美另类社区| 精品国产网站地址| 中文字幕在线看高清电影| 综合视频一区| 欧美高清视频在线高清观看mv色露露十八 | 亚洲每日更新| 欧美另类69精品久久久久9999| 91中文字幕永久在线| 黄色网一区二区| 日韩一区二区三区免费观看| 日本肉体xxxx裸体xxx免费| 国产亚洲成av人片在线观看| 一区二区在线观看视频在线观看| 视频在线观看成人| 国产在线观看黄| 99久久精品情趣| 国产精华一区| 午夜精品久久久久久久96蜜桃| 国产一区在线观看视频| 国产啪精品视频网站| 超碰在线观看91| 欧美在线综合| 国产成人欧美在线观看| 国产精品久久久久久人| 欧美专区一区二区三区| 欧美一区深夜视频| 亚洲天堂一区在线观看| 欧美亚洲免费| 琪琪亚洲精品午夜在线| 国产一级片毛片| 久久久久久婷| 国产精品99一区| 天天天天天天天干| 日韩av在线免费观看不卡| 国内自拍欧美激情| 国产无套内射又大又猛又粗又爽 | 欧美精品在线观看| 欧美三级日本三级| 欧美黄色一级视频| 久久久久久久999精品视频| 国产一级视频在线播放| 伊人精品成人久久综合软件| 91成品人片a无限观看| 中日韩精品视频在线观看| 一区二区91| 日韩av不卡在线| 瑟瑟视频在线免费观看| 激情综合色播五月| 成人免费观看网站| 你懂的免费在线观看视频网站| 久久精品欧美日韩精品| 影音先锋欧美在线| 性网站在线观看| 五月天丁香久久| 久久精品一区二| 精品久久在线| 精品国产乱码久久久久久夜甘婷婷 | 亚洲欧美中文另类| 日本欧美一区二区三区不卡视频| 97精品国产| 欧美激情一区二区三区成人| 久久久国产精品成人免费| 日韩二区在线观看| 亚洲综合中文字幕在线| 五月婷婷综合久久| 国产精品美女久久久久久久久| 黄色一级视频播放| 色资源二区在线视频| 欧美日韩卡一卡二| 亚洲午夜久久久久久久久| 国产成人3p视频免费观看| 久久视频免费观看| 亚洲天堂视频网站| 精品一区二区在线播放| 精品久久久久久中文字幕动漫| 搞黄视频在线观看| 亚洲午夜精品久久久久久久久| 国产精品亚洲二区在线观看 | 国产欧美丝袜| 免费黄色网页在线观看| 亚洲1区2区3区4区| 欧美性受xxxxxx黑人xyx性爽| 91精品啪在线观看国产爱臀| 国产一区二区三区在线观看网站| 国产黄在线免费观看| 欧美一级二区| 999在线免费观看视频| 国家队第一季免费高清在线观看| 亚洲黄色尤物视频| 久热精品在线播放| 婷婷亚洲精品| 欧美激情综合色| 亚洲熟女乱色一区二区三区久久久| 成人aaaa免费全部观看| 黄瓜视频免费观看在线观看www | 欧美这里有精品| 日韩精品视频一区二区| 中文字幕人成人乱码| 国产精品高潮在线| 水莓100在线视频| 亚洲精品成人a在线观看| 中文久久久久久| 人人香蕉久久| 欧美激情中文网| 国产成人a人亚洲精品无码| 国产欧美日韩不卡免费| 日韩欧美在线播放视频| 欧美日韩大片免费观看| 精品综合久久久久久97| 99久久精品日本一区二区免费| 欧美国产激情一区二区三区蜜月 | 久久成人精品无人区| 日本午夜精品一区二区| 在线视频cao| 亚洲黄色av网站| 久久精品无码人妻| 成人免费三级在线| 精品久久久久久无码中文野结衣| 精品一区二区三区在线观看视频| 久久九九全国免费精品观看| 亚洲综合一区中| 国产精品另类一区| 中文字幕亚洲欧洲| 国产精品久久久乱弄| 成人黄色免费在线观看| 麻豆av在线导航| 3d动漫精品啪啪一区二区竹菊| 国产日产精品一区二区三区的介绍 | 91大神在线播放精品| 天堂中文资源在线| 色婷婷综合久久久中文字幕| 伊人网在线视频观看| 玖玖视频精品| 午夜精品亚洲一区二区三区嫩草| 91国内外精品自在线播放| 色伦专区97中文字幕| 国产精品久久久久久免费播放| 一区精品在线播放| 2018国产精品| 先锋亚洲精品| 亚洲精品日韩成人| 国产精品一区三区在线观看| 欧美夫妻性生活视频| 欧美一区,二区| 色欧美乱欧美15图片| 久久久久久成人网| 国产麻豆成人精品| 日本国产在线播放| 国产一区二区三区四区| 国产一区二区在线免费| 亚洲淫性视频| 亚洲精品综合精品自拍| 五月婷婷激情视频| 亚洲欧美日韩小说| 午夜久久久久久久| 日韩av不卡在线观看| 国产又粗又硬又长| 久久精品福利| 国产精品亚洲美女av网站| 色黄网站在线观看| 亚洲欧美中文日韩在线v日本| 国产免费不卡av| 狠狠做深爱婷婷久久综合一区| 日本在线观看网址| 成人av电影在线| 亚欧激情乱码久久久久久久久| 亚洲日本视频| 99亚洲精品视频| 亚洲+变态+欧美+另类+精品| 国产主播精品在线| 免费v片在线观看| 久久精品视频亚洲| 全部免费毛片在线播放网站| 69p69国产精品| av大全在线观看| 夜夜爽夜夜爽精品视频| 精品亚洲aⅴ无码一区二区三区| 国产成人精品网址| 日韩爱爱小视频| 亚洲免费婷婷| 精品国产一区二区三区无码| 日韩国产一区二区| 久久久久一区二区三区| 麻豆视频久久| 国产欧美在线看| 制服诱惑亚洲| 91国产美女视频| 午夜av在线播放| 日韩中文有码在线视频| 黄视频在线播放| 亚洲精品国精品久久99热| 国产成a人亚洲精v品无码| 欧美三级视频在线播放| 天天综合天天干| 亚洲最大色网站| 亚洲精品卡一卡二| 国产精品视频一区二区三区不卡| 成年人的黄色片| 国产凹凸在线观看一区二区| 最新天堂在线视频| 葵司免费一区二区三区四区五区| 日本在线xxx| 亚洲激情女人| 成年人午夜免费视频| 午夜日韩电影| 国产911在线观看| 亚洲电影在线一区二区三区| 亚洲乱码一区二区三区| 国产日产精品一区二区三区四区的观看方式 | 欧美理论片在线观看| 日本高清在线观看wwwww色| 亚洲色图第一页| 飘雪影院手机免费高清版在线观看 | 五月天婷婷社区| 亚洲精品按摩视频| 天天干,天天操,天天射| 亚洲国产精品久久久久秋霞不卡 | 一区二区三区亚洲| 国产女人在线观看| 亚洲人成欧美中文字幕| 免费在线稳定资源站| 亚洲免费精彩视频| 三级在线播放| 亚洲欧美另类自拍| 狠狠色伊人亚洲综合网站l| 亚洲欧美日本另类| 91在线免费看| 久久亚洲春色中文字幕| 美女精品视频| 韩日欧美一区二区| 午夜影院在线播放| 国产大片精品免费永久看nba| 天天综合网站| 国产美女被下药99| 国产高清日韩| 国产精品国产一区二区| 日韩成人午夜| 无遮挡亚洲一区| 天天综合久久| av免费看网址| 久色成人在线| 天天操夜夜操很很操| av在线不卡电影| 日韩一级av毛片| 亚洲人成在线播放网站岛国| 精品在线视频免费| 色综合久久综合网97色综合| 怡春院在线视频| 日韩欧美在线综合网| 色视频在线观看免费| 中文字幕在线视频日韩| 18视频在线观看| 青青草成人在线| 91精品国产一区二区在线观看| 91在线精品观看| 伊人成综合网伊人222| 亚洲国产一区二区三区在线| 国色天香一区二区| 成人在线激情网| 国产成人亚洲综合色影视| 国产美女喷水视频| 亚洲欧美日韩国产综合在线| 日韩av在线天堂| 欧美日本一道本| 污污视频在线观看网站| 色青青草原桃花久久综合 | 国产精品麻豆久久| 国产午夜福利在线播放| 蜜臀av性久久久久蜜臀aⅴ| 亚洲成a人片在线www| 欧美极品少妇xxxxⅹ高跟鞋| 麻豆一区二区三区精品视频| 欧美性xxxxx极品少妇| 亚洲国产精品无码久久| 中文字幕av一区中文字幕天堂| 免费在线看电影| 国产日韩欧美在线看| 日本欧美三级| 2021国产视频| 免费成人小视频| 99re久久精品国产| 亚洲另类中文字| 国产又粗又猛又黄视频| 欧美精品一区二区三区蜜桃| 在线免费观看的av网站| 欧美一级淫片播放口| 亚洲午夜免费| 亚洲啪啪av| 久久久蜜桃一区二区人| www.com日本| 亚洲综合久久久久| 国产精品久久久久久久久久久久久久久久久久 | 国产一区私人高清影院| 天海翼精品一区二区三区| 国产情侣第一页| 国产一区三区三区| 99久久精品久久亚洲精品| 欧美在线视频全部完| 青青操在线视频| 55夜色66夜色国产精品视频| 国产成人高清精品免费5388| 国产树林野战在线播放| 久草中文综合在线| 免费黄色国产视频| 欧美日韩视频在线一区二区| 国产区高清在线| 国产精品第二页| 欧美精品momsxxx| 久久精品免费网站| 日本一区二区免费在线观看视频 | 欧美日韩天天操| 亚洲中字黄色| 在线观看日韩精品视频| 精品国产精品自拍| 视频国产一区二区三区| 91精品国产高清| 亚洲区小说区| 人妻无码视频一区二区三区| 久久久久久久久97黄色工厂| 特黄视频免费看| 伊人久久综合97精品| 91大神在线观看线路一区| 亚洲免费在线精品一区| 久久99国产精品久久| 欧美 日韩 国产 一区二区三区 | 同心难改在线观看| 欧美一乱一性一交一视频| 婷婷综合一区| 亚洲色精品三区二区一区| 国产欧美日韩中文久久| 中文字幕免费高清在线观看| 日韩在线视频网| 亚洲精品午夜| 777精品久无码人妻蜜桃| 久久久亚洲精品石原莉奈| wwwwww在线观看| 久久这里只有精品视频首页| 日本免费一区二区三区视频| 青青青青在线视频| 91麻豆国产自产在线观看| 久久午夜鲁丝片| 毛片精品免费在线观看| 超碰成人在线观看| 欧美污视频网站| 亚洲人成影院在线观看| 免费看日韩av| 国产精品欧美日韩一区二区| 欧美激情麻豆| 亚洲精品中文字幕在线播放| 在线观看91精品国产入口| 国产理论在线观看| 国产综合第一页| 久久www免费人成看片高清| 欧美精品乱码视频一二专区| 国产午夜精品久久久| 日本免费一区二区三区等视频| 日本福利视频网站| 久久久三级国产网站| 国产a级免费视频| 欧美怡春院一区二区三区| 91麻豆国产自产在线观看亚洲 | 久久久久综合网| 国产精品久久久久久免费播放| 91po在线观看91精品国产性色| 三区四区不卡| 91av在线免费| 4438x成人网最大色成网站| 一个人www视频在线免费观看| 国产高清精品软男同| 久久精品无码一区二区三区| 精品国产黄色片| 国产精品免费观看在线| 亚洲成人中文|