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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

tomcat(14)服务器组件和服务组件

發(fā)布時(shí)間:2023/12/3 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tomcat(14)服务器组件和服务组件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【0】README 0.1)本文部分文字描述轉(zhuǎn)自 “how tomcat works”,旨在學(xué)習(xí)?“tomcat(14)服務(wù)器組件和服務(wù)組件”?的基礎(chǔ)知識(shí); 0.2)for complete source code ,please visit ?https://github.com/pacosonTang/HowTomcatWorks/tree/master/chapter14
【1】服務(wù)器組件(org.apache.catalina.Server) 1)org.apache.catalina.Server接口的實(shí)例表示 Catalina的整個(gè)servlet引擎,囊括了所有的組件。服務(wù)器組件使用了一種優(yōu)雅的方法來(lái)啟動(dòng)/關(guān)閉 整個(gè)系統(tǒng),不需要再對(duì)連接器和容器分別啟動(dòng)/ 關(guān)閉; 2)啟動(dòng)/關(guān)閉機(jī)制的工作原理:當(dāng)啟動(dòng)服務(wù)器組件時(shí),它會(huì)啟動(dòng)其中所有的組件,然后它就無(wú)限期地等待關(guān)閉命令。如果想要關(guān)閉系統(tǒng),可以向指定端口發(fā)送一條關(guān)閉命令。服務(wù)器組件接收到關(guān)閉命令后,就會(huì)關(guān)閉其中所有的組件; 3)服務(wù)組件:服務(wù)器組件引入了服務(wù)組件來(lái)包含其他組件,如一個(gè)容器組件和一個(gè)或多個(gè)連接器組件;(干貨——注意區(qū)分服務(wù)器組件和服務(wù)組件,以下代碼摘自某測(cè)試用例,StandardService表服務(wù)組件,而StandardServer表服務(wù)器組件) Service service = new StandardService();service.setName("Stand-alone Service");Server server = new StandardServer();server.addService(service);
4)服務(wù)器組件Server接口定義 package org.apache.catalina; import org.apache.catalina.deploy.NamingResources; public interface Server { public String getInfo();public NamingResources getGlobalNamingResources(); public void setGlobalNamingResources (NamingResources globalNamingResources); public int getPort(); public void setPort(int port); public String getShutdown(); public void setShutdown(String shutdown); public void addService(Service service); public void await(); public Service findService(String name); public Service[] findServices(); public void removeService(Service service);public void initialize() throws LifecycleException; } 對(duì)以上代碼的分析(Analysis): A1)shutdown屬性:保存了必須發(fā)送給Server 實(shí)例用來(lái)關(guān)閉整個(gè)系統(tǒng)的關(guān)閉命令; A2)port屬性:定義了服務(wù)器組件會(huì)從哪個(gè)端口獲取關(guān)閉命令; A3)addService() 和 removeService()方法:為服務(wù)器組件添加或移除服務(wù)組件; A4)findService()方法:返回添加到該服務(wù)器組件中的所有服務(wù)組件; A5)initialize()方法:包含在系統(tǒng)啟動(dòng)前要執(zhí)行的一些代碼;
【2】StandardServer類 1)intro:一個(gè)服務(wù)器組件可以有0個(gè)或多個(gè)服務(wù)組件;(干貨——一個(gè)服務(wù)器組件可以有0個(gè)或多個(gè)服務(wù)組件) 2)StandardServer類有4個(gè)與生命周期相關(guān)的方法,分別是initialize()方法,start()方法,stop()方法 和 await()方法;
【2.1】initialize()方法 1)intro:用于初始化添加到其中的服務(wù)器組件; public void initialize() throws LifecycleException { //org.apache.catalina.StandardServer.initialize().if (initialized)throw new LifecycleException (sm.getString("standardServer.initialize.initialized"));initialized = true;// Initialize our defined Servicesfor (int i = 0; i < services.length; i++) {services[i].initialize();}} 【2.2】start() 方法 1)intro:該方法用于啟動(dòng)服務(wù)器組件,即啟動(dòng)所有的服務(wù)組件,逐個(gè)啟動(dòng)所有組件,如連接器組件和servlet容器; public void start() throws LifecycleException { //org.apache.catalina.StandardServer.start().// Validate and update our current component stateif (started)throw new LifecycleException(sm.getString("standardServer.start.started"));// Notify our interested LifecycleListenerslifecycle.fireLifecycleEvent(BEFORE_START_EVENT, null);lifecycle.fireLifecycleEvent(START_EVENT, null);started = true;// Start our defined Servicessynchronized (services) {for (int i = 0; i < services.length; i++) {if (services[i] instanceof Lifecycle)((Lifecycle) services[i]).start();}}// Notify our interested LifecycleListenerslifecycle.fireLifecycleEvent(AFTER_START_EVENT, null);} 【2.3】stop()方法 1)intro:用于關(guān)閉服務(wù)器組件;(調(diào)用stop方法會(huì)關(guān)閉所有的服務(wù)組件,并reset started,這樣,才能再次啟動(dòng)服務(wù)器組件;參見(jiàn)start()方法) public void stop() throws LifecycleException { //org.apache.catalina.StandardServer.stop().// Validate and update our current component stateif (!started)throw new LifecycleException(sm.getString("standardServer.stop.notStarted"));// Notify our interested LifecycleListenerslifecycle.fireLifecycleEvent(BEFORE_STOP_EVENT, null);lifecycle.fireLifecycleEvent(STOP_EVENT, null);started = false;// Stop our defined Servicesfor (int i = 0; i < services.length; i++) {if (services[i] instanceof Lifecycle)((Lifecycle) services[i]).stop();}// Notify our interested LifecycleListenerslifecycle.fireLifecycleEvent(AFTER_STOP_EVENT, null);} 【2.4】await()方法 1)intro:該方法負(fù)責(zé)等待關(guān)閉整個(gè)tomcat 部署的命令; 2)await()方法:調(diào)用該方法后,會(huì)一直阻塞,直到它從 8085 端口(也可以是其他端口)上接收到關(guān)閉命令(accept()方法);當(dāng)await()方法返回時(shí),會(huì)運(yùn)行stop方法來(lái)關(guān)閉其下的所有子組件; public void await() { //org.apache.catalina.StandardServer.await().// Set up a server socket to wait onServerSocket serverSocket = null;try {serverSocket =new ServerSocket(port, 1,InetAddress.getByName("127.0.0.1"));} catch (IOException e) {System.err.println("StandardServer.await: create[" + port+ "]: " + e);e.printStackTrace();System.exit(1);}// Loop waiting for a connection and a valid commandwhile (true) {// Wait for the next connectionSocket socket = null;InputStream stream = null;try {socket = serverSocket.accept(); //highlight line.socket.setSoTimeout(10 * 1000); // Ten secondsstream = socket.getInputStream();} catch (AccessControlException ace) {System.err.println("StandardServer.accept security exception: "+ ace.getMessage());continue;} catch (IOException e) {System.err.println("StandardServer.await: accept: " + e);e.printStackTrace();System.exit(1);}// Read a set of characters from the socketStringBuffer command = new StringBuffer();int expected = 1024; // Cut off to avoid DoS attackwhile (expected < shutdown.length()) {if (random == null)random = new Random(System.currentTimeMillis());expected += (random.nextInt() % 1024);}while (expected > 0) {int ch = -1;try {ch = stream.read();} catch (IOException e) {System.err.println("StandardServer.await: read: " + e);e.printStackTrace();ch = -1;}if (ch < 32) // Control character or EOF terminates loopbreak;command.append((char) ch);expected--;}// Close the socket now that we are done with ittry {socket.close();} catch (IOException e) {;}// Match against our command stringboolean match = command.toString().equals(shutdown); //highlight line.if (match) {break;} elseSystem.err.println("StandardServer.await: Invalid command '" +command.toString() + "' received");}// Close the server socket and returntry {serverSocket.close();} catch (IOException e) {;}} 對(duì)以上代碼的調(diào)用過(guò)程分析(steps): step1)創(chuàng)建一個(gè)ServerSocket對(duì)象,監(jiān)聽(tīng)8085端口,并在while循環(huán)中調(diào)用它的accept()方法; step2)當(dāng)在指定端口上接收到消息時(shí),accept()方法才會(huì)返回; step3)將接收到的消息與關(guān)閉命令的字符串相比較,相同的話就跳出while循環(huán),關(guān)閉 ServerSocket,否則會(huì)再次循環(huán),繼續(xù)等待消息;
【3】Service接口(服務(wù)組件接口——org.apache.catalina.core.Service) 1)intro:一個(gè)服務(wù)組件可以有一個(gè)servlet容器 和 多個(gè)連接器實(shí)例;(干貨——一個(gè)服務(wù)器組件可以有0個(gè)或多個(gè)服務(wù)組件,而一個(gè)服務(wù)組件可以有一個(gè)servlet容器 和 多個(gè)連接器實(shí)例) 2)可以自由地把連接器添加到服務(wù)組件中,所有的連接器都會(huì)與這個(gè)servlet容器相關(guān)聯(lián);? package org.apache.catalina; public interface Service { public Container getContainer(); public void setContainer(Container container); public String getInfo(); public String getName(); public void setName(String name); public Server getServer(); public void setServer(Server server); public void addConnector(Connector connector); public Connector[] findConnectors(); public void removeConnector(Connector connector); public void initialize() throws LifecycleException; } 【4】StandardService類(org.apache.catalina.core.StandardService) 1)StandardService.initialize()方法:用于初始化添加到其中的所有連接器; 2)StandardService.start()方法:啟動(dòng)連接器和所有servlet容器;
【4.1】connectors 和 container 1)StandardService實(shí)例中有兩種組件:連接器和servlet容器;其中servlet容器只有一個(gè),而連接器則可以有多個(gè);(干貨——StandardService實(shí)例中有兩種組件:連接器和servlet容器) 2)多個(gè)連接器使tomcat 可以為多種不同的請(qǐng)求協(xié)議提供服務(wù);如,一個(gè)連接器處理HTTP請(qǐng)求,而另一個(gè)連接器處理HTTPS請(qǐng)求;(干貨——多個(gè)連接器使tomcat 可以為多種不同的請(qǐng)求協(xié)議提供服務(wù)) 3)變量connectors 和 container:StandardService類使用 container 變量來(lái)指向一個(gè)Container接口的實(shí)例,而數(shù)組connectors 來(lái)保存所有連接器的引用;(干貨——變量connectors 和 container的用途) private Connector connectors[] = new Connector[0]; // defined in StandardService. 4)setContainer()方法:需要調(diào)用setContainer()方法 將servlet容器與服務(wù)組件相關(guān)聯(lián); public void setContainer(Container container) { // org.apache.catalina.core.StandardService.setContainer().Container oldContainer = this.container;if ((oldContainer != null) && (oldContainer instanceof Engine))((Engine) oldContainer).setService(null);this.container = container;if ((this.container != null) && (this.container instanceof Engine))((Engine) this.container).setService(this);if (started && (this.container != null) &&(this.container instanceof Lifecycle)) {try {((Lifecycle) this.container).start();} catch (LifecycleException e) {;}}synchronized (connectors) {for (int i = 0; i < connectors.length; i++)connectors[i].setContainer(this.container);}if (started && (oldContainer != null) &&(oldContainer instanceof Lifecycle)) {try {((Lifecycle) oldContainer).stop();} catch (LifecycleException e) {;}}// Report this property change to interested listenerssupport.firePropertyChange("container", oldContainer, this.container);} 對(duì)以上代碼的補(bǔ)充描述(description):與服務(wù)組件相關(guān)聯(lián)的servlet容器的實(shí)例將被傳給每個(gè)連接器對(duì)象的 setContainer()方法,這樣在服務(wù)組件中就可以形成每個(gè)連接器和 servlet容器間的關(guān)聯(lián)關(guān)系; 5)addConnector()方法和removeConnector()方法:前者將連接器添加到服務(wù)組件中, 后者將某個(gè)連接器移除; (補(bǔ)充:addConnector()方法會(huì)初始化并啟動(dòng)添加到其中的連接器,參見(jiàn)下面的start()方法——highlight line.) public void addConnector(Connector connector) { //org.apache.catalina.core.StandardService.addConnector().synchronized (connectors) {connector.setContainer(this.container);connector.setService(this);Connector results[] = new Connector[connectors.length + 1];System.arraycopy(connectors, 0, results, 0, connectors.length);results[connectors.length] = connector;connectors = results;if (initialized) {try {connector.initialize(); //highlight line.} catch (LifecycleException e) {e.printStackTrace(System.err);}}if (started && (connector instanceof Lifecycle)) {try {((Lifecycle) connector).start();//highlight line.} catch (LifecycleException e) {;}}// Report this property change to interested listenerssupport.firePropertyChange("connector", null, connector);}} public void removeConnector(Connector connector) { //org.apache.catalina.core.StandardService.removeConnector().synchronized (connectors) {int j = -1;for (int i = 0; i < connectors.length; i++) {if (connector == connectors[i]) {j = i;break;}}if (j < 0)return;if (started && (connectors[j] instanceof Lifecycle)) {try {((Lifecycle) connectors[j]).stop();} catch (LifecycleException e) {;}}connectors[j].setContainer(null);connector.setService(null);int k = 0;Connector results[] = new Connector[connectors.length - 1];for (int i = 0; i < connectors.length; i++) {if (i != j)results[k++] = connectors[i];}connectors = results;// Report this property change to interested listenerssupport.firePropertyChange("connector", connector, null);}} 【4.2】與生命周期有關(guān)的方法(start() + stop() + initialize()) 1)intro:?與生命周期有關(guān)的方法包括Lifecycle.start() +?Lifecycle.stop()+ initialize()方法;其中initialize()方法會(huì)調(diào)用該服務(wù)組件中所有連接器的 initialize()方法; 2)org.apache.catalina.core.StandardService.initialize()源碼如下: public void initialize() throws LifecycleException { //org.apache.catalina.core.StandardService.initialize().if (initialized) throw new LifecycleException (sm.getString("standardService.initialize.initialized"));initialized = true;// Initialize our defined Connectorssynchronized (connectors) {for (int i = 0; i < connectors.length; i++) {connectors[i].initialize(); //highlight line.}}} public void initialize() throws LifecycleException { //org.apache.catalina.connector.HttpConnector.initialize().if (initialized)throw new LifecycleException (sm.getString("httpConnector.alreadyInitialized"));this.initialized=true;Exception eRethrow = null;// Establish a server socket on the specified porttry {serverSocket = open();} catch (IOException ioe) {log("httpConnector, io problem: ", ioe);eRethrow = ioe;} catch (KeyStoreException kse) {log("httpConnector, keystore problem: ", kse);eRethrow = kse;} catch (NoSuchAlgorithmException nsae) {log("httpConnector, keystore algorithm problem: ", nsae);eRethrow = nsae;} catch (CertificateException ce) {log("httpConnector, certificate problem: ", ce);eRethrow = ce;} catch (UnrecoverableKeyException uke) {log("httpConnector, unrecoverable key: ", uke);eRethrow = uke;} catch (KeyManagementException kme) {log("httpConnector, key management problem: ", kme);eRethrow = kme;}if ( eRethrow != null )throw new LifecycleException(threadName + ".open", eRethrow);} 3)org.apache.catalina.core.StandardService.start()源碼如下:該方法負(fù)責(zé)啟動(dòng)被添加到 該服務(wù)組件中的連接器和servlet容器; public void start() throws LifecycleException { // org.apache.catalina.core.StandardService.start()// Validate and update our current component stateif (started) {throw new LifecycleException(sm.getString("standardService.start.started"));}// Notify our interested LifecycleListenerslifecycle.fireLifecycleEvent(BEFORE_START_EVENT, null);System.out.println(sm.getString("standardService.start.name", this.name));lifecycle.fireLifecycleEvent(START_EVENT, null);started = true;// Start our defined Container firstif (container != null) {synchronized (container) {if (container instanceof Lifecycle) {((Lifecycle) container).start(); //highlight line.}}}// Start our defined Connectors secondsynchronized (connectors) {for (int i = 0; i < connectors.length; i++) {if (connectors[i] instanceof Lifecycle)((Lifecycle) connectors[i]).start(); //highlight line.}}// Notify our interested LifecycleListenerslifecycle.fireLifecycleEvent(AFTER_START_EVENT, null);} 4)org.apache.catalina.core.StandardService.stop()源碼如下:用于關(guān)閉與該服務(wù)組件相關(guān)聯(lián)的servlet容器和所有連接器;
public void stop() throws LifecycleException { // org.apache.catalina.core.StandardService.stop()// Validate and update our current component stateif (!started) {throw new LifecycleException(sm.getString("standardService.stop.notStarted"));}// Notify our interested LifecycleListenerslifecycle.fireLifecycleEvent(BEFORE_STOP_EVENT, null);lifecycle.fireLifecycleEvent(STOP_EVENT, null);System.out.println(sm.getString("standardService.stop.name", this.name));started = false;// Stop our defined Connectors firstsynchronized (connectors) {for (int i = 0; i < connectors.length; i++) {if (connectors[i] instanceof Lifecycle)((Lifecycle) connectors[i]).stop();//highlight line.}}// Stop our defined Container secondif (container != null) {synchronized (container) {if (container instanceof Lifecycle) {((Lifecycle) container).stop(); //highlight line.}}}// Notify our interested LifecycleListenerslifecycle.fireLifecycleEvent(AFTER_STOP_EVENT, null);} 【5】應(yīng)用程序? 1)intro:本應(yīng)用程序旨在說(shuō)明如何使用服務(wù)器組件和服務(wù)組件,特別是在 StandardServer類中如何利用 啟動(dòng)和關(guān)閉機(jī)制; 2)共有3個(gè)類:Bootstrap類+Stopper類+SimpleContextConfig類(它其實(shí)是作為 LifecycleListener的實(shí)例) 2.1)Bootstrap類源碼 public final class Bootstrap {public static void main(String[] args) {System.setProperty("catalina.base", System.getProperty("user.dir"));Connector connector = new HttpConnector();Wrapper wrapper1 = new StandardWrapper();wrapper1.setName("Primitive");wrapper1.setServletClass("PrimitiveServlet");Wrapper wrapper2 = new StandardWrapper();wrapper2.setName("Modern");wrapper2.setServletClass("ModernServlet");Context context = new StandardContext();// StandardContext's start method adds a default mappercontext.setPath("/app1");context.setDocBase("app1");context.addChild(wrapper1);context.addChild(wrapper2);LifecycleListener listener = new SimpleContextConfig();((Lifecycle) context).addLifecycleListener(listener);Host host = new StandardHost();host.addChild(context);host.setName("localhost");host.setAppBase("webapps");Loader loader = new WebappLoader();context.setLoader(loader);// context.addServletMapping(pattern, name);context.addServletMapping("/Primitive", "Primitive");context.addServletMapping("/Modern", "Modern");Engine engine = new StandardEngine();engine.addChild(host);engine.setDefaultHost("localhost");Service service = new StandardService();service.setName("Stand-alone Service");Server server = new StandardServer();server.addService(service);service.addConnector(connector);//StandardService class's setContainer will call all its connector's setContainer methodservice.setContainer(engine);// Start the new serverif (server instanceof Lifecycle) {try {server.initialize();((Lifecycle) server).start();server.await();// the program waits until the await method returns,// i.e. until a shutdown command is received.}catch (LifecycleException e) {e.printStackTrace(System.out);}}// Shut down the serverif (server instanceof Lifecycle) {try {((Lifecycle) server).stop();}catch (LifecycleException e) {e.printStackTrace(System.out);}}} } 對(duì)以上代碼的調(diào)用過(guò)程分析(steps): step1)該方法會(huì)創(chuàng)建一個(gè)連接器,兩個(gè)Wrapper實(shí)例,一個(gè)Context容器,一個(gè)Host容器和一個(gè)Engine容器; step2)將兩個(gè)Wrapper 實(shí)例添加到 Context容器中, 將Context容器添加到 Host容器中,再將Host容器添加到Engine容器中;(干貨——到此,tomcat的4種容器創(chuàng)建完畢) step3)但是,這并沒(méi)有將連接器和最頂層的容器Engine相關(guān)聯(lián); step4)相反,main()方法創(chuàng)建了一個(gè)Service對(duì)象,設(shè)置其名稱,再創(chuàng)建一個(gè) Server對(duì)象,將Service實(shí)例添加到 Server實(shí)例中: Service service = new StandardService();service.setName("Stand-alone Service");Server server = new StandardServer();server.addService(service); step5)main()方法將連接器和Engine容器添加到 Service實(shí)例中; service.addConnector(connector);service.setContainer(engine); step6)main()方法調(diào)用 Server.intialize() 和 Server.start()方法,初始化連接器,并啟動(dòng)連接器和servlet容器; step7)接下來(lái),main()方法調(diào)用Server.await()方法,進(jìn)入循環(huán)等待,監(jiān)聽(tīng)8085端口等待關(guān)閉命令;(干貨——參見(jiàn)上述【2.4】await()方法) Attention)此時(shí)連接器已經(jīng)處于運(yùn)行狀態(tài),等待另一個(gè)端口8080上的 http 請(qǐng)求;(監(jiān)聽(tīng)8085和8080端口分別處于不同的線程) // Start the new serverif (server instanceof Lifecycle) {try {server.initialize(); // step6((Lifecycle) server).start(); // step6server.await(); // step7// the program waits until the await method returns,// i.e. until a shutdown command is received.}catch (LifecycleException e) {e.printStackTrace(System.out);}} step8)除非收到了正確的關(guān)閉命令,否則await()方法是不會(huì)返回的。當(dāng) await()方法返回時(shí),main()方法調(diào)用 Server.stop()方法,實(shí)際上關(guān)閉其所有組件; // Shut down the serverif (server instanceof Lifecycle) {try {((Lifecycle) server).stop();}catch (LifecycleException e) {e.printStackTrace(System.out);}} 2.2)Stopper類 源碼 2.2.1)intro:Stopper類提供了更加優(yōu)雅的方式來(lái)關(guān)閉Catalina服務(wù)器,也保證了所有的生命周期組件中的stop() 方法都能夠調(diào)用;
public class Stopper {public static void main(String[] args) {// the following code is taken from the Stop method of// the org.apache.catalina.startup.Catalina classint port = 8005;try {Socket socket = new Socket("127.0.0.1", port);OutputStream stream = socket.getOutputStream();String shutdown = "SHUTDOWN";for (int i = 0; i < shutdown.length(); i++)stream.write(shutdown.charAt(i));stream.flush();stream.close();socket.close();System.out.println("The server was successfully shut down.");}catch (IOException e) {System.out.println("Error. The server has not been started.");}} } 對(duì)以上代碼的分析(Analysis): Stopper類的main()方法會(huì)創(chuàng)建一個(gè) Socket對(duì)象,然后將正確 的關(guān)閉命令 “SHOTDOWN”字符串發(fā)送到 端口8085。Catalina 服務(wù)器在接收到關(guān)閉命令后,就會(huì)執(zhí)行相應(yīng)的關(guān)閉操作;
Attention)本文還是習(xí)慣性地總結(jié)了上述測(cè)試用例的調(diào)用流程圖


A1)HttpConnector.start()方法的調(diào)用過(guò)程如下(下面的圖借用自 tomcat(11) 中章節(jié)【1】的4.1小節(jié)的圖):

A2)StandardsEngine.start()方法的調(diào)用過(guò)程如下(下面的第二張圖借用自tomcat(13)中的章節(jié)【10】 ,兩張圖可以結(jié)合起來(lái)看):

(補(bǔ)充,需要了解?HttpConnector.initialize() 和 start() 方法 以及 StandardContext.start()方法的具體調(diào)用過(guò)程,參見(jiàn)?tomcat(supplement)HttpConnector.initialize() 和 start() 方法 以及 StandardContext.start()方法的分析)

【6】執(zhí)行結(jié)果 1)console info E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src>java -cp .;lib/servlet.jar;lib/catalina_4_1_24.jar;lib/catalina-5.5.4.jar;lib/naming-common. jar;lib/commons-collections.jar;lib/naming-resources.jar;lib/commons-digester.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWok s\weroot com.tomcat.chapter14.startup.Bootstrap HttpConnector Opening server socket on all host IP addresses Starting service Stand-alone Service Apache Tomcat/4.1.24 WebappLoader[/app1]: Deploying class repositories to work directory E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\work\_\localhost\app1 WebappLoader[/app1]: Deploy class files /WEB-INF/classes to E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\webapps\app1\WEB-INF\classes StandardManager[/app1]: Seeding random number generator class java.security.SecureRandom StandardManager[/app1]: Seeding of random number generator has been completed StandardManager[/app1]: IOException while loading persisted sessions: java.io.EOFException java.io.EOFExceptionat java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)at java.io.ObjectInputStream.readStreamHeader(Unknown Source)at java.io.ObjectInputStream.<init>(Unknown Source)at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:103)at org.apache.catalina.session.StandardManager.load(StandardManager.java:408)at org.apache.catalina.session.StandardManager.start(StandardManager.java:655)at org.apache.catalina.core.StandardContext.start(StandardContext.java:3570)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)at org.apache.catalina.core.StandardService.start(StandardService.java:497)at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)at com.tomcat.chapter14.startup.Bootstrap.main(Bootstrap.java:77) StandardManager[/app1]: Exception loading sessions from persistent storage java.io.EOFExceptionat java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)at java.io.ObjectInputStream.readStreamHeader(Unknown Source)at java.io.ObjectInputStream.<init>(Unknown Source)at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:103)at org.apache.catalina.session.StandardManager.load(StandardManager.java:408)at org.apache.catalina.session.StandardManager.start(StandardManager.java:655)at org.apache.catalina.core.StandardContext.start(StandardContext.java:3570)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)at org.apache.catalina.core.StandardService.start(StandardService.java:497)at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)at com.tomcat.chapter14.startup.Bootstrap.main(Bootstrap.java:77) HttpConnector[8080] Starting background thread ModernServlet -- init StandardHost[localhost]: MAPPING configuration error for request URI /favicon.ico 2)執(zhí)行效果



總結(jié)

以上是生活随笔為你收集整理的tomcat(14)服务器组件和服务组件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

国产欧美日韩视频 | 免费在线观看av | 精品国产视频在线 | 黄色成人免费电影 | 99久久99久久精品免费 | 国产裸体永久免费视频网站 | jizz999| 精品视频国产一区 | 精品欧美在线视频 | 国产伦理剧 | 黄色成人在线观看 | 在线观影网站 | 99久久精品国产免费看不卡 | 天天操网址 | 久久久久久免费视频 | 操久| 99免费在线视频 | 国产91在线看 | 激情一区二区三区欧美 | 91成人短视频在线观看 | 日日摸日日添夜夜爽97 | 国产精品久久久久久久7电影 | 黄色片免费在线 | 久草精品视频在线观看 | 日本精品久久久久久 | 日韩在线视频网站 | 一区中文字幕 | 久久久久免费精品国产 | 日韩 精品 一区 国产 麻豆 | 丁香婷婷综合激情五月色 | 日韩欧美在线综合网 | .精品久久久麻豆国产精品 亚洲va欧美 | 欧美日本国产在线观看 | 亚洲黄色在线 | 日日摸日日添夜夜爽97 | 九九免费视频 | 国产精品美女久久久久aⅴ 干干夜夜 | 97超碰在线久草超碰在线观看 | av中文字幕在线免费观看 | 一区二区激情视频 | 久久er99热精品一区二区三区 | 免费成人av网站 | 国产午夜精品久久久久久久久久 | 综合久久五月天 | 97小视频| a级片在线播放 | 国产一级片在线播放 | 欧美婷婷色 | 欧美一级电影免费观看 | 久久综合久色欧美综合狠狠 | 国产视频在线看 | www.久草.com| 在线a人片免费观看视频 | 中文成人字幕 | 91亚色视频在线观看 | 欧美日韩三级在线观看 | 亚洲成人资源网 | 国产精品一区二区三区四区在线观看 | 91精品国产麻豆 | 香蕉视频在线免费 | 中文字幕日韩国产 | 成年人在线免费看视频 | 五月天色综合 | 手机在线永久免费观看av片 | 在线电影日韩 | 国产99一区视频免费 | 最近中文字幕在线播放 | 欧美a级成人淫片免费看 | 国产一区观看 | 激情视频一区二区三区 | 九九国产精品视频 | 成人午夜电影免费在线观看 | 国产区精品区 | 国产在线理论片 | 精品国偷自产国产一区 | 亚洲热久久 | 国产精品成人av在线 | 亚洲人成在线观看 | 成片免费观看视频999 | 久久久网站 | 日本在线观看一区二区 | 久久久精品福利视频 | 色之综合网 | 亚洲开心色 | 亚洲欧美少妇 | 国产精品久久99精品毛片三a | 国产亚洲午夜高清国产拍精品 | 久久久网 | 国内丰满少妇猛烈精品播 | 麻豆精品在线视频 | 亚洲影院色 | 亚洲国产综合在线 | 久久激情久久 | 欧美视频在线二区 | 激情婷婷 | 天天操天天操天天操天天操天天操天天操 | 国产91精品在线播放 | 免费av高清| 精品欧美一区二区三区久久久 | 中文字幕亚洲国产 | 尤物97国产精品久久精品国产 | 亚洲一区久久久 | 2021av在线| 九九视频精品免费 | 91精品福利在线 | 国产精品久久久久久999 | 99久精品视频 | 不卡的av电影在线观看 | 精品1区二区 | 久久综合久久综合久久综合 | 999热视频 | 欧美在线视频不卡 | 亚洲国产中文字幕在线视频综合 | 国产美女精品视频 | wwwwww色| 亚洲专区免费观看 | 日韩大片在线看 | 在线有码中文 | 欧美一级日韩免费不卡 | 国产免费国产 | 婷婷av资源| 日本女人的性生活视频 | 奇米先锋| 国产高清第一页 | 视频 天天草 | 激情婷婷亚洲 | 天天干夜夜夜操天 | 亚洲视频在线观看网站 | 最新国产精品拍自在线播放 | 久久伦理| 日本性高潮视频 | 欧美视频日韩 | 最新真实国产在线视频 | 日韩美av在线 | 久久免费高清视频 | 亚洲精品国产区 | 欧美日韩在线视频一区二区 | 国产中文字幕一区二区 | 色婷婷在线播放 | 亚洲国产中文字幕 | 天天草综合 | 国产最新视频在线 | 久久一久久 | 久久五月天婷婷 | 在线 国产 亚洲 欧美 | 亚洲理论片 | 亚洲精品高清一区二区三区四区 | 免费大片黄在线 | 91av手机在线观看 | 国产精品成人一区二区三区吃奶 | 亚洲www天堂com | 国产一级二级在线 | 成人少妇影院yyyy | 丝袜美腿av | 日韩av成人在线观看 | 东方av免费在线观看 | 日韩在线电影观看 | 欧美成人按摩 | 欧美巨大荫蒂茸毛毛人妖 | 日本久久成人 | 欧美激情精品久久久久久免费 | 久热电影 | 精品亚洲一区二区 | 日韩高清精品免费观看 | 国产偷v国产偷∨精品视频 在线草 | 亚洲一级二级三级 | 四虎影视国产精品免费久久 | 国产精品美女久久久久久 | 亚洲高清视频在线播放 | 97人人添人澡人人爽超碰动图 | 天堂激情网| 在线a人片免费观看视频 | 一级黄色片在线免费观看 | 五月婷婷综合色拍 | 美女网站视频色 | 免费在线观看a v | 毛片网站免费 | 亚洲二级片| 精品福利片 | 91一区二区在线 | 亚洲精品日韩在线观看 | www.99av| 在线小视频国产 | 97国产视频 | 成年人视频在线免费播放 | 亚洲精品国产自产拍在线观看 | 久久伊人综合 | 精品国产aⅴ麻豆 | 激情久久伊人 | 色先锋av资源中文字幕 | 男女激情免费网站 | 日韩免费一区二区三区 | 亚洲精品欧美视频 | 欧美性另类| 国产精品第2页 | 久久久久综合精品福利啪啪 | 中文字幕观看av | 成年人国产在线观看 | 91麻豆精品国产91久久久久 | 最新国产福利 | av综合网址 | 亚洲另类交 | 丁香伊人网 | 中文区中文字幕免费看 | 成人免费在线视频 | 亚洲欧美日韩精品一区二区 | 日韩欧美视频一区 | 最近中文字幕完整高清 | 色婷婷午夜 | 久久久久久国产精品美女 | 天天操天天操天天操天天操 | 国产精品成人a免费观看 | 久久免费视频在线观看30 | 国产一区成人在线 | 西西444www大胆高清视频 | 五月天伊人 | 亚洲天堂毛片 | 又黄又爽又刺激 | 9在线观看免费高清完整版在线观看明 | 日韩一级电影在线 | 99久久久久成人国产免费 | 国产电影一区二区三区四区 | 国产一级精品绿帽视频 | 久久久久久久久久久网站 | 日韩av一卡二卡三卡 | 成全免费观看视频 | 色噜噜色噜噜 | 久久精品99北条麻妃 | 久草青青在线观看 | 成人av电影网址 | 亚洲午夜久久久综合37日本 | 亚洲另类xxxx | 久草在在线 | 99久久日韩精品免费热麻豆美女 | 91视频免费观看 | 国产精品av电影 | 韩国视频一区二区三区 | 999成人 | 五月天狠狠操 | 国偷自产中文字幕亚洲手机在线 | 国产中文在线观看 | 亚洲一区二区精品在线 | 中文av在线免费观看 | 国产在线一区观看 | 蜜臀久久99精品久久久酒店新书 | 丁香视频| 国产精品永久免费在线 | 亚洲国产精品视频 | 免费麻豆 | 欧美日韩视频一区二区三区 | 国产护士在线 | 精品国产成人av在线免 | 久久只精品99品免费久23小说 | www.国产视频| 中文字幕一区二区三区四区视频 | 日韩高清黄色 | 午夜精品区 | 精品在线视频一区 | 天天天天天天天天操 | 精品国产免费人成在线观看 | 6080yy精品一区二区三区 | 国产精品一区二区三区久久久 | 久久精品香蕉视频 | 69亚洲视频 | 色黄久久久久久 | 久久成人高清视频 | 美女视频网 | 999久久国精品免费观看网站 | 国产精品久久久久久久久久直播 | av7777777| 丝袜美腿在线视频 | 热久久99这里有精品 | 久久久久欠精品国产毛片国产毛生 | 日韩av区 | 午夜骚影 | 男女精品久久 | 亚洲日本中文字幕在线观看 | 国产资源在线视频 | 日韩最新av在线 | 丁香激情五月婷婷 | 色综合 久久精品 | 久久国内精品视频 | av色影院| 亚洲资源片 | 欧美精品二 | 精品国产午夜 | 国产手机在线精品 | 国产91对白在线播 | 免费特级黄毛片 | 成人午夜剧场在线观看 | 天天操天天射天天插 | 精品中文字幕在线播放 | 亚洲日韩欧美一区二区在线 | 免费国产亚洲视频 | japanesexxxhd奶水 国产一区二区在线免费观看 | 亚洲va欧美va人人爽 | 欧美激情精品久久久久久变态 | 日日草夜夜操 | 国产视频亚洲视频 | 99久久精品无免国产免费 | 处女av在线 | 午夜精品一区二区三区在线观看 | av资源在线观看 | 在线观看成人福利 | www.com在线观看 | 久久人人射 | av五月婷婷 | 午夜久久影视 | 国产精品一区二区免费视频 | 怡红院av| 狠狠网亚洲精品 | 久久国产精品久久精品国产演员表 | 国产高清一区二区 | 91麻豆精品国产91久久久使用方法 | 黄色在线观看免费 | 黄色一级大片在线免费看产 | 四虎永久免费网站 | 水蜜桃亚洲一二三四在线 | 久久av黄色 | 免费在线激情电影 | 日韩网页 | 91电影福利 | 992tv成人免费看片 | 99久久精品免费看国产一区二区三区 | 激情欧美日韩一区二区 | 97国产大学生情侣酒店的特点 | 亚洲精品456在线播放第一页 | 国产精品久久久久一区二区三区共 | 欧美日韩国语 | 色噜噜在线观看 | 在线a人片免费观看视频 | 免费在线成人 | 美女激情影院 | 国际精品网 | 亚洲国产中文字幕在线观看 | 91麻豆精品国产午夜天堂 | 亚洲作爱 | 天堂在线成人 | 91麻豆精品国产自产在线 | 99在线精品免费视频九九视 | 97色免费视频 | 色婷婷激婷婷情综天天 | 国产99久久 | 国产欧美在线一区 | 国内精品久久久久 | 91精品国产高清 | 国产精品精品国产婷婷这里av | 色com网| 久久天天躁狠狠躁夜夜不卡公司 | 久久久私人影院 | 玖玖在线看 | 日韩中文字幕在线不卡 | 欧美贵妇性狂欢 | www.日本色 | av先锋中文字幕 | 女女av在线 | 一区二区三区免费在线观看 | 国产99精品在线观看 | 992tv人人网tv亚洲精品 | 日日草天天干 | 日韩在线视频观看 | 最新极品jizzhd欧美 | 免费观看一级视频 | 中文字幕无吗 | 丁香午夜婷婷 | 99免费精品 | 一区视频在线 | 精品一区二区在线免费观看 | 欧美 日韩 性 | 久久av在线播放 | 在线免费色 | 久草网免费 | 又爽又黄又无遮挡网站动态图 | 精品在线亚洲视频 | 久久精品国产一区二区 | 国产不卡av在线播放 | 国产福利一区二区三区在线观看 | 亚洲国产精品99久久久久久久久 | 91精品啪在线观看国产线免费 | 97av.com| 中文伊人| 综合久久久久 | 欧美黑人巨大xxxxx | 日韩成人邪恶影片 | 日韩无在线| 成人九九视频 | 天天射天天干天天插 | 日韩精品91偷拍在线观看 | 欧美一级网站 | 日本中文在线播放 | 日韩欧美一区二区三区在线 | 中文字幕在线观看第一页 | 黄色在线免费观看网址 | 亚洲精品视频免费 | 中文字幕电影在线 | 成人精品视频 | 亚洲最新视频在线 | 少妇bbbb搡bbbb桶 | 又污又黄的网站 | 午夜视频免费 | 美女黄频免费 | av在线超碰 | 日日夜夜干 | 天天干,天天插 | 热re99久久精品国产99热 | 激情五月在线视频 | 亚洲男模gay裸体gay | 欧美精品做受xxx性少妇 | 在线观看精品视频 | 黄a在线观看 | 国产高清不卡在线 | www.婷婷色 | 亚洲精品美女免费 | 亚洲精品五月天 | 在线观看中文字幕一区 | av最新资源 | 国产精品一级在线 | 久久久久视 | 免费在线精品视频 | 久久人视频 | 六月婷操| 国产精品一区二区在线 | 天天操导航 | 日本在线观看黄色 | 日日夜夜婷婷 | 久久精品久久久久电影 | av东方在线 | 精品久久久99 | 日本福利视频在线 | 青青河边草观看完整版高清 | 日韩高清一区二区 | 97在线影院 | 免费在线观看国产黄 | 中文字幕在线看视频 | 国产免费视频一区二区裸体 | 一级片视频在线 | 日本中文乱码卡一卡二新区 | 亚洲国产剧情av | 国产老熟 | 亚洲国产精品电影在线观看 | 在线国产小视频 | 成人a在线观看高清电影 | 中文字幕亚洲五码 | 国产三级视频 | 五月天激情综合网 | 亚洲国产视频在线 | 九九亚洲视频 | 国产午夜精品免费一区二区三区视频 | 91高清视频免费 | 久久久久99999 | 美女网站黄在线观看 | 久久久久久久免费看 | 久久免费视频网站 | 欧美a级一区二区 | 久久永久视频 | 中文字幕在线看视频 | 网址你懂的在线观看 | 日韩av不卡在线观看 | 91色一区二区三区 | 精品久久久久久国产91 | 欧美性受极品xxxx喷水 | 亚洲精品一区二区精华 | 91成人看片| 国产在线观看a | 三级av中文字幕 | 色.www| 欧美福利视频 | 中文字幕在线观看一区二区 | 久久精品久久精品久久39 | 999视频网 | 国产又粗又硬又爽的视频 | 免费进去里的视频 | 天天玩天天干天天操 | 福利视频导航网址 | 欧美一区二区三区免费观看 | 黄色亚洲大片免费在线观看 | 天堂av色婷婷一区二区三区 | 久久免费在线观看 | 久久天堂网站 | 国产男女免费完整视频 | 天天激情站 | 99亚洲国产| av福利网址导航大全 | 国产综合久久 | 欧美性成人 | 亚洲区精品 | a级片网站 | 久久精品99国产精品酒店日本 | 中文字幕第 | 日本特黄一级片 | 亚洲做受高潮欧美裸体 | 中文字幕在线观看免费高清完整版 | 日韩啪啪小视频 | av中文资源在线 | 久久尤物电影视频在线观看 | 色美女在线| 久久艹人人 | 国产精品h在线观看 | 欧美久草视频 | .精品久久久麻豆国产精品 亚洲va欧美 | 婷婷开心久久网 | 国产日产高清dvd碟片 | 91福利社区在线观看 | 天天射日 | aaawww| 在线观看视频91 | 欧美在线视频二区 | www.久久com| 99国产成+人+综合+亚洲 欧美 | 国产日韩欧美网站 | 最新av观看| 亚洲专区中文字幕 | 99国产精品一区 | 久久在线观看视频 | 97国产一区二区 | 天天色天天射天天综合网 | 91 在线视频 | 色婷婷激婷婷情综天天 | 日日夜av| www日日夜夜 | 色天天综合久久久久综合片 | 久久精品波多野结衣 | av字幕在线| 成人亚洲精品久久久久 | 亚洲欧美视频一区二区三区 | 中文久草| 久久精视频 | 中文字幕乱码亚洲精品一区 | 色香天天 | 欧美性生活一级片 | 国产精品一区二区久久久久 | 婷婷丁香激情综合 | 精品一区二区免费在线观看 | 在线看一区 | 国产美女视频 | 免费看色的网站 | 日韩电影一区二区在线观看 | 久久久精品国产免费观看同学 | www黄色大片 | 国产成人区 | 一区二区国产精品 | 欧美va天堂va视频va在线 | 日韩一级片网址 | 午夜婷婷综合 | 国产成人精品一区二区在线 | 黄色网址国产 | 日韩激情视频在线 | 高潮久久久 | 国产 日韩 中文字幕 | 一本到在线 | 一区二区伦理电影 | 一区二区中文字幕在线 | 91一区一区三区 | 国产精品手机视频 | 啪啪凸凸| 玖玖视频在线 | 婷婷精品国产欧美精品亚洲人人爽 | 久久人人97超碰国产公开结果 | 久久电影日韩 | 91av看片 | 国产精品一区免费观看 | 丁香五月亚洲综合在线 | 蜜桃视频成人在线观看 | 日韩高清精品一区二区 | 九九九九九九精品任你躁 | 成人久久网 | 人人插人人看 | 福利视频第一页 | www.天天射.com | 91.精品高清在线观看 | 欧美日韩在线视频一区 | av在线免费不卡 | 久久免费播放 | 久久久久久久久网站 | 九九激情视频 | 久久免费资源 | 久久久久久久影院 | 国产最新在线视频 | 激情五月婷婷综合 | 69国产盗摄一区二区三区五区 | 伊人色综合久久天天 | 国内精品久久久久影院优 | 91精品在线免费 | 丰满少妇对白在线偷拍 | 国产精品av免费观看 | 狠狠狠色狠狠色综合 | 中文字幕韩在线第一页 | 国产女教师精品久久av | 少妇高潮流白浆在线观看 | 国产精品va | 成人网444ppp| 九九精品久久 | 天天干天天操天天射 | 免费中文字幕 | 黄色毛片网站在线观看 | 国产一级做a| 看片网站黄色 | 婷婷丁香花五月天 | 在线播放国产一区二区三区 | av免费在线观看1 | 天天干.com | 成年人在线观看免费视频 | 国产精品刺激对白麻豆99 | 国产高清第一页 | 久草视频免费 | 日韩精品中文字幕在线观看 | 人人搞人人搞 | 在线观看黄色国产 | 天天射综合 | 国产视频精品免费播放 | 在线观看黄色国产 | 久久视频在线看 | 91精品久久久久久 | 日韩高清久久 | 国内视频在线观看 | 亚洲视频第一页 | 久草99| 国产在线1区 | 在线观看你懂的网站 | 日韩av资源在线观看 | 黄色aa久久 | 精品影院一区二区久久久 | 少妇bbbb搡bbbb桶 | 天天艹天天| 成人免费大片黄在线播放 | 天天色天天综合 | 国产视频精品在线 | 夜添久久精品亚洲国产精品 | 国产精品一区二区在线观看免费 | 日日草夜夜操 | 91成人在线视频观看 | 国产黄色片久久 | 五月香婷| www.夜夜骑.com | 人人搞人人爽 | 操操操夜夜操 | 国产97视频在线 | 18性欧美xxxⅹ性满足 | 久久精品久久99 | 蜜臀久久99静品久久久久久 | 最新中文字幕在线资源 | 97色狠狠 | 欧美福利视频一区 | 国产男女爽爽爽免费视频 | 国产精品乱看 | 欧美99热 | 国产无遮挡猛进猛出免费软件 | 久久99国产一区二区三区 | 91豆花在线| 日韩大片在线 | 午夜av大片 | 日本久久片 | 国产亚洲激情视频在线 | 日韩精品一区二区在线观看 | 欧美日韩国产精品一区 | 中文字幕视频免费观看 | 国产成人精品免费在线观看 | 久久精品一区二区三区四区 | 国产精品国内免费一区二区三区 | 精品视频久久久 | 人人澡人人爽欧一区 | 不卡日韩av| 中文字幕一二三区 | www.成人sex| 久久免费视频2 | 久草在线免费新视频 | 国产一区二区三区四区在线 | 欧美视频国产视频 | 韩国视频一区二区三区 | 91高清免费看 | 免费在线观看日韩视频 | 久久久91精品国产一区二区精品 | 激情av网| 免费视频 你懂的 | 国产很黄很色的视频 | 亚洲aⅴ免费在线观看 | 九色精品免费永久在线 | 最新91在线视频 | 中文字幕在线观看视频一区二区三区 | 中文字幕视频免费观看 | 99精品视频网站 | 久久综合五月天婷婷伊人 | 精品一区 在线 | 久久久久久久久久网站 | 中文日韩在线 | 黄色片免费电影 | 久久成人午夜视频 | 午夜精品视频一区 | 久久精品欧美视频 | 亚洲v欧美v国产v在线观看 | 国产精品免费在线视频 | 国产精品久久99综合免费观看尤物 | 日本久久久久久久久久久 | 高清精品久久 | 色a4yy| 日韩免费电影一区二区三区 | 色综合久久88色综合天天免费 | 一区二区三区视频网站 | 国产婷婷精品 | 国产色婷婷| 91精品国产成人 | 天天射天天射天天射 | 亚洲国内精品视频 | 激情伊人五月天 | 亚洲永久在线 | 日韩电影在线一区 | 中文字幕精品www乱入免费视频 | 久久成人午夜视频 | 国产亚洲在线 | www.日日日.com | 九九九九九九精品任你躁 | 亚洲成人资源在线观看 | 国产一区二区在线免费 | 国产小视频在线观看 | 综合色站 | 黄色福利视频网站 | 亚洲一区二区精品视频 | 久久久久久久久免费视频 | 久久8精品 | 久草免费色站 | 97精品久久人人爽人人爽 | 免费观看v片在线观看 | 国产精品ⅴa有声小说 | 国产又粗又猛又爽又黄的视频先 | 国产色道 | 综合五月婷婷 | 日韩在线观看精品 | 在线中文字幕观看 | 欧美巨乳网 | 国产韩国日本高清视频 | 久久久久夜色 | 天天天干夜夜夜操 | 中文字幕成人网 | 99精品在线视频播放 | 日韩精品免费在线观看 | 免费在线黄色av | 草久在线视频 | 97成人资源站| 国产精品精品久久久 | 久久er99热精品一区二区三区 | 狠狠干天天射 | 一区二区三区高清在线 | 欧美一区二区三区在线观看 | 色婷婷成人 | 99久久99久久精品免费 | 成人免费观看完整版电影 | 亚洲一区二区三区在线看 | aa一级片 | 亚洲经典在线 | 久久免费在线观看 | www色综合| 国产成人亚洲精品自产在线 | 久久久久亚洲国产精品 | 在线观看成人av | 在线成人免费 | 国产一级精品在线观看 | www中文在线 | 国产精品一区二区三区免费视频 | 日韩电影在线观看一区二区 | 狠狠狠狠狠狠狠 | 亚洲2019精品 | 日本中文字幕在线电影 | 精品专区 | 中文字幕无吗 | 日韩一区二区三区观看 | 日韩成人欧美 | 天天爽天天射 | 久久综合婷婷综合 | 久久久久久久电影 | 国产精品s色 | 国产视频91在线 | 狠狠躁日日躁 | 日韩一级成人av | 在线免费观看涩涩 | 久久特级毛片 | 最近更新好看的中文字幕 | 91成人蝌蚪 | 成人免费视频网 | 中文字幕不卡在线88 | 日韩av片无码一区二区不卡电影 | 国产精品门事件 | 五月天综合婷婷 | 免费a网| 久久99久久99精品免视看婷婷 | 亚州精品在线视频 | 亚洲人成人天堂h久久 | 91理论片午午伦夜理片久久 | 深夜免费福利在线 | 激情开心色 | 日韩精品免费专区 | 国产一区二区三区网站 | 99激情网| 最近中文字幕高清字幕在线视频 | 成人国产精品久久久春色 | 国产最新网站 | 玖玖在线观看视频 | 亚洲区另类春色综合小说校园片 | 精品国产视频在线 | 久久99网| 97超碰在线资源 | 色播五月激情综合网 | 中文字幕在线观看视频一区二区三区 | 国产一区在线免费观看 | 国产1级毛片 | 色婷婷丁香 | 国产 成人 久久 | 黄色的视频| 少妇搡bbbb搡bbb搡忠贞 | 国产黑丝一区二区三区 | 亚洲精品在线视频观看 | 国产成人精品一区二区三区 | 99精品欧美一区二区蜜桃免费 | 久久久久久久久毛片精品 | 亚洲欧洲一级 | 看国产黄色片 | 欧美精品久久久久久久亚洲调教 | 天天操天天是 | 一区二区三区中文字幕在线 | 天天干天天色2020 | 日日夜夜精品免费观看 | 一区二区丝袜 | 不卡的av在线播放 | 天天干.com | 欧美一级在线看 | 91精品国产91 | 一区在线电影 | 蜜臀av性久久久久av蜜臀妖精 | 成年人在线观看视频免费 | 成人影音在线 | .国产精品成人自产拍在线观看6 | 一区二区三区久久精品 | 国产成人精品一区二 | 综合网天天色 | a黄色影院 | 国产成人免费在线观看 | 日韩美女黄色片 | 天天干夜夜操视频 | 玖玖999| 国产成人一区二区三区免费看 | 国产91全国探花系列在线播放 | 在线观看国产日韩欧美 | 五月婷网| 国产精品毛片完整版 | 日韩有码在线播放 | 国产一级精品绿帽视频 | 丁香六月婷婷开心 | 日本精品久久久久中文字幕 | 久久一及片 | 美女一级毛片视频 | 亚洲精品18日本一区app | 精品a在线 | 亚洲精品播放 | 黄色小视频在线观看免费 | 亚洲尺码电影av久久 | 天天草天天干天天 | 免费观看性生活大片 | 成人全视频免费观看在线看 | 在线免费观看羞羞视频 | 久久国产精品一国产精品 | 97色在线观看 | 91亚洲夫妻 | 麻豆国产露脸在线观看 | 99综合影院在线 | 国内精品久久久久影院优 | 啪啪av在线 | 亚洲国产一区av | 免费一级日韩欧美性大片 | 色a资源在线 | 欧洲精品码一区二区三区免费看 | 日本精品中文字幕在线观看 | 精品视频123区在线观看 | 天天操天天色天天 | 欧美国产日韩中文 | 日韩三级.com | 久久国产精品一区二区 | 中文字幕亚洲欧美日韩 | av观看久久久 | 婷婷丁香社区 | 日韩在线字幕 | 久久国产精彩视频 | 99这里精品 | 国产精品中文久久久久久久 | 日批视频 | 久久夜夜夜 | 欧美日韩在线视频一区二区 | 国内精品久久久久久久久久清纯 | 中文不卡视频在线 | 日本中文字幕电影在线免费观看 | 久久精彩视频 | 久久狠狠亚洲综合 | 久久人人97超碰com | 五月天六月丁香 | 9992tv成人免费看片 | 亚洲三级在线免费观看 | 中文字幕永久 | 一级性生活片 | 久久九九精品 | 99精品在线免费视频 | 亚洲激情在线视频 | av免费成人| 992tv在线| 婷婷精品 | 亚洲理论在线观看电影 | 国产小视频国产精品 | 免费a v网站| 亚洲资源一区 | 婷婷久久婷婷 | 精品理论片 | 午夜少妇av | 日本激情视频中文字幕 | 四虎精品成人免费网站 | 久久久天堂 | 免费国产在线精品 | 亚洲精品自拍视频在线观看 | 国产日韩一区在线 | 中文字幕黄色av | 国产一二三四在线观看视频 | 国产成人精品一区二三区 | 国产精品久久久亚洲 | 91大神dom调教在线观看 | 亚洲综合最新在线 | 正在播放五月婷婷狠狠干 | 国产午夜精品久久 | 久久精品美女 | 久久99热久久99精品 | 成年人免费观看国产 | 国产成人精品不卡 | 久久观看免费视频 | 日本不卡123 | 伊人久久一区 | 成人小视频在线免费观看 | 久久久免费毛片 | 精品久久久久久一区二区里番 | 亚洲综合成人专区片 | 午夜一级免费电影 | 精品国产一区二区三区免费 | 欧美久久久久久久久中文字幕 | 96亚洲精品久久久蜜桃 | 热久久精品在线 | 亚洲精品久久久久999中文字幕 | 久久这里只有精品视频99 | 日韩av电影中文字幕在线观看 | 五月婷婷色 | 亚洲va韩国va欧美va精四季 | 欧美一级片免费在线观看 | 99久视频 | 中文av不卡 | 在线精品在线 | 狠狠操狠狠插 | 久久久久国产免费免费 | 日韩影视精品 | 欧美日韩亚洲第一 | 91手机视频 | 日本在线视频一区二区三区 | 亚洲影院色| 麻豆精品视频在线观看免费 | 99riav1国产精品视频 | 天堂在线视频免费观看 | 欧美精品免费一区二区 | 国产精品地址 | 丝袜+亚洲+另类+欧美+变态 | 欧美激情视频一区二区三区免费 | 亚洲精品激情 | 深爱激情五月网 | 久久五月网 | 亚洲 中文 在线 精品 | 国产乱对白刺激视频在线观看女王 | 久久久久久久久久国产精品 | 五月天丁香亚洲 | 久久久久久久影院 | 又黄又爽的视频在线观看网站 | 久久99精品久久久久久清纯直播 | 亚洲欧美日韩精品一区二区 | 6080yy午夜一二三区久久 | 香蕉影视在线观看 | 亚洲国产mv | 日韩免费在线观看视频 | 超碰在线1 | 精品一区电影国产 | 国产在线综合视频 | 天天av综合网 | 国产激情电影综合在线看 | 亚洲欧美日本一区二区三区 | 欧美激情一区不卡 | 日本精品视频在线 | 欧美一区日韩一区 | 亚洲三级网 | 久久成电影 | 99视频在线看| 正在播放五月婷婷狠狠干 | 天天拍夜夜拍 | 一级片视频在线 | 人人干人人草 | 久久99久久99精品中文字幕 | 91在线日韩| 97超碰成人| 99在线视频网站 | 国产高清视频免费在线观看 |