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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Tomcat启动过程源码解读

發布時間:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tomcat启动过程源码解读 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

根據Tomcat源碼來看一下Tomcat啟動過程都做了什么

部分代碼為主要流程代碼,刪去了try-catch以及一些校驗邏輯,方便理解主流程

?

先來一張啟動過程時序圖,了解一下啟動順序

?

Tomcat啟動的入口類:org.apache.catalina.startup.Bootstrap#main

main方法是整個tomcat啟動時的入口。在main方法中,使用bootstrap.init()來初始化類加載器和創建Catalina實例,然后再啟動Catalina線程。

1 public static void main(String args[]) { 2 3 if (daemon == null) { 4 // Don't set daemon until init() has completed 5 Bootstrap bootstrap = new Bootstrap(); 6 try { 7 bootstrap.init(); 8 } catch (Throwable t) { 9 handleThrowable(t); 10 t.printStackTrace(); 11 return; 12 } 13 daemon = bootstrap; 14 } else { 15 // When running as a service the call to stop will be on a new 16 // thread so make sure the correct class loader is used to prevent 17 // a range of class not found exceptions. 18 Thread.currentThread().setContextClassLoader(daemon.catalinaLoader); 19 } 20 21 try { 22 String command = "start"; 23 if (args.length > 0) { 24 command = args[args.length - 1]; 25 } 26 27 if (command.equals("startd")) { 28 args[args.length - 1] = "start"; 29 daemon.load(args); 30 daemon.start(); 31 } else if (command.equals("stopd")) { 32 args[args.length - 1] = "stop"; 33 daemon.stop(); 34 } else if (command.equals("start")) { 35 daemon.setAwait(true); 36 daemon.load(args); 37 daemon.start(); 38 } else if (command.equals("stop")) { 39 daemon.stopServer(args); 40 } else if (command.equals("configtest")) { 41 daemon.load(args); 42 if (null==daemon.getServer()) { 43 System.exit(1); 44 } 45 System.exit(0); 46 } else { 47 log.warn("Bootstrap: command \"" + command + "\" does not exist."); 48 } 49 } catch (Throwable t) { 50 // Unwrap the Exception for clearer error reporting 51 if (t instanceof InvocationTargetException && 52 t.getCause() != null) { 53 t = t.getCause(); 54 } 55 handleThrowable(t); 56 t.printStackTrace(); 57 System.exit(1); 58 } 59 60 }

?

?

bootstrap.init()方法,用于初始化容器相關,首先創建類加載器,然后通過反射創建org.apache.catalina.startup.Catalina實例:

1 public void init() throws Exception { 2 3 initClassLoaders(); 4 5 Thread.currentThread().setContextClassLoader(catalinaLoader); 6 7 SecurityClassLoad.securityClassLoad(catalinaLoader); 8 9 // Load our startup class and call its process() method 10 if (log.isDebugEnabled()) 11 log.debug("Loading startup class"); 12 Class<?> startupClass = 13 catalinaLoader.loadClass 14 ("org.apache.catalina.startup.Catalina"); 15 Object startupInstance = startupClass.newInstance(); 16 17 // Set the shared extensions class loader 18 if (log.isDebugEnabled()) 19 log.debug("Setting startup class properties"); 20 String methodName = "setParentClassLoader"; 21 Class<?> paramTypes[] = new Class[1]; 22 paramTypes[0] = Class.forName("java.lang.ClassLoader"); 23 Object paramValues[] = new Object[1]; 24 paramValues[0] = sharedLoader; 25 Method method = 26 startupInstance.getClass().getMethod(methodName, paramTypes); 27 method.invoke(startupInstance, paramValues); 28 29 catalinaDaemon = startupInstance; 30 31 }

?

?

?

之后Bootstrap的demon.start()方法就會調用Catalina的start方法。

Catalina實例執行start方法。這里有兩個點,一個是load()加載server.xml配置、初始化Server的過程,一個是getServer().start()開啟服務、初始化并開啟一系列組件、子容器的過程。

org.apache.catalina.startup.Catalina#start 1 public void start() { 2 3 if (getServer() == null) { 4 load(); 5 } 6 7 if (getServer() == null) { 8 log.fatal("Cannot start server. Server instance is not configured."); 9 return; 10 } 11 12 long t1 = System.nanoTime(); 13 14 // Start the new server 15 try { 16 getServer().start(); 17 } catch (LifecycleException e) { 18 log.fatal(sm.getString("catalina.serverStartFail"), e); 19 try { 20 getServer().destroy(); 21 } catch (LifecycleException e1) { 22 log.debug("destroy() failed for failed Server ", e1); 23 } 24 return; 25 } 26 27 long t2 = System.nanoTime(); 28 if(log.isInfoEnabled()) { 29 log.info("Server startup in " + ((t2 - t1) / 1000000) + " ms"); 30 } 31 32 // Register shutdown hook 33 if (useShutdownHook) { 34 if (shutdownHook == null) { 35 shutdownHook = new CatalinaShutdownHook(); 36 } 37 Runtime.getRuntime().addShutdownHook(shutdownHook); 38 39 // If JULI is being used, disable JULI's shutdown hook since 40 // shutdown hooks run in parallel and log messages may be lost 41 // if JULI's hook completes before the CatalinaShutdownHook() 42 LogManager logManager = LogManager.getLogManager(); 43 if (logManager instanceof ClassLoaderLogManager) { 44 ((ClassLoaderLogManager) logManager).setUseShutdownHook( 45 false); 46 } 47 } 48 49 if (await) { 50 await(); 51 stop(); 52 } 53 }

?

?

load方法解析server.xml配置文件,并加載Server、Service、Connector、Container、Engine、Host、Context、Wrapper一系列的容器。加載完成后,調用getServer().start()來開啟一個新的Server。

?

下面先看load方法怎么加載組件和容器的:

1 /** 2 * Start a new server instance. 3 */ 4 public void load() { 5 6 long t1 = System.nanoTime(); 7 8 initDirs(); 9 10 // Before digester - it may be needed 11 initNaming(); 12 13 // Create and execute our Digester 14 Digester digester = createStartDigester(); 15 16 InputSource inputSource = null; 17 InputStream inputStream = null; 18 File file = null; 19 file = configFile(); 20 inputStream = new FileInputStream(file); 21 inputSource = new InputSource(file.toURI().toURL().toString()); 22 inputSource.setByteStream(inputStream); 23 digester.push(this); 24 digester.parse(inputSource); 25 26 27 getServer().setCatalina(this); 28 getServer().setCatalinaHome(Bootstrap.getCatalinaHomeFile()); 29 getServer().setCatalinaBase(Bootstrap.getCatalinaBaseFile()); 30 31 // Stream redirection 32 initStreams(); 33 34 // Start the new server 35 getServer().init(); 36 }

?

?

?

首先利用Digester類解析server.xml文件,得到容器的配置,并創建相應的對象,并關聯父子容器。依次創建的是StandardServer、StandardService、StandardEngine、StandardHost。

然后拿到StandardServer實例調用init()方法初始化Tomcat容器的一系列組件。一些容器初始化的的時候,都會調用其子容器的init()方法,初始化它的子容器。順序是StandardServer、StandardService、StandardEngine、Connector。每個容器都在初始化自身相關設置的同時,將子容器初始化。

?

?

?

這里插入一個Tomcat中生命周期的概念。在初始化、開啟一系列組件、容器的過程中,由tomcat'管理的組件和容器,都有一個共同的特點,都實現了org.apache.catalina.Lifecycle接口,由Tomcat管理其生命周期。Lifecycle提供一種統一的管理對象生命周期的接口。通過Lifecycle、LifecycleListener、LifecycleEvent,Catalina實現了對tomcat各種組件、容器統一的啟動和停止的方式。

?

在Tomcat服務開啟過程中啟動的一些列組件、容器,都繼承了org.apache.catalina.util.LifecycleBase這個抽象類,其中的init()、start() 方法、stop() 方法,為其子類實現了統一的start和stop管理。方法中具體的initInternal()、startInternal() 和stopInternal() 方法,交由子類自己實現。

?

看一下LifecycleBase的init()和start()的實現吧:

org.apache.catalina.util.LifecycleBase#start 1 public final synchronized void init() throws LifecycleException { 2 if (!state.equals(LifecycleState.NEW)) { 3 invalidTransition(Lifecycle.BEFORE_INIT_EVENT); 4 } 5 6 try { 7 setStateInternal(LifecycleState.INITIALIZING, null, false); 8 initInternal(); 9 setStateInternal(LifecycleState.INITIALIZED, null, false); 10 } catch (Throwable t) { 11 ExceptionUtils.handleThrowable(t); 12 setStateInternal(LifecycleState.FAILED, null, false); 13 throw new LifecycleException( 14 sm.getString("lifecycleBase.initFail",toString()), t); 15 } 16 } 17 18 19 public final synchronized void start() throws LifecycleException { 20 21 if (LifecycleState.STARTING_PREP.equals(state) || LifecycleState.STARTING.equals(state) || 22 LifecycleState.STARTED.equals(state)) { 23 24 if (log.isDebugEnabled()) { 25 Exception e = new LifecycleException(); 26 log.debug(sm.getString("lifecycleBase.alreadyStarted", toString()), e); 27 } else if (log.isInfoEnabled()) { 28 log.info(sm.getString("lifecycleBase.alreadyStarted", toString())); 29 } 30 31 return; 32 } 33 34 if (state.equals(LifecycleState.NEW)) { 35 init(); 36 } else if (state.equals(LifecycleState.FAILED)) { 37 stop(); 38 } else if (!state.equals(LifecycleState.INITIALIZED) && 39 !state.equals(LifecycleState.STOPPED)) { 40 invalidTransition(Lifecycle.BEFORE_START_EVENT); 41 } 42 43 try { 44 setStateInternal(LifecycleState.STARTING_PREP, null, false); 45 startInternal(); 46 if (state.equals(LifecycleState.FAILED)) { 47 stop(); 48 } else if (!state.equals(LifecycleState.STARTING)) { 49 invalidTransition(Lifecycle.AFTER_START_EVENT); 50 } else { 51 setStateInternal(LifecycleState.STARTED, null, false); 52 } 53 } catch (Throwable t) { 54 ExceptionUtils.handleThrowable(t); 55 setStateInternal(LifecycleState.FAILED, null, false); 56 throw new LifecycleException(sm.getString("lifecycleBase.startFail", toString()), t); 57 } 58 }

?

?

可以看到,init()和start()方法里,調用了initInternal()方法、startInternal()方法和stop()方法,這三者最終會走子類的具體實現。

?

上面的StandardServer的初始化過程就是一個活生生的例子。在Catalina的load過程中,getServer().init()方法就是LifecycleBase中的init()方法,調用initInternal()時是走的StandardServer的實現,StandardServer的initInternal()中會調用StandardServer的init()方法,進行子容器的初始化。然后依次初始化。

看一下代碼,了解一下StandardServer中的initInternal()實現。

1 /** 2 * Invoke a pre-startup initialization. This is used to allow connectors 3 * to bind to restricted ports under Unix operating environments. 4 */ 5 @Override 6 protected void initInternal() throws LifecycleException { 7 8 super.initInternal(); 9 10 // Register global String cache 11 // Note although the cache is global, if there are multiple Servers 12 // present in the JVM (may happen when embedding) then the same cache 13 // will be registered under multiple names 14 onameStringCache = register(new StringCache(), "type=StringCache"); 15 16 // Register the MBeanFactory 17 MBeanFactory factory = new MBeanFactory(); 18 factory.setContainer(this); 19 onameMBeanFactory = register(factory, "type=MBeanFactory"); 20 21 // Register the naming resources 22 globalNamingResources.init(); 23 24 // Populate the extension validator with JARs from common and shared 25 // class loaders 26 if (getCatalina() != null) { 27 ClassLoader cl = getCatalina().getParentClassLoader(); 28 // Walk the class loader hierarchy. Stop at the system class loader. 29 // This will add the shared (if present) and common class loaders 30 while (cl != null && cl != ClassLoader.getSystemClassLoader()) { 31 if (cl instanceof URLClassLoader) { 32 URL[] urls = ((URLClassLoader) cl).getURLs(); 33 for (URL url : urls) { 34 if (url.getProtocol().equals("file")) { 35 try { 36 File f = new File (url.toURI()); 37 if (f.isFile() && 38 f.getName().endsWith(".jar")) { 39 ExtensionValidator.addSystemResource(f); 40 } 41 } catch (URISyntaxException e) { 42 // Ignore 43 } catch (IOException e) { 44 // Ignore 45 } 46 } 47 } 48 } 49 cl = cl.getParent(); 50 } 51 } 52 // Initialize our defined Services 53 for (int i = 0; i < services.length; i++) { 54 services[i].init(); 55 } 56 }

?

?

?

再舉一個具體的例子:

?

回到剛才的啟動過程中,getServer().start()開啟服務的方法,實際就是上面提到的LifecycleBase中的start()方法。其中,會調用org.apache.catalina.core.StandardServer#initInternal方法,初始化Server并調用Service的init方法。org.apache.catalina.core.StandardServer在其實現的startInternal() 中,開啟naming resources和services,調用service的start方法,開啟所有service,調用其service的startInternal()方法。

?

下面看一下StandardServer中的startInternal()的實現:

org.apache.catalina.core.StandardServer#startInternal 1 protected void startInternal() throws LifecycleException { 2 3 fireLifecycleEvent(CONFIGURE_START_EVENT, null); 4 setState(LifecycleState.STARTING); 5 6 globalNamingResources.start(); 7 8 // Start our defined Services 9 synchronized (servicesLock) { 10 for (int i = 0; i < services.length; i++) { 11 services[i].start(); 12 } 13 } 14 }

?

?

這里的service,是org.apache.catalina.core.StandardService的實例。

?

總結一下啟動的Tomcat啟動的過程

在Catalina的load方法里,就已經調用了StandardServer里的init方法,一層一層初始化了globalNamingResources,StandardService--》StandardEngine,executors,MapperListener,Connector--》CoyoteAdapter,protocolHandler。至此就將tomcat的catalina中的組件、容器初始化完成。 接下來就是調用start方法一層一層開啟,StandardServer的startInternal方法,按層次start:globalNamingResources,StandardService--》StandardEngine,executors,MapperListener,Connector--》StandardHost,StandardContext,protocolHandler。順序基本同init過程。StandardEngine在start時,會init子容器,并調用子容器的start方法。子容器依次這樣init、start,就開啟了StandardHost和StandardContext。

參考文章:

tomcat源碼分析-Connector初始化與啟動

tomcat源碼分析-Container初始化與加載

tomcat源碼分析-http請求在Container中的執行路線

tomcat源碼解析(一)--啟動與Server.xml文件的解析

?

轉載于:https://www.cnblogs.com/z941030/p/8524882.html

總結

以上是生活随笔為你收集整理的Tomcat启动过程源码解读的全部內容,希望文章能夠幫你解決所遇到的問題。

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

日本精品久久久一区二区三区 | 国产a国产| www色网站 | 91九色视频观看 | 国产精品中文字幕在线 | 国模吧一区 | 在线亚洲免费视频 | 午夜精品999 | 久久夜色精品国产欧美乱 | 日韩中文字幕免费视频 | 去干成人网 | 婷婷伊人综合亚洲综合网 | av最新资源 | 欧美国产日韩久久 | 日韩小视频网站 | 91在线影视 | 激情欧美丁香 | 91插插视频 | 久久久伊人网 | av福利在线 | 天天草天天干天天射 | 欧美日韩国产欧美 | 亚洲一区二区三区毛片 | 在线亚洲午夜片av大片 | 久久天天拍 | 日产乱码一二三区别在线 | 久久免费av | 超碰人人在线观看 | 久久综合久久鬼 | 久草在线电影网 | 久草在线国产 | 免费在线日韩 | 欧美巨乳网 | 国产在线成人 | 午夜久久成人 | 超碰97av在线 | 激情大尺度视频 | 午夜影院一级片 | 国产精品黄色影片导航在线观看 | 日韩午夜av | 午夜精品福利一区二区 | 亚洲va欧美va人人爽春色影视 | 亚洲 欧美 综合 在线 精品 | 深夜精品福利 | 久久兔费看a级 | 中文字幕欧美日韩va免费视频 | 黄色三级免费网址 | 999久久久久久 | 国产午夜在线观看 | 国产欧美精品xxxx另类 | 日韩精品久久久久久中文字幕8 | 久久精品视频国产 | 亚洲国产精久久久久久久 | 国产色在线观看 | 天天做天天爱天天综合网 | 欧美一二三在线 | 一区二区精品视频 | 欧美精品免费在线观看 | 国产精品不卡一区 | 91麻豆精品久久久久久 | 久久线视频 | 97影视| 久久成人综合 | 国产亲近乱来精品 | 色视频网站在线观看一=区 a视频免费在线观看 | 免费看特级毛片 | 久草综合在线 | 午夜精品中文字幕 | 国产精品久久久久久妇 | 国内亚洲精品 | 国产一级免费观看 | 国产色a在线观看 | 亚洲视频每日更新 | 九九热99视频 | 午夜久久影视 | 国产精品一区二区三区免费看 | av电影一区 | 久久久久久久久久久免费视频 | 中文字幕国产一区二区 | 国产精品一区免费观看 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 色狠狠综合 | 久久手机精品视频 | 精品一区二区三区久久 | 婷婷在线五月 | 91人人爽久久涩噜噜噜 | 美女黄频 | 精品国产精品久久一区免费式 | 亚洲精品乱码白浆高清久久久久久 | 日韩免费三区 | 国产精品入口66mio女同 | 日韩v在线91成人自拍 | 久久精品综合视频 | 国产精品久久久久久久久久久久久 | 亚洲国产日韩av | 久久久久免费精品国产 | 草久视频在线观看 | 韩国av一区二区 | 少妇性bbb搡bbb爽爽爽欧美 | 欧美日韩二区在线 | 很黄很黄的网站免费的 | 人人狠狠综合久久亚洲 | 亚洲人成人在线 | 国产分类视频 | 亚洲91网站 | www.夜夜| 干狠狠 | 欧美日韩国产二区三区 | 91九色在线观看视频 | 久久精品爱视频 | 一区二区三区高清在线 | 国产午夜精品理论片在线 | 人人干97 | 国产福利免费在线观看 | 久久久午夜精品理论片中文字幕 | 人人插人人舔 | 91传媒视频在线观看 | 在线看的av网站 | 天天射综合网视频 | 日韩视频中文字幕在线观看 | 骄小bbw搡bbbb揉bbbb | 四虎永久免费网站 | 成人高清av在线 | 精品在线视频一区 | 久久av在线| 久久成人欧美 | 久久午夜网 | 91精品国产综合久久福利不卡 | 国产一区免费在线观看 | 黄色视屏在线免费观看 | 精品人人人 | 黄www在线观看 | 久草在线视频资源 | 久久精品人人做人人综合老师 | 成人毛片网 | 国产成人三级三级三级97 | 在线亚洲播放 | 偷拍久久久 | 中文字幕av专区 | 九九九在线 | 免费看一级黄色大全 | 国产99久久九九精品免费 | 在线免费av电影 | 亚洲麻豆精品 | 中文字幕在线观看第三页 | 亚洲激情综合 | 国产高清在线免费视频 | 97天天综合网 | 黄色av影院| 91精品黄色 | 99精品视频在线观看免费 | 欧美日韩国产网站 | 日本性动态图 | 精品国产一区二区三区男人吃奶 | 91色视频 | 亚洲精品456在线播放第一页 | 免费在线观看av网址 | 视频精品一区二区三区 | 在线免费中文字幕 | 国产剧情在线一区 | av电影在线不卡 | 免费观看91视频 | 九九欧美| 伊人天天狠天天添日日拍 | 黄色片网站| 插婷婷 | 精品久久久久一区二区国产 | 在线黄色国产 | 91亚洲精| 99性视频 | 三级黄色欧美 | 日日干干 | 国产精品免费一区二区三区 | 免费精品在线视频 | 在线观看911视频 | 亚洲专区视频在线观看 | 91麻豆看国产在线紧急地址 | 国产精品18久久久久久久网站 | 久久午夜色播影院免费高清 | 91九色porny蝌蚪视频 | 青春草视频在线播放 | 欧美日产一区 | 婷婷性综合 | 在线 视频 一区二区 | 在线免费av观看 | 欧美最猛性xxxxx亚洲精品 | 最近中文字幕完整视频高清1 | 欧美一级性生活视频 | 友田真希x88av | 亚洲精品18日本一区app | 久久精品看 | 热久久最新地址 | 性色大片在线观看 | 成人91在线观看 | 91精品国产九九九久久久亚洲 | 视频一区二区在线观看 | 日日操天天爽 | 日韩和的一区二在线 | 天天av在线播放 | 精品一区二区三区电影 | 91精彩视频 | 狠狠躁日日躁狂躁夜夜躁av | 美女在线观看av | 国产999在线 | 国产一级二级在线观看 | 99产精品成人啪免费网站 | 久久香蕉国产精品麻豆粉嫩av | 日韩电影精品一区 | av九九| 成人免费一区二区三区在线观看 | 日韩乱色精品一区二区 | 亚州精品一二三区 | 超碰在线成人 | 毛片888| 久久 在线| 五月丁婷婷| aaa日本高清在线播放免费观看 | 2018亚洲男人天堂 | 亚洲 中文 欧美 日韩vr 在线 | 国产精品麻豆一区二区三区 | 99人久久精品视频最新地址 | 色狠狠综合 | 亚洲男男gaygayxxxgv | 亚洲高清不卡av | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 成人黄色在线看 | 一区二区精 | 成人精品一区二区三区中文字幕 | 99免费视频 | 婷婷社区五月天 | 中文字幕色婷婷在线视频 | 日本在线h | 亚洲国产成人av网 | 91自拍视频在线观看 | www欧美色| 狠狠地日| 国产精品理论在线观看 | 精品一区二区三区久久 | 波多野结衣电影久久 | 99 精品 在线 | 国产高清视频在线播放一区 | 亚洲va欧美va人人爽 | 黄色免费视频在线观看 | 亚洲精品免费在线播放 | 五月综合色婷婷 | 久久国产热 | 婷婷久久综合九色综合 | 亚洲精品一区二区三区新线路 | 亚洲国产一二三 | 国产在线国产 | 欧美成人视 | 成人精品视频 | 精品99久久久久久 | 国产精品毛片久久久久久久久久99999999 | av在线免费播放网站 | 婷婷五月在线视频 | 欧美片一区二区三区 | 国产成人一区二区三区久久精品 | 天天躁天天躁天天躁婷 | 日本黄色大片免费看 | 久久视频一区 | 国产一区二区三区免费在线观看 | 91在线中字| 久久久久亚洲精品中文字幕 | 亚洲一二三区精品 | 日韩欧美国产视频 | 毛片888| 欧美一区二区三区在线视频观看 | 在线免费视 | 国产一级片免费观看 | 日本婷婷色| 欧美一级裸体视频 | 黄色亚洲免费 | 欧美视频18| 久久综合九色综合97婷婷女人 | 91禁在线看 | 黄色最新网址 | 成人免费观看a | 久久久久久久久久久久av | 在线免费黄色 | 日韩视频在线观看免费 | 手机在线免费av | 久久久五月天 | www.五月天色| 91精品国产成人观看 | 欧美 激情 国产 91 在线 | 婷婷丁香激情 | 成年在线观看 | 欧美日韩精品网站 | 欧美日韩视频在线观看一区二区 | 免费福利在线视频 | 国产123av| 美国三级黄色大片 | 日韩高清网站 | 国产综合91 | 久久久91精品国产一区二区精品 | 狠狠色丁香久久婷婷综合五月 | 久久黄页 | 精品一区二区在线播放 | 亚洲激精日韩激精欧美精品 | 国产成人久久精品77777 | 黄色毛片一级 | 色中色资源站 | 亚洲成av片人久久久 | jizz18欧美18| 操操操av | 午夜国产福利在线 | 正在播放国产精品 | 免费观看mv大片高清 | 久精品视频在线观看 | www.亚洲黄色 | 91九色视频国产 | 西西44人体做爰大胆视频 | 不卡的av | 久草男人天堂 | 久久久久综合精品福利啪啪 | 天天操天天射天天 | 中文字幕在线观看91 | 性色大片在线观看 | 天天摸天天操天天舔 | 五月天综合激情网 | 日日夜夜天天干 | 国产精品一区二区三区99 | 亚洲无吗视频在线 | 狠狠色狠狠色 | 99精品在线 | 97av超碰| 精品99在线观看 | 久久综合九九 | 亚洲人视频在线 | 丁香在线观看完整电影视频 | 精品国产电影一区 | 国产精品永久久久久久久久久 | 欧美日韩精品久久久 | 97视频在线看 | 成人在线观看资源 | 免费看国产黄色 | 亚洲码国产日韩欧美高潮在线播放 | 最新色视频 | 97超碰精品| av超碰在线 | 人人澡人人舔 | 国产专区免费 | 国产丝袜制服在线 | 日本在线观看黄色 | 特级毛片网站 | 久久五月婷婷丁香 | 欧美激情视频一二三区 | 久久嗨 | 黄色免费看片网站 | 日韩av电影一区 | 99视频精品视频高清免费 | 在线色视频小说 | 欧美成人亚洲成人 | 国产精品99久久免费观看 | 久久综合久久综合久久 | 黄色福利 | 成人四虎 | 日日日日 | 国产精品久久久久永久免费观看 | 中文字幕在线第一页 | 亚州中文av| 日韩videos| 精品国产一区二区三区久久久 | 欧美一区在线观看视频 | 久久久久久久久久电影 | 国产在线视频一区二区 | 久久 在线 | 亚洲综合成人婷婷小说 | 欧美日韩不卡一区二区三区 | www.狠狠操 | 国产精品成人免费精品自在线观看 | 中文字幕在线乱 | 国产精品毛片一区二区 | 国产黄色精品在线 | 在线最新av| 中文字幕高清免费日韩视频在线 | 91av在线播放 | 免费看一级片 | 久久99精品国产 | 在线亚洲成人 | 激情五月在线视频 | 亚洲精品视频免费在线观看 | 国产精品免费久久久久 | 国产精品成久久久久三级 | 黄色成品视频 | 五月天狠狠操 | 亚洲精品视频免费在线 | 开心色婷婷 | 亚洲国产美女久久久久 | 精品999 | 黄色av电影在线 | 中文字幕一区二区三区久久蜜桃 | 久久99精品久久久久婷婷 | 五月天中文在线 | 国产精品一区免费看8c0m | 粉嫩一区二区三区粉嫩91 | 91精品天码美女少妇 | 男女啪啪网站 | 亚洲男人天堂2018 | 久久久久久久久久久高潮一区二区 | 四虎成人网| 欧美一级免费黄色片 | 日韩高清免费在线观看 | se视频网址 | 97国产超碰在线 | 国产又粗又猛又黄 | 六月色婷婷 | 免费在线观看一区二区三区 | 精品福利在线视频 | av在线看片 | 欧美了一区在线观看 | 国产成年人av | 91av99| 国产中文字幕一区二区 | 97久久精品午夜一区二区 | 久久a国产| 国产福利a | 久久99精品久久久久蜜臀 | 久久精品视频国产 | 最近中文字幕第一页 | 中文字幕在线不卡国产视频 | 中文字幕一区二区三区四区在线视频 | 久久午夜国产精品 | 日韩在线不卡视频 | 97操碰| 视频成人永久免费视频 | 国产玖玖视频 | 欧美日韩视频在线观看免费 | 色丁香综合 | 亚洲电影黄色 | 国产精品免费视频久久久 | 91视频在线免费看 | 丁香婷婷自拍 | 97视频人人澡人人爽 | 免费激情网 | 欧美性免费 | 日韩一二三 | 91大神在线看| 97超碰成人 | 91精品国产99久久久久久红楼 | 99精品电影 | 久久综合成人网 | 337p日本欧洲亚洲大胆裸体艺术 | www.天天草| 中文字幕乱码一区二区 | 亚洲精品小视频 | 国产精品久久久av久久久 | av在线专区| 日韩精品一区二区三区免费观看 | 婷婷中文字幕在线观看 | 欧美日韩亚洲在线 | 日韩网站在线观看 | 久久久久女人精品毛片九一 | 国产免费叼嘿网站免费 | 日韩电影在线一区二区 | 国产在线一线 | 久草视频中文在线 | 一二区精品 | 午夜精品一区二区三区视频免费看 | 久久久免费播放 | 亚洲一区视频免费观看 | 99久久毛片 | 久久全国免费视频 | 国产成a人亚洲精v品在线观看 | 视频国产精品 | 久久久麻豆视频 | 久久在线精品视频 | 99热精品免费观看 | 国产一二三四在线视频 | 国产高清免费视频 | 亚洲经典视频 | 国产精品欧美激情在线观看 | 欧美日韩a视频 | 日本精品久久久久影院 | 亚洲区精品 | 999电影免费在线观看2020 | 91av电影在线观看 | 免费在线观看一区 | 天天综合网入口 | 亚洲精品在线观看视频 | 国产一区在线看 | 欧美午夜性生活 | 一区二区伦理 | 国产精品麻豆视频 | 91女人18片女毛片60分钟 | 美女黄频网站 | 91最新视频 | 国产精品免费久久久久久久久久中文 | 99精品视频免费观看视频 | 中文字幕免费一区二区 | 伊人五月 | 美女久久| 狠狠干天天干 | 亚洲乱码精品久久久久 | 国产日产精品一区二区三区四区的观看方式 | 欧美一级视频免费看 | 日韩无在线 | 在线观看黄色大片 | 天天色棕合合合合合合 | 嫩嫩影院理论片 | 婷婷久久综合九色综合 | 国产黄色网 | 最新av在线播放 | 成年美女黄网站色大片免费看 | 天天干天天做 | 玖玖精品在线 | 国产中文字幕久久 | 在线观看欧美成人 | 成人小视频在线播放 | 九九热在线观看 | 日本激情视频中文字幕 | 久久avav| 欧美日韩亚洲第一 | 人人玩人人添人人澡97 | 超碰在线9| 黄色av电影在线观看 | 天天操夜夜操 | 午夜精品久久久久久久99 | 91喷水| 国产裸体bbb视频 | 天天精品视频 | 欧美成人h版电影 | 九九热免费精品视频 | 麻豆免费精品视频 | 国产一区二区在线免费播放 | 96视频免费在线观看 | 激情综合亚洲 | 蜜臀aⅴ国产精品久久久国产 | 91精品国产自产91精品 | 综合久久精品 | 狠狠色丁香婷婷综合欧美 | 中文久草| 久久久久亚洲精品男人的天堂 | 激情综合狠狠 | 免费成人av电影 | 成人av一区二区三区 | 操操操日日日干干干 | 国产精品麻| 91色一区二区三区 | 国产va饥渴难耐女保洁员在线观看 | 国产生活一级片 | av电影中文 | 日批视频在线观看免费 | 婷婷电影在线观看 | 日韩欧美视频在线免费观看 | 中文字幕黄色 | 五月婷婷影院 | 亚在线播放中文视频 | 日日干综合 | 在线中文视频 | 日韩成人免费在线电影 | 青青草国产在线 | 天天干夜夜爽 | 一区二区三区在线免费观看视频 | 免费视频黄色 | 久久久久久久国产精品视频 | 欧美一区中文字幕 | 免费在线观看不卡av | 成人免费网站视频 | 特级免费毛片 | 麻豆免费精品视频 | 久久免费视频网 | 久久99国产精品免费 | 日韩超碰在线 | 亚洲欧美日本一区二区三区 | 在线看片日韩 | www.色综合.com | 五月天激情视频在线观看 | 99精品视频免费看 | 伊人久在线 | 久久成人国产精品一区二区 | 一区三区在线欧 | 二区视频在线 | 99免费看片 | 国产精品久久久久高潮 | 黄色在线视频网址 | 国产黄色一级片 | www.久久久.cum | 亚洲va综合va国产va中文 | 午夜精品久久久久久久99热影院 | 日韩h在线观看 | 欧美视屏一区二区 | 欧美激情视频一区二区三区免费 | 中文字幕在线看视频国产中文版 | 精品国产一区二区三区久久久蜜月 | 蜜臀av性久久久久av蜜臀妖精 | 超碰国产人人 | 欧美性脚交 | 色多多视频在线 | 国产一级二级av | 久久99国产综合精品 | 久草在线视频在线 | 一级片免费视频 | 欧美成人影音 | 五月婷婷av| 狠狠色狠狠色综合日日小说 | 国产精品 日韩 | 欧美在线一级片 | 国产aa精品 | 激情五月六月婷婷 | 精品久久亚洲 | 久久久久国产精品免费网站 | 国产高清视频免费在线观看 | 免费在线日韩 | 久久精品视频在线免费观看 | 成年人免费av | 深爱激情久久 | 天天av天天| 久久久久9999亚洲精品 | 精品99久久久久久 | 偷拍精偷拍精品欧洲亚洲网站 | 香蕉在线观看视频 | 日韩中文字幕免费在线观看 | 国产一区二区精品久久91 | 91在线精品播放 | 激情综合狠狠 | 欧美一区二区视频97 | 亚洲va欧美 | 国产一区二区日本 | 国产一区二区在线影院 | 97人人人| 亚洲做受高潮欧美裸体 | 91在线麻豆 | 91看片淫黄大片一级在线观看 | 久久伊99综合婷婷久久伊 | 久久中文精品视频 | 波多野结衣在线播放视频 | 国产一级视频在线 | 国产中文字幕第一页 | 五月婷婷在线观看 | 欧美午夜久久久 | 国产一区二区三区免费在线观看 | 在线观看黄a | 中文字幕高清av | 免费看网站在线 | 蜜臀久久99精品久久久久久网站 | www五月| 久久久久中文 | 激情综合五月婷婷 | 免费精品在线 | 五月天激情视频 | 激情久久伊人 | 97超碰在线久草超碰在线观看 | 午夜精品久久久99热福利 | 中文字幕乱码在线播放 | 中文字幕乱码电影 | 欧美 日韩 性| 色婷婷av在线 | 91视频午夜 | av三区在线 | av在线播放一区二区三区 | 人人澡人人舔 | 国产在线观看,日本 | 国产一二区视频 | 亚洲精品高清一区二区三区四区 | 精品91视频 | 成人一级片免费看 | 成年一级片 | 国产91勾搭技师精品 | 国产精品99久久久久久宅男 | 亚洲精品在线免费观看视频 | 天天插狠狠插 | 成人在线观看资源 | 99热都是精品 | 欧美精品乱码久久久久久 | 国产婷婷vvvv激情久 | 国产麻豆精品久久一二三 | 国产大片免费久久 | 中文字幕中文中文字幕 | 久久国产精品久久精品 | www.久久免费视频 | 九九视频一区 | 日批视频在线播放 | 久久久国产精品一区二区中文 | 亚洲精品66 | 蜜臀久久99精品久久久久久网站 | 精品福利在线视频 | 国产精品久久婷婷六月丁香 | 操夜夜操| 亚洲精品午夜视频 | 五月天久久久 | 亚洲五月花 | 在线视频免费观看 | av大片免费在线观看 | 久久精品999 | 日韩精品一区二区三区免费观看 | 国内视频1区 | 91精品国产福利在线观看 | 国产一区二区精品久久 | 日批在线看 | .国产精品成人自产拍在线观看6 | 激情视频久久 | 成人在线观看你懂的 | 日韩性xxxx | 午夜av在线 | 欧美日韩中文在线 | 日本大片免费观看在线 | 成人黄色电影在线播放 | 亚洲一区二区精品视频 | 深夜激情影院 | 激情网第四色 | 国产欧美最新羞羞视频在线观看 | 天天爽夜夜爽人人爽一区二区 | 看片一区二区三区 | 999成人 | 香蕉精品视频在线观看 | 日韩高清一区二区 | 日批视频在线 | 精品婷婷 | 人人干人人艹 | 激情自拍av | 国产一区精品在线 | 成人一级影视 | 亚洲一区 影院 | 黄色毛片视频 | 国产黄在线免费观看 | 亚洲色视频| 99视频在线免费播放 | 国产最顶级的黄色片在线免费观看 | 视频一区二区视频 | 天天综合91 | 久久好看免费视频 | 91av视频在线播放 | 日韩在线观看视频一区二区三区 | 久久久久国产精品免费 | 日韩欧美精品在线观看视频 | 色偷偷中文字幕 | 在线视频观看成人 | 在线影院 国内精品 | 国产在线日本 | 韩国一区在线 | 精品国产一区二区三区久久久蜜月 | 夜夜躁日日躁狠狠躁 | 亚洲精品视频网 | 日日夜夜精品视频 | 午夜精品99久久免费 | 大荫蒂欧美视频另类xxxx | a在线v| 国产亚洲综合精品 | 一区二区激情视频 | 国产精品中文久久久久久久 | 麻豆传媒视频在线 | 午夜精品久久久久久久99 | 国产一区高清在线观看 | www.狠狠干 | 福利片视频区 | 亚洲电影av在线 | 在线a视频| 中文字幕中文 | 夜色成人av| 国产自制av | 精品在线观看一区二区 | www久久国产| 91av资源在线 | www.狠狠 | 欧美日比视频 | 狠狠狠狠狠狠 | 国模精品在线 | 久热国产视频 | 91av久久 | 日韩精品免费 | 狠狠干狠狠插 | 国产永久网站 | 久久久久久久久电影 | 国产91精品看黄网站在线观看动漫 | 国产精品爽爽爽 | 色诱亚洲精品久久久久久 | 国产高清视频免费最新在线 | 丁香激情综合久久伊人久久 | 亚洲高清视频一区二区三区 | 欧美日韩国产一区二区三区 | 成人av电影免费在线播放 | 亚洲国产激情 | 又爽又黄又无遮挡网站动态图 | 国产无吗一区二区三区在线欢 | 懂色av一区二区三区蜜臀 | 国产亚洲一级高清 | 久久久九九 | 欧美大荫蒂xxx | 高清一区二区三区 | 成 人 黄 色 视频免费播放 | 国产精品 日韩 欧美 | 最新中文字幕视频 | 99久久精品免费看国产免费软件 | 日本精品中文字幕在线观看 | 国产香蕉视频在线播放 | 黄色在线视频网址 | 亚洲国产字幕 | 日日夜夜天天久久 | 久久视频免费看 | 中文字幕a∨在线乱码免费看 | 成人禁用看黄a在线 | 日韩在线视频国产 | 免费高清无人区完整版 | 免费福利视频网站 | 丁香 久久 综合 | 天天综合成人 | av韩国在线 | 超碰97免费 | 91在线你懂的 | 欧美日韩在线电影 | 黄色片网站免费 | 粉嫩av一区二区三区四区 | 亚洲精品美女久久17c | 99久久激情视频 | 五月婷丁香网 | av在线一 | 中文字幕免费在线看 | 五月婷婷导航 | 久久综合给合久久狠狠色 | 精品色999 | 不卡国产在线 | 免费看国产a | 天天干天天操天天射 | 国产99久久九九精品 | 在线观看完整版免费 | 久久国产亚洲视频 | 色综合久久中文综合久久牛 | 麻豆国产露脸在线观看 | 亚洲 欧洲 国产 日本 综合 | 99婷婷 | 亚洲精品乱码久久久久久蜜桃欧美 | 日本韩国欧美在线观看 | 亚洲欧美乱综合图片区小说区 | 草久电影| 性色av一区二区三区在线观看 | 91福利视频免费 | 福利视频导航网址 | 国产96av| 精品久久久久久久久久久久久久久久久久 | 日韩免费三级 | 狠狠狠狠狠干 | 香蕉视频国产在线观看 | 九九九九精品 | 狠狠干我| 网站在线观看你们懂的 | 亚洲精品美女视频 | av在线播放快速免费阴 | 在线观看免费成人av | 日韩高清 一区 | 久久国产一区二区 | 狠狠色丁香久久婷婷综合五月 | 亚洲一级久久 | 日韩精品一区二区在线观看视频 | 91人人干| 丁香婷婷激情网 | 久久人人爽人人爽人人 | 中文字幕在线免费观看 | 久久久精品在线观看 | 国产精品99久久久精品免费观看 | 中文字幕刺激在线 | 亚洲黄色免费电影 | 天天操天天弄 | 人人爽人人爽 | 日本三级人妇 | av免费观看高清 | 亚洲手机天堂 | 色婷婷视频在线观看 | 香蕉视频色 | 国产分类视频 | 久久久久久久看片 | 激情久久婷婷 | 久久久黄视频 | 欧美日韩国产精品一区二区 | 免费麻豆视频 | 2019中文在线观看 | 永久免费视频国产 | 免费大片av | 日韩精品视频第一页 | 国产视频18| 久久精品国产成人 | 精品a级片| 麻花豆传媒mv在线观看网站 | 午夜一级免费电影 | 麻豆视频免费入口 | 久久亚洲私人国产精品 | 天天舔天天射天天操 | 亚欧日韩成人h片 | 激情伊人五月天久久综合 | 日韩av高潮 | 丁香婷婷色月天 | 香蕉91视频| 国产区高清在线 | 欧美另类高清 videos | 国产在线欧美在线 | 国产a视频免费观看 | 国产淫片 | 国产免费人人看 | 在线综合色| 欧美激情一区不卡 | 视频成人免费 | 免费看污污视频的网站 | 久久久久伦理电影 | 五月开心六月伊人色婷婷 | 国产精品免费不卡 | 亚洲资源一区 | 91精品视频免费看 | 国产精品女教师 | 亚洲日本va中文字幕 | 久久影视一区 | .国产精品成人自产拍在线观看6 | 精品免费久久 | 亚洲丝袜中文 | 国产成人精品国内自产拍免费看 | 最近中文字幕免费观看 | 91视视频在线直接观看在线看网页在线看 | 最新在线你懂的 | 丝袜av一区| 日韩中文字幕a | 欧美极品久久 | 亚洲一区久久 | 字幕网av | 丝袜美腿亚洲综合 | 婷婷色综合网 | 欧美天堂久久 | 国产91精品一区二区麻豆网站 | 九九爱免费视频 | 水蜜桃亚洲一二三四在线 | 国产精品va在线观看入 | 国产一区二区免费看 | 久久久网 | 国产一级免费观看 | 久久久久久久久黄色 | 久久国产精品免费看 | 97视频免费在线看 | 亚洲少妇天堂 | 午夜精品久久久久99热app | 视频国产精品 | 亚洲成人资源 | 国产黄色片久久久 | 成人av网站在线播放 | 日本三级香港三级人妇99 | 国产精品理论片在线观看 | 天天操天天射天天添 | 国产精品99久久久久久武松影视 | 日韩有色 | 激情文学综合丁香 | 国产91免费在线 | 色5月婷婷 | 国产精品美女久久久久久久 | 91黄色成人 | 国产日韩精品一区二区三区在线 | 国产精品18久久久久久不卡孕妇 | 久久综合狠狠综合久久综合88 | 国产 成人 久久 | 久久中文字幕在线视频 | 黄色网大全| 久久亚洲热 | 天天色天天射天天干 | 毛片区| 日韩精品专区 | 日韩视频在线播放 | 四川bbb搡bbb爽爽视频 | 国产精品av免费在线观看 | 亚av在线| 美女网站免费福利视频 | 在线视频电影 | 亚洲高清国产视频 | 免费在线观看av不卡 | 在线免费观看的av网站 | 久久99精品一区二区三区三区 | 国产在线国偷精品产拍 | 2018亚洲男人天堂 | 久久人人爽人人爽人人片 | 欧美一区二区三区免费看 | 九色最新网址 | 四虎成人免费观看 | 国产99爱| 91精品第一页 | 国产精品免费在线播放 | 麻豆视频在线播放 | 亚洲四虎在线 | 日韩理论电影网 | 丁香视频全集免费观看 | 国产在线观看高清视频 | 日韩色高清 | 999久久a精品合区久久久 | 国产精品欧美久久久久无广告 | 午夜天天操 | 亚洲乱亚洲乱妇 | 免费三及片 | 天天操天天干天天玩 | 国产亚洲免费的视频看 | 九九一级片 | 色五月成人 | v片在线看 | 久草久草在线观看 | 久久久久久国产精品999 | 日本成人中文字幕在线观看 | 精品国产欧美一区二区 | 日韩视频在线不卡 | 黄色软件在线看 | 夜夜视频欧洲 | 97在线免费观看视频 | 91视频 - v11av | 国产婷婷一区二区 | 午夜免费在线观看 |