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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

spring remoting源码分析--Hessian分析

發布時間:2025/4/5 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring remoting源码分析--Hessian分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. Caucho

1.1 概況

spring-remoting代碼的情況如下:

本節近分析caucho模塊。

1.2 分類

其中以hession為例,Hessian遠程服務調用過程:

?

                          Hessian遠程服務調用過程

1.2.1 客戶端

BurlapProxyFactoryBean,BurlapClientInterceptor;

HessianProxyFactoryBean,HessianClientInterceptor;

HessianProxyFactoryBean繼承自HessianClientInterceptor,間接封裝了HessianProxyFactory。HessianProxyFactory是hessian的client實現類,

示例:

public interface Basic {public String hello(); }import com.caucho.hessian.client.HessianProxyFactory;public class BasicClient {public static void main(String []args)throws Exception{String url = "http://www.caucho.com/hessian/test/basic";HessianProxyFactory factory = new HessianProxyFactory(); Basic basic = (Basic) factory.create(Basic.class, url);System.out.println("Hello: " + basic.hello());} }

?create方法如下:

/*** Creates a new proxy with the specified URL. The returned object* is a proxy with the interface specified by api.** <pre>* String url = "http://localhost:8080/ejb/hello");* HelloHome hello = (HelloHome) factory.create(HelloHome.class, url);* </pre>** @param api the interface the proxy class needs to implement* @param url the URL where the client object is located.** @return a proxy to the object with the specified interface.*/public Object create(Class<?> api, URL url, ClassLoader loader){if (api == null)throw new NullPointerException("api must not be null for HessianProxyFactory.create()");InvocationHandler handler = null; handler = new HessianProxy(url, this, api);return Proxy.newProxyInstance(loader,new Class[] { api,HessianRemoteObject.class },handler);}

其中HessianProxy實現了java的動態代理

/*** Proxy implementation for Hessian clients. Applications will generally* use HessianProxyFactory to create proxy clients.*/ public class HessianProxy implements InvocationHandler, Serializable {private static final Logger log= Logger.getLogger(HessianProxy.class.getName());protected HessianProxyFactory _factory;private WeakHashMap<Method,String> _mangleMap= new WeakHashMap<Method,String>();private Class<?> _type;private URL _url;/*** Protected constructor for subclassing*/protected HessianProxy(URL url, HessianProxyFactory factory){this(url, factory, null);}/*** Protected constructor for subclassing*/protected HessianProxy(URL url,HessianProxyFactory factory, Class<?> type){_factory = factory;_url = url;_type = type;} }

?最重要的invoke方法如下:

/*** Handles the object invocation.** @param proxy the proxy object to invoke* @param method the method to call* @param args the arguments to the proxy object*/public Object invoke(Object proxy, Method method, Object []args)throws Throwable{String mangleName;synchronized (_mangleMap) {mangleName = _mangleMap.get(method);}if (mangleName == null) {String methodName = method.getName();Class<?> []params = method.getParameterTypes();// equals and hashCode are special casedif (methodName.equals("equals")&& params.length == 1 && params[0].equals(Object.class)) {Object value = args[0];if (value == null || ! Proxy.isProxyClass(value.getClass()))return Boolean.FALSE;Object proxyHandler = Proxy.getInvocationHandler(value);if (! (proxyHandler instanceof HessianProxy))return Boolean.FALSE;HessianProxy handler = (HessianProxy) proxyHandler;return new Boolean(_url.equals(handler.getURL()));}else if (methodName.equals("hashCode") && params.length == 0)return new Integer(_url.hashCode());else if (methodName.equals("getHessianType"))return proxy.getClass().getInterfaces()[0].getName();else if (methodName.equals("getHessianURL"))return _url.toString();else if (methodName.equals("toString") && params.length == 0)return "HessianProxy[" + _url + "]";if (! _factory.isOverloadEnabled())mangleName = method.getName();elsemangleName = mangleName(method);synchronized (_mangleMap) {_mangleMap.put(method, mangleName);}}InputStream is = null;HessianConnection conn = null;try {if (log.isLoggable(Level.FINER))log.finer("Hessian[" + _url + "] calling " + mangleName); conn = sendRequest(mangleName, args);is = getInputStream(conn);if (log.isLoggable(Level.FINEST)) {PrintWriter dbg = new PrintWriter(new LogWriter(log));HessianDebugInputStream dIs= new HessianDebugInputStream(is, dbg);dIs.startTop2();is = dIs;}AbstractHessianInput in;int code = is.read();if (code == 'H') {int major = is.read();int minor = is.read();in = _factory.getHessian2Input(is);Object value = in.readReply(method.getReturnType());return value;}else if (code == 'r') {int major = is.read();int minor = is.read();in = _factory.getHessianInput(is);in.startReplyBody();Object value = in.readObject(method.getReturnType());if (value instanceof InputStream) {value = new ResultInputStream(conn, is, in, (InputStream) value);is = null;conn = null;}elsein.completeReply();return value;}elsethrow new HessianProtocolException("'" + (char) code + "' is an unknown code");} catch (HessianProtocolException e) {throw new HessianRuntimeException(e);} finally {try {if (is != null)is.close();} catch (Exception e) {log.log(Level.FINE, e.toString(), e);}try {if (conn != null)conn.destroy();} catch (Exception e) {log.log(Level.FINE, e.toString(), e);}}}

發送http請求

/*** Sends the HTTP request to the Hessian connection.*/protected HessianConnection sendRequest(String methodName, Object []args)throws IOException{HessianConnection conn = null;conn = _factory.getConnectionFactory().open(_url);boolean isValid = false;try {addRequestHeaders(conn);OutputStream os = null;try {os = conn.getOutputStream();} catch (Exception e) {throw new HessianRuntimeException(e);}if (log.isLoggable(Level.FINEST)) {PrintWriter dbg = new PrintWriter(new LogWriter(log));HessianDebugOutputStream dOs = new HessianDebugOutputStream(os, dbg);dOs.startTop2();os = dOs;}AbstractHessianOutput out = _factory.getHessianOutput(os);out.call(methodName, args);out.flush();conn.sendRequest();isValid = true;return conn;} finally {if (! isValid && conn != null)conn.destroy();}}

創建http連接代碼

/*** Opens a new or recycled connection to the HTTP server.*/public HessianConnection open(URL url)throws IOException{if (log.isLoggable(Level.FINER))log.finer(this + " open(" + url + ")");URLConnection conn = url.openConnection();// HttpURLConnection httpConn = (HttpURLConnection) conn;// httpConn.setRequestMethod("POST");// conn.setDoInput(true);long connectTimeout = _proxyFactory.getConnectTimeout();if (connectTimeout >= 0)conn.setConnectTimeout((int) connectTimeout);conn.setDoOutput(true);long readTimeout = _proxyFactory.getReadTimeout();if (readTimeout > 0) {try {conn.setReadTimeout((int) readTimeout);} catch (Throwable e) {}}

?

1.2.2 服務器端

HessianExporter及其實現類HessianServiceExporter,SimpleHessianServiceExporter.

?hessian服務端示例

package hessian.test;import com.caucho.hessian.server.HessianServlet;public class BasicService extends HessianServlet implements Basic {public String hello(){return "Hello, world";} }

?我們來看一下:

HessianServiceExporter

/*** Servlet-API-based HTTP request handler that exports the specified service bean* as Hessian service endpoint, accessible via a Hessian proxy.** <p><b>Note:</b> Spring also provides an alternative version of this exporter,* for Sun's JRE 1.6 HTTP server: {@link SimpleHessianServiceExporter}.** <p>Hessian is a slim, binary RPC protocol.* For information on Hessian, see the* <a href="http://www.caucho.com/hessian">Hessian website</a>.* <b>Note: As of Spring 4.0, this exporter requires Hessian 4.0 or above.</b>** <p>Hessian services exported with this class can be accessed by* any Hessian client, as there isn't any special handling involved.** @author Juergen Hoeller* @since 13.05.2003* @see HessianClientInterceptor* @see HessianProxyFactoryBean* @see org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter* @see org.springframework.remoting.rmi.RmiServiceExporter*/

處理客戶端請求的方法:

/*** Processes the incoming Hessian request and creates a Hessian response.*/@Overridepublic void handleRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {if (!"POST".equals(request.getMethod())) {throw new HttpRequestMethodNotSupportedException(request.getMethod(),new String[] {"POST"}, "HessianServiceExporter only supports POST requests"); } response.setContentType(CONTENT_TYPE_HESSIAN); try { invoke(request.getInputStream(), response.getOutputStream()); } catch (Throwable ex) { throw new NestedServletException("Hessian skeleton invocation failed", ex); } }

invoke調用

/*** Actually invoke the skeleton with the given streams.* @param skeleton the skeleton to invoke* @param inputStream the request stream* @param outputStream the response stream* @throws Throwable if invocation failed*/protected void doInvoke(HessianSkeleton skeleton, InputStream inputStream, OutputStream outputStream)throws Throwable {ClassLoader originalClassLoader = overrideThreadContextClassLoader();try {InputStream isToUse = inputStream;OutputStream osToUse = outputStream; if (this.debugLogger != null && this.debugLogger.isDebugEnabled()) { PrintWriter debugWriter = new PrintWriter(new CommonsLogWriter(this.debugLogger)); @SuppressWarnings("resource") HessianDebugInputStream dis = new HessianDebugInputStream(inputStream, debugWriter); @SuppressWarnings("resource") HessianDebugOutputStream dos = new HessianDebugOutputStream(outputStream, debugWriter); dis.startTop2(); dos.startTop2(); isToUse = dis; osToUse = dos; } if (!isToUse.markSupported()) { isToUse = new BufferedInputStream(isToUse); isToUse.mark(1); } int code = isToUse.read(); int major; int minor; AbstractHessianInput in; AbstractHessianOutput out; if (code == 'H') { // Hessian 2.0 stream major = isToUse.read(); minor = isToUse.read(); if (major != 0x02) { throw new IOException("Version " + major + "." + minor + " is not understood"); } in = new Hessian2Input(isToUse); out = new Hessian2Output(osToUse); in.readCall(); } else if (code == 'C') { // Hessian 2.0 call... for some reason not handled in HessianServlet! isToUse.reset(); in = new Hessian2Input(isToUse); out = new Hessian2Output(osToUse); in.readCall(); } else if (code == 'c') { // Hessian 1.0 call major = isToUse.read(); minor = isToUse.read(); in = new HessianInput(isToUse); if (major >= 2) { out = new Hessian2Output(osToUse); } else { out = new HessianOutput(osToUse); } } else { throw new IOException("Expected 'H'/'C' (Hessian 2.0) or 'c' (Hessian 1.0) in hessian input at " + code); } if (this.serializerFactory != null) { in.setSerializerFactory(this.serializerFactory); out.setSerializerFactory(this.serializerFactory); } if (this.remoteResolver != null) { in.setRemoteResolver(this.remoteResolver); } try { skeleton.invoke(in, out); } finally { try { in.close(); isToUse.close(); } catch (IOException ex) { // ignore } try { out.close(); osToUse.close(); } catch (IOException ex) { // ignore } } } finally { resetThreadContextClassLoader(originalClassLoader); } }

調用skeleton的invoke方法

/*** Invoke the object with the request from the input stream.** @param in the Hessian input stream* @param out the Hessian output stream*/public void invoke(Object service,AbstractHessianInput in,AbstractHessianOutput out)throws Exception{ServiceContext context = ServiceContext.getContext();// backward compatibility for some frameworks that don't read// the call type firstin.skipOptionalCall();// Hessian 1.0 backward compatibilityString header;while ((header = in.readHeader()) != null) { Object value = in.readObject(); context.addHeader(header, value); } String methodName = in.readMethod(); int argLength = in.readMethodArgLength(); Method method; method = getMethod(methodName + "__" + argLength); if (method == null) method = getMethod(methodName); if (method != null) { } else if ("_hessian_getAttribute".equals(methodName)) { String attrName = in.readString(); in.completeCall(); String value = null; if ("java.api.class".equals(attrName)) value = getAPIClassName(); else if ("java.home.class".equals(attrName)) value = getHomeClassName(); else if ("java.object.class".equals(attrName)) value = getObjectClassName(); out.writeReply(value); out.close(); return; } else if (method == null) { out.writeFault("NoSuchMethodException", escapeMessage("The service has no method named: " + in.getMethod()), null); out.close(); return; } Class<?> []args = method.getParameterTypes(); if (argLength != args.length && argLength >= 0) { out.writeFault("NoSuchMethod", escapeMessage("method " + method + " argument length mismatch, received length=" + argLength), null); out.close(); return; } Object []values = new Object[args.length]; for (int i = 0; i < args.length; i++) { // XXX: needs Marshal object values[i] = in.readObject(args[i]); } Object result = null; try { result = method.invoke(service, values); } catch (Exception e) { Throwable e1 = e; if (e1 instanceof InvocationTargetException) e1 = ((InvocationTargetException) e).getTargetException(); log.log(Level.FINE, this + " " + e1.toString(), e1); out.writeFault("ServiceException", escapeMessage(e1.getMessage()), e1); out.close(); return; } // The complete call needs to be after the invoke to handle a // trailing InputStream in.completeCall(); out.writeReply(result); out.close(); }

反射觸發類的方法。

?

BurlapExporter及其實現類BurlapServiceExporter,SimpleBurlapServiceExporter,因已經depressed,故略。

1.3 小結

  Spring封裝了hessian客戶端和服務端的通用代碼,把實現者和調用者作為bean放到spring容器中管理,簡化了開發。分析源碼的過程中,發現在客戶端使用了動態代理,在服務端使用反射,讓我們加深了對java基礎知識的理解。

?

轉載于:https://www.cnblogs.com/davidwang456/p/5496933.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的spring remoting源码分析--Hessian分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

欧美国产一区二区 | 日韩精品一区电影 | 国产精品a成v人在线播放 | 四虎在线免费观看 | 在线观看色视频 | 蜜桃av人人夜夜澡人人爽 | 美女福利视频网 | 亚洲精品在线观看免费 | 国产专区精品 | 亚洲午夜av | 天天翘av| 国产不卡视频在线播放 | 久久九九免费视频 | 午夜久草 | 麻豆91视频| 97超碰国产精品女人人人爽 | 日本久久久影视 | 国产小视频在线观看 | 久久国产精品一区二区三区四区 | 欧美日韩1区 | 亚洲视频 一区 | 婷婷在线综合 | 成人9ⅰ免费影视网站 | 亚洲国产精品久久久 | 黄在线免费观看 | 亚洲欧美va| 久久精品中文字幕免费mv | 国产免费观看久久黄 | 国产在线观看你懂得 | 欧美成人性网 | 亚洲国产精品成人av | 在线久热 | 国产一区二区精品 | 国产自产在线视频 | 精品欧美日韩 | 手机成人在线 | 亚洲精品777 | 亚洲综合精品视频 | 91精品视屏| 日韩免费视频在线观看 | 国产黄a三级三级三级三级三级 | 亚洲精品在线免费观看视频 | 91成版人在线观看入口 | 国产免费叼嘿网站免费 | 久久视频| 国产精品精品 | 精品96久久久久久中文字幕无 | 婷婷亚洲激情 | 西西444www大胆高清图片 | 黄色视屏免费在线观看 | 日韩视频1区| 青草视频网 | 久草在线视频首页 | 丁香综合 | 91丨九色丨高潮 | av免费观看高清 | 探花视频免费观看 | 日本丶国产丶欧美色综合 | 激情综合狠狠 | 久久精品国产免费观看 | 日韩中文字幕免费视频 | 日韩在线观看 | 免费在线激情电影 | av免费观看网址 | 五月激情丁香 | 国产一区在线看 | 激情五月色播五月 | 婷香五月 | 国产精品不卡一区 | 国产精品丝袜在线 | 日本中文字幕在线视频 | 奇米影视777影音先锋 | 成人免费视频播放 | 免费人人干 | 日韩精品一区二区免费 | 狠狠干成人综合网 | 四虎影视成人精品国库在线观看 | 国产中文字幕三区 | 一区二区三区韩国免费中文网站 | 黄色三级免费网址 | 国产日韩亚洲 | 亚洲综合欧美激情 | 精品91| 一本大道久久精品懂色aⅴ 五月婷社区 | 欧美一级黄色视屏 | 999成人 | 9999激情| 久久久精品福利视频 | 美女啪啪图片 | 人人爽久久久噜噜噜电影 | 99视频在线看 | 久久黄色片子 | 日韩电影中文字幕在线观看 | 久久久久久久久久免费 | 伊人永久 | 男女视频国产 | 91av蜜桃 | 成人h视频在线播放 | 97香蕉超级碰碰久久免费软件 | 亚洲国产精品推荐 | 免费在线一区二区三区 | 91视频中文字幕 | 波多野结衣在线视频一区 | 91av视频网站 | 国产一区二区在线观看免费 | 国产黄色高清 | 一区二区视频在线观看免费 | 久久久久久久久久网站 | 日日日日日 | 日韩精品观看 | 亚洲欧美日本国产 | 天天看天天干 | 精品一区二区三区久久 | 色网av | 国产不卡在线 | 中文字幕在线影院 | 最新av电影网站 | 亚洲精品玖玖玖av在线看 | 国产中文字幕免费 | 国产精品剧情在线亚洲 | 成人国产精品av | www.激情五月.com | 日韩手机在线观看 | 91色一区二区三区 | 国产理论一区二区三区 | 日韩欧美国产视频 | av免费线看| 日韩欧美在线免费观看 | 国产精品精品国产婷婷这里av | 国产福利网站 | 国产一线在线 | 久久乐九色婷婷综合色狠狠182 | 亚洲欧美视频在线观看 | 操操日日| 97在线免费视频 | 国产免费黄视频在线观看 | 国内精品久久久久久中文字幕 | 国产精品久久久久一区二区三区共 | 精品国产一二三 | 亚洲亚洲精品在线观看 | 久久尤物电影视频在线观看 | 黄色国产高清 | 精品国产一区二区三区四区vr | 久久久精品成人 | 成年人免费av网站 | 国产福利一区二区在线 | www99久久| 99免费在线视频 | 日韩成人高清在线 | 男女啪啪视屏 | 欧美日韩一区二区三区在线免费观看 | 91中文字幕永久在线 | 伊人影院99 | 狠狠操狠狠干天天操 | 日本久热 | 麻豆国产精品一区二区三区 | 夜夜躁日日躁狠狠久久av | av资源免费观看 | 欧美日韩中文视频 | www.xxx.性狂虐 | 成人av电影在线播放 | 天天干天天天 | avcom在线| 99久久精品国产一区 | 欧美另类高清 videos | 日韩欧美国产激情在线播放 | 久久国产香蕉视频 | 91av免费在线观看 | 中文av网站 | 亚洲黑丝少妇 | 激情网色 | 91精品视频网站 | 天天伊人狠狠 | 国内精品在线观看视频 | 久久久久久网站 | 国产精品一区免费看8c0m | 香蕉视频在线免费看 | 久久都是精品 | 亚洲精品久久在线 | 国产高清视频在线免费观看 | 国产99一区二区 | 黄色福利视频网站 | 亚洲国产高清在线 | 人人爽人人舔 | 欧美巨大荫蒂茸毛毛人妖 | 在线播放第一页 | 亚洲视频第一页 | www黄com| av在线免费在线观看 | 粉嫩aⅴ一区二区三区 | 国产小视频在线免费观看视频 | 手机版av在线 | 波多野结衣在线视频免费观看 | 日韩成人免费电影 | 免费色视频在线 | av丝袜美腿 | 免费av大全| 国产高清在线免费观看 | 久久成人亚洲欧美电影 | 四虎在线永久免费观看 | 亚洲专区 国产精品 | 在线观看一级视频 | 中文字幕在线一二 | 久久免费美女视频 | 国产高清在线a视频大全 | 91日韩在线视频 | 国产精品99久久久久的智能播放 | 99麻豆久久久国产精品免费 | 婷婷久久久| 久久久www成人免费毛片麻豆 | 丁香狠狠| 99久久精品国产网站 | 久久久久久久网 | 麻豆va一区二区三区久久浪 | 人人爽人人干 | 在线视频日韩欧美 | 激情五月色播五月 | 免费av片在线 | 国产精品免费一区二区 | 欧美午夜剧场 | 一区二区三区免费在线观看视频 | 中文字幕日本特黄aa毛片 | www.av小说| 人人看黄色 | 视频高清 | 亚洲国产欧美在线人成大黄瓜 | 欧美一区三区四区 | 久久久久久久99精品免费观看 | 中文字幕亚洲在线观看 | 在线中文日韩 | 热久久这里只有精品 | 97综合在线 | 婷婷色视频 | 精品av网站 | 国产1区2区3区精品美女 | 1000部国产精品成人观看 | 91精品啪在线观看国产线免费 | 免费在线播放av电影 | av网站手机在线观看 | 色综合久久久 | 在线看片成人 | 精品福利网 | 久久99国产精品二区护士 | 在线视频 日韩 | 91精品视频在线观看免费 | 国产精久久久 | 国产精品福利视频 | 福利视频入口 | 国产高清不卡一区二区三区 | www.五月天色| www.天天成人国产电影 | 日本99热 | 免费在线激情电影 | 久久国产精品视频免费看 | 日韩亚洲精品电影 | 色婷婷激情网 | 99精品国产一区二区 | 成人网看片 | 99精彩视频 | 亚洲国产资源 | 国产精品国产三级国产 | 欧美永久视频 | 免费亚洲电影 | 日韩有码中文字幕在线 | av网站免费看 | 在线观看免费高清视频大全追剧 | 欧美一级片在线 | 欧美污网站 | 亚洲第五色综合网 | 久久亚洲综合国产精品99麻豆的功能介绍 | 免费色视频网站 | 超级碰碰免费视频 | 亚洲理论片在线观看 | 国产精品 欧美 日韩 | 精品女同一区二区三区在线观看 | 欧美日韩在线观看一区二区三区 | 久久好看免费视频 | 成人av一区二区在线观看 | 美女国产精品 | 99久久精品免费视频 | 亚洲精品乱码久久 | 三级黄色理论片 | 中文字幕字幕中文 | 97精品电影院 | av成人动漫在线观看 | 18久久久 | 字幕网在线观看 | 婷五月天激情 | 五月婷婷另类国产 | 人人干天天干 | 久久久精品小视频 | 午夜视频一区二区三区 | 黄色免费观看视频 | 人人澡视频 | 激情综合网婷婷 | 亚洲蜜桃在线 | 久久亚洲在线 | 中文在线免费观看 | 免费日韩高清 | 中国一级片免费看 | 国产精品激情偷乱一区二区∴ | 天天操天天干天天操天天干 | 久久综合色影院 | 91在线免费视频 | 国产一区二区三区免费在线 | 91精品办公室少妇高潮对白 | 欧美激情综合五月色丁香 | 欧美片一区二区三区 | 亚洲第一成网站 | 婷婷av网站 | 亚洲欧美日本一区二区三区 | 亚洲黄色在线观看 | 激情视频一区二区三区 | 欧美成年人在线观看 | 久久久久亚洲国产 | 久久九九国产视频 | 五月天伊人 | 久久国产精品99久久久久久进口 | 国产精品久久视频 | 新av在线| 天堂av免费| 99精品亚洲| 91成人免费观看视频 | 亚洲艳情 | 日韩午夜在线播放 | 欧美日韩伦理一区 | 91超在线 | 亚洲色视频 | 久草视频视频在线播放 | 天天射天天色天天干 | 国产精品久久久久久久久毛片 | 亚洲国产剧情av | 日日操操操 | 国产白浆在线观看 | 亚洲黄色av网址 | 婷婷九九 | a久久免费视频 | 免费在线黄 | 97视频一区 | 91成人免费在线 | 中文字幕日韩国产 | 日本老少交 | 五月天狠狠操 | 这里有精品在线视频 | 国产一区二区成人 | 午夜精品久久久久久久久久久久 | 国产录像在线观看 | 国产高清视频网 | 中文字幕一区二区三区在线播放 | 91女人18片女毛片60分钟 | 中文一区在线 | 国产成人一区二区啪在线观看 | 最新国产中文字幕 | 亚洲精品资源在线观看 | 亚洲午夜精品一区 | 日韩二三区 | 久久精品麻豆 | 精品国产一区二区三区免费 | 啪一啪在线 | 一区二区三区四区五区六区 | 日韩在线视频网站 | 香蕉视频一级 | 国产精品不卡在线播放 | 中文字幕在线视频网站 | 久久成年人 | 国产色中涩 | 黄色www免费 | 久久综合久久久久88 | 美女视频免费精品 | 久久精品欧美日韩精品 | 一级a性色生活片久久毛片波多野 | 韩国一区二区三区在线观看 | 欧美精品久久久久久久 | 国产一区 在线播放 | 成人黄色在线 | 国产亚洲精品久久网站 | 国产成人福利片 | 午夜精品一二三区 | 免费av大全| 亚洲人成精品久久久久 | 天天操网址 | 国产h片在线观看 | 美女久久99 | 91精选在线 | 久久公开免费视频 | 国产资源在线播放 | 91在线观看黄 | 精品国产aⅴ麻豆 | 欧美精品二 | av888.com| 日日碰狠狠添天天爽超碰97久久 | 9久久精品| 五月天天av | 欧美一级视频免费 | 97视频在线观看播放 | 国产一区二区电影在线观看 | 国产私拍在线 | 天天色欧美| 精品国偷自产在线 | 婷婷中文字幕 | 欧美最新大片在线看 | 成年人免费电影在线观看 | 人人天天夜夜 | 久久精品亚洲综合专区 | 精品久久国产 | 中文字幕999 | 在线精品在线 | 亚洲中字幕 | 久草在线视频精品 | 久久久免费看视频 | 欧洲精品在线视频 | 999久久国产精品免费观看网站 | av理论电影 | 国内外成人在线 | 亚洲韩国一区二区三区 | 久草在线最新 | 久久久久久久久久电影 | 中文字幕免费高清在线观看 | 精品久久久一区二区 | 日韩在线欧美在线 | 国产精品99久久久久久久久久久久 | 在线免费观看黄网站 | 亚洲春色成人 | a级黄色片视频 | 久久精品一二三区白丝高潮 | 日韩精品中文字幕一区二区 | 国产精品一区二区三区久久 | 久久久久国产精品一区 | 中文字幕第一页av | 日韩精选在线观看 | 国产亚洲情侣一区二区无 | 欧美日韩在线观看一区 | 99中文视频在线 | 免费在线播放 | 在线观看精品黄av片免费 | a资源在线 | se视频网址 | 在线观看岛国av | 久久香蕉国产精品麻豆粉嫩av | 久久久久久影视 | 美女视频网 | 免费激情网| 欧美激情综合色 | 国产福利精品视频 | 亚洲一区在线看 | 日韩精品观看 | 91精品久久久久久综合乱菊 | 国产精品久久99精品毛片三a | 日韩在线观看你懂的 | 欧美午夜性 | 麻豆传媒视频在线 | 婷婷网站天天婷婷网站 | 青青河边草免费视频 | 久久综合久久综合久久综合 | 国产视频1| 狠狠操电影网 | 婷婷精品国产一区二区三区日韩 | 免费观看91 | 亚洲精品成人av在线 | 99在线免费观看视频 | 国产美女无遮挡永久免费 | 国产精品国产自产拍高清av | 国产在线播放不卡 | 亚洲成人999| 国产精品淫 | 久久综合九色99 | 国产男女爽爽爽免费视频 | 日韩精品第1页 | 66av99精品福利视频在线 | 亚洲电影久久久 | 色综合久久久久久久久五月 | 最近日本中文字幕a | 人人澡av | 国产午夜一区 | 一区二区三区在线观看中文字幕 | 亚洲成人av片在线观看 | 午夜精品视频一区二区三区在线看 | 深夜福利视频在线观看 | 久久69精品久久久久久久电影好 | 欧美日韩有码 | 国偷自产视频一区二区久 | 国产精品亚洲成人 | 日b黄色片 | 中文字幕亚洲精品在线观看 | 久久精品视| 久久艹人人 | 天天综合网~永久入口 | www成人av | 亚洲第一成网站 | 日韩精品免费在线观看 | 婷婷99 | 69精品人人人人 | 亚洲久草网 | 国产精品一区免费在线观看 | 狠狠色丁香婷婷综合久久片 | 四虎欧美| 婷婷色中文网 | 婷婷丁香激情综合 | 日韩一区二区三区高清免费看看 | 精品国产乱码一区二区三区在线 | 99一级片 | 亚洲高清久久久 | 超碰免费成人 | 欧洲视频一区 | 欧美色操 | 亚洲精区二区三区四区麻豆 | 成人在线超碰 | 草久在线观看视频 | 激情动态| 黄色软件视频网站 | 久久亚洲国产精品 | 亚洲免费av在线 | 啪啪免费观看网站 | 国产精品久久久久影院 | 欧美日韩精品网站 | 日日夜夜天天久久 | 黄色高清视频在线观看 | 2022中文字幕在线观看 | 亚洲人xxx| 狠狠的日 | 午夜精品电影一区二区在线 | 99精品国产在热久久 | 国产精品剧情在线亚洲 | 欧美日本啪啪无遮挡网站 | 亚洲五月综合 | 国产精品igao视频网入口 | 久草在线视频首页 | 天天艹日日干 | 99久久99久久精品国产片果冰 | 91视频在线看| 在线黄色免费 | 中文字幕国语官网在线视频 | 国产精品久久久久国产精品日日 | 波多野结衣综合网 | 在线观看黄污 | 亚洲精品高清一区二区三区四区 | 99在线热播精品免费 | 99久久99 | 免费人成在线观看网站 | 亚洲精品一区二区三区新线路 | 日韩一二三在线 | 911国产在线观看 | 免费在线一区二区 | 免费久久99精品国产婷婷六月 | 尤物97国产精品久久精品国产 | 一级黄色网址 | 亚洲精品美女久久久 | 少妇超碰在线 | 成人久久视频 | 久久免费福利 | 国产一级电影 | 日韩免费专区 | 激情在线网站 | av一级二级| 婷婷性综合 | 欧美另类z0zx | 成人黄色电影免费观看 | 国产婷婷vvvv激情久 | 成年人黄色免费网站 | 国产在线播放一区二区 | 亚洲精品久久久久中文字幕二区 | 激情开心站 | 狠狠狠狠狠狠狠狠 | 最近免费中文字幕 | 偷拍久久久 | 99久热在线精品视频观看 | 97视频网址| 久久久综合电影 | 日日躁你夜夜躁你av蜜 | 成人理论电影 | 天天艹天天 | 2021国产精品 | 在线观看视频h | 在线观看久久久久久 | 中文字幕免费在线看 | 在线黄色av | 国产精品久久久久久久久久久杏吧 | 在线视频 国产 日韩 | 欧美性护士 | 日韩精品一区二区三区免费观看视频 | 99久久精品免费看国产一区二区三区 | 日韩国产精品一区 | 婷婷成人亚洲综合国产xv88 | 四虎在线观看 | 国产日本亚洲高清 | 免费视频99 | 一区二区欧美在线观看 | 日韩在线国产 | 亚洲综合在线播放 | 中文字幕在线观看视频一区 | 国产理论在线 | 一区二区精品在线 | 最新日韩精品 | 深夜激情影院 | 国产精品九九视频 | 久久久精品成人 | 热九九精品 | 国产69精品久久app免费版 | 欧美日韩一二三四区 | 亚洲精品资源在线观看 | 五月婷婷中文网 | 亚洲乱码国产乱码精品天美传媒 | 91在线免费观看国产 | 日产av在线播放 | 在线观看国产麻豆 | 日韩高清免费无专码区 | 激情丁香5月 | 99久久久久国产精品免费 | 日韩欧美网站 | 亚洲国产网站 | 不卡的av电影 | 亚洲第一伊人 | 国产精品亚州 | 国产1区2区3区精品美女 | 少妇搡bbb| 国产午夜亚洲精品 | 国产成人精品999 | 国产中文在线字幕 | 草久久影院 | 国产成人精品亚洲精品 | 欧美一进一出抽搐大尺度视频 | 久久国产精品二国产精品中国洋人 | 国产精品永久免费在线 | 欧美激情综合五月色丁香 | 欧美日韩一区二区三区在线免费观看 | 欧美一级淫片videoshd | 亚洲视频久久久久 | 992tv在线观看 | 成年人在线 | 日本精品久久久一区二区三区 | 91毛片在线观看 | 天天干天天射天天爽 | 亚洲五月婷婷 | www.狠狠操 | 国产黄a三级三级三级三级三级 | 激情图片区 | 麻豆va一区二区三区久久浪 | 国产精品视频永久免费播放 | 2021国产精品| 国产精品久久久久久久午夜 | 亚洲国产精品久久久久久 | 激情丁香在线 | 精品国产免费观看 | 久久久精品网站 | 国产日韩欧美在线影视 | 81国产精品久久久久久久久久 | 国产高清免费 | 欧美久久久久久久久久 | 97av视频 | 日韩网站免费观看 | 亚洲精品视 | 91福利社区在线观看 | www.亚洲激情.com | 亚洲精品h | 精品国产精品国产偷麻豆 | 国产在线色 | 在线亚洲欧美日韩 | 日韩精品视频免费在线观看 | 国产精品18毛片一区二区 | 正在播放一区 | 在线99| 国产二区精品 | 中文字幕久久精品亚洲乱码 | 精品伊人久久久 | 日韩精品一区二区三区第95 | 在线综合 亚洲 欧美在线视频 | 精品视频免费久久久看 | 在线观看网站你懂的 | av成人免费观看 | 九九九在线观看视频 | 国模视频一区二区三区 | 成人av.com | av电影不卡在线 | 免费看久久久 | 人人超碰在线 | 久草线 | 99久久久久国产精品免费 | aaa日本高清在线播放免费观看 | 日本三级久久 | 字幕网资源站中文字幕 | 国产在线视频资源 | 蜜臀av夜夜澡人人爽人人桃色 | 精品国产一区二区三区四区vr | www.在线观看视频 | 五月在线视频 | 久久涩涩网站 | 97精品国产97久久久久久春色 | 亚洲日本一区二区在线 | 精品视频在线看 | 色综合五月| 欧美国产日韩一区 | 国产精品高清一区二区三区 | 婷婷六月中文字幕 | 91亚洲精品久久久蜜桃 | 久久久久久美女 | 欧美xxxx性xxxxx高清 | 欧美日韩国产一区二区在线观看 | 国产最顶级的黄色片在线免费观看 | 91在线视频观看免费 | 久久久免费看 | 精品一区二区免费视频 | 91日韩精品一区 | 久久久久久久久精 | av在线中文| 在线观看黄 | 天天干天天想 | 精品久久久久国产 | 综合激情网... | 日日夜夜免费精品视频 | 在线看毛片网站 | 永久免费观看视频 | 色网免费观看 | 婷婷5月色 | 欧美一级性视频 | 91桃色在线观看视频 | 国产高清在线精品 | 五月天色网站 | 国产成人免费高清 | 久久国产片 | 国色天香在线 | av高清一区二区三区 | 欧美激精品 | 日韩av一区二区在线播放 | 在线免费高清一区二区三区 | 极品嫩模被强到高潮呻吟91 | 国产一区免费在线 | 在线免费观看视频 | 日本黄色免费在线观看 | www.久久久.com | 五月激情丁香图片 | 五月天婷亚洲天综合网精品偷 | 天天操天天操一操 | 香蕉视频免费在线播放 | 麻豆视屏 | 欧美极品xxx | 久久人人爽人人爽人人片av免费 | 成人黄色在线观看视频 | 久久天天草 | 日韩黄色一区 | 国产明星视频三级a三级点| 色综合夜色一区 | 2023天天干| 国产精品黑丝在线观看 | 91在线九色| 成人在线一区二区 | 91亚洲狠狠婷婷综合久久久 | 四虎在线观看视频 | 国产又粗又猛又色又黄视频 | 日韩天堂在线观看 | 毛片1000部免费看 | 欧美激情第八页 | 色在线免费观看 | 亚洲精品福利在线 | 亚洲日韩欧美一区二区在线 | 免费看的国产视频网站 | 亚洲高清在线 | 亚洲精品美女久久 | 色停停五月天 | 日韩在线观看免费 | 99久久久久久久久 | 亚洲视频免费在线 | 国产成人久久久77777 | 91视频链接 | 69av在线播放 | 午夜精品视频一区 | 国产欧美在线一区二区三区 | 免费黄在线看 | 亚洲 综合 国产 精品 | 欧美与欧洲交xxxx免费观看 | av中文字幕av | 黄色大片中国 | 国产一级黄色免费看 | 精品久久久久久国产 | 91色视频 | 欧美成人h版 | 久久综合色8888 | 日韩美女黄色片 | 日韩午夜精品 | 中文字幕123区| 精品亚洲免费 | 婷婷深爱网 | 天天插一插 | 久久99日韩 | 亚洲第一区在线播放 | 亚洲成人高清在线 | 久久国产高清 | 国产亚洲永久域名 | 丁香花在线视频观看免费 | 国产在线 一区二区三区 | 丁香五月亚洲综合在线 | 久久精品视频5 | 色婷婷狠狠五月综合天色拍 | 在线精品观看国产 | 一区二区精品在线视频 | 丁香激情五月 | 精品在线观| 国产成人不卡 | 一区二区三区久久 | 国产精品va视频 | 青春草免费视频 | 91精品国自产在线观看 | 午夜影院在线观看18 | 91精品国产成人观看 | 久草在线观看 | 国产日产精品久久久久快鸭 | 成人 国产 在线 | 91色亚洲| 国产一级电影网 | 天天操天天摸天天射 | 99久久精品免费视频 | 国产黄色精品视频 | 欧美日韩国产网站 | 久久久麻豆精品一区二区 | 精品国产三级 | 欧美激情视频一区 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 成人午夜精品久久久久久久3d | 狠狠狠狠狠狠 | 国产精品一区二区三区免费看 | 丁香亚洲| 久久免费成人精品视频 | 丁香婷婷基地 | 免费看黄网站在线 | 91资源在线 | 天天射一射| 国产亲近乱来精品 | 日日天天干 | 亚洲一区欧美精品 | 激情导航| 久久久久久久久爱 | 精品国产成人av | 欧美精品久久久久久久久久久 | 91片黄在线观 | 欧美日韩高清一区 | 亚洲精品小视频 | 99国产精品视频免费观看一公开 | 人人精品 | 一级欧美黄| 色综合色综合久久综合频道88 | 国产在线观看中文字幕 | a视频免费| 亚洲高清在线 | 久久新视频 | 国产精品美女免费 | 欧美日韩精品影院 | 久久免费在线观看 | 国产成人333kkk | 国产精品色视频 | 狠狠色丁香久久婷婷综合五月 | 久久在线视频在线 | 中文字幕资源网 | 九热在线 | 日狠狠 | av在线成人| 五月婷婷激情综合 | 成人久久久精品国产乱码一区二区 | 国产精品久久久久久久久免费 | 国产成人一区二区三区在线观看 | www.色午夜| 欧洲一区二区三区精品 | 99婷婷 | 成人av在线播放网站 | 亚洲国产精品视频在线观看 | 在线电影a | 久久久久欧美精品 | 国产色久 | 99久久影视 | 精品视频在线视频 | 久久人人爽视频 | 欧美少妇bbwhd | 81精品国产乱码久久久久久 | 天天做天天爱夜夜爽 | av在线播放国产 | 欧美日韩调教 | 中文一二区 | 欧美日韩中文国产一区发布 | 97色综合 | 久久久免费国产 | 久久免费一级片 | 一级淫片a | 日日干av| 黄色大片免费网站 | 国产亚洲va综合人人澡精品 | 久久视频在线 | 成年人视频免费在线播放 | 成人小视频在线播放 | 在线看的av网站 | 久久av免费观看 | 亚洲电影久久 | 特级西西人体444是什么意思 | 久久久久欠精品国产毛片国产毛生 | 亚洲欧美日韩一区二区三区在线观看 | 久久午夜羞羞影院 | 国产五月色婷婷六月丁香视频 | 日韩精品无码一区二区三区 | 国产成人精品一区二 | 欧美一区,二区 | 国产欧美精品一区二区三区 | 日韩一区在线播放 | 精品国产伦一区二区三区观看方式 | 久久成人欧美 | 欧美精品久久久久久久久免 | 久久午夜精品视频 | 精品无人国产偷自产在线 | 亚洲精品视频在线免费 | 人人爱人人做人人爽 | 高清一区二区三区 | 成人禁用看黄a在线 | 久久久国产精品成人免费 | 中文字幕888| 久久公开免费视频 | 天天射,天天干 | 香蕉视频在线免费 | 日产乱码一二三区别免费 | 激情久久久久久久久久久久久久久久 | 成人va视频| 国产美女网站在线观看 | 97自拍超碰 | 国产高清视频免费在线观看 | 国产精品日韩在线观看 | 亚洲天堂网在线观看视频 | 亚洲精品综合一区二区 | 国产精品一区二区在线播放 | 永久免费看av| 五月婷婷丁香色 | 天天操狠狠操夜夜操 | 在线观看亚洲视频 | 日本久久综合视频 | 精品主播网红福利资源观看 | 欧美一级欧美一级 | 91精品一区二区三区蜜桃 | 国产精品完整版 | 天天操天天综合网 | 国产一区二区三区免费在线 | 在线99| 国产精品video爽爽爽爽 | 国产在线不卡一区 | 日韩一区二区三免费高清在线观看 | 一区二区精品在线 | 亚洲一区免费在线 | 99在线热播精品免费 | 日本成址在线观看 | 日韩免费在线播放 | 久久激五月天综合精品 | 久久你懂得 | 中文字幕日韩一区二区三区不卡 | 精品一区久久 | 久久国产免费 | 久久久久国产成人精品亚洲午夜 | 黄色片视频在线观看 | 国产在线观 | 中文伊人 | 国产黄色在线看 | 视频在线一区二区三区 | 毛片网在线| 黄色av高清| 视频国产一区二区三区 | 91黄色视屏 | 99久久久国产精品免费观看 | 91在线网址 | 五月婷婷激情五月 | 欧美成年网站 | 国产高清在线a视频大全 | 亚洲免费观看视频 | 91黄视频在线 | 一级精品视频在线观看宜春院 | 国产丝袜 | 国产原创91 | 国产免费人成xvideos视频 | 欧美成人按摩 | 人人爽人人爽 | 精品国产人成亚洲区 | 高清有码中文字幕 | 曰本三级在线 | 国产呻吟在线 | 亚洲精品乱码久久久久久蜜桃91 | 国产又粗又猛又爽又黄的视频先 | 亚洲视频播放 | 美女黄网站视频免费 | 国产在线看一区 | 在线看成人av | 激情视频免费在线观看 | 欧美极度另类性三渗透 | 天天干,天天射,天天操,天天摸 | 五月天电影免费在线观看一区 | 免费精品国产 | 亚洲欧美日韩精品久久久 | 亚洲最大av | 四虎免费在线观看 | 日本不卡123 | 免费在线一区二区 | 亚洲免费在线观看视频 | 1024在线看片| 精品久久久久一区二区国产 | 国产精品女同一区二区三区久久夜 | 丁香花中文在线免费观看 | 久久人人爽人人爽人人片av软件 | 成人小电影在线看 |