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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

SpringBoot各类型参数解析原理(源码)

發布時間:2025/3/15 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot各类型参数解析原理(源码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上次那篇我們只分析了doDispatch中的getHandler方法(獲取執行鏈,執行鏈里包括當前請求URL對應的 handler 以及攔截器(Controller、method綁定關系)),今兒繼續向下看getHandlerAdapter方法和handle方法

public class DispatcherServlet{protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {mappedHandler = this.getHandler(processedRequest);if (mappedHandler == null) {this.noHandlerFound(processedRequest, response);return;}//繼續向下// Determine handler adapter for the current request.HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());String method = request.getMethod();boolean isGet = "GET".equals(method);if (isGet || "HEAD".equals(method)) {long lastModified = ha.getLastModified(request, mappedHandler.getHandler());if ((new ServletWebRequest(request, response)).checkNotModified(lastModified) && isGet) {return;}}if (!mappedHandler.applyPreHandle(processedRequest, response)) {return;}//開始真正處理請求的方法mv = ha.handle(processedRequest, response, mappedHandler.getHandler());if (asyncManager.isConcurrentHandlingStarted()) {return;}this.applyDefaultViewName(processedRequest, mv);mappedHandler.applyPostHandle(processedRequest, response, mv);} }

一、getHandlerAdapter

有沒有想過,為何我們加了那些注解,例如@PathVariable,為什么springmvc就能將其變量確定為對應的值呢?這就是HandlerAdapter的作用,在getHandler方法確定好控制器和對應的方法后(執行鏈),getHandlerAdapter就會來幫我們為當前的handler找一個adapter然后我們通過該適配器,就能夠將請求的鏈接所帶的參數給適配上。

看一下DispatcherServlet的doService方法時序圖:

直接進入getHandlerAdapter方法查看,debug -getHandlerAdapter方法,可以看到,會在原生的4種handlerAdapter中選擇一個匹配的適配器進行返回。獲取代碼:

public class DispatcherServlet{protected HandlerAdapter getHandlerAdapter(Object handler) throws ServletException {if (this.handlerAdapters != null) {for (HandlerAdapter adapter : this.handlerAdapters) {if (adapter.supports(handler)) {return adapter;}}}throw new ServletException("No adapter for handler [" + handler +"]: The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler");} }


對應的處理如下:

注意:如果自己添加了Adapter就不會在加載springMVC默認的這些Adapter

getHandlerAdapter里調用了adapter.supports(handler)

  • 通過supports方法來確定adapter,我們進入supports方法,發現不同的adapter有不同的判斷方法,我們還是先以requestMapping請求的到的handler為例
  • 可以發現他的判斷方式很簡單,就是判斷handler是不是一個HandlerMethod(在上面匹配的時候會根據不同的情況獲得不同的handler)
public class AbstractHandlerMethodAdapter{public final boolean supports(Object handler) {return (handler instanceof HandlerMethod && supportsInternal((HandlerMethod) handler));} }

我們可以通過debug其他類型的handler可以返現他們的判斷方式和上面的類似都是instanceof來判斷的,匹配后返回具體handleradapter通過getHandler()和getHandlerAdapter()方法得到的執行鏈(得到controller中具體的執行方法)和適配器(可以解析請求所帶的參數)后,我們就可以來真正執行請求的方法(handle())了。

二、handle

執行

mv = ha.handle(processedRequest, response, mappedHandler.getHandler());

來到

進一步,進入到該抽象類的實現類RequestMappingHandlerAdapter中(為何是RequestMappingHandlerAdapter),因為我的方法使用了@RequestMapping,所以就返回這個Adapter),對一個請求方法的所有操作都會在這里進行。RequestMappingHandlerAdapter 部分源碼如下:可以看到,handleInternal執行后,會返回一個ModelAndView

protected ModelAndView handleInternal(HttpServletRequest request, HttpServletResponse response, HandlerMethod handlerMethod) throws Exception {this.checkRequest(request);ModelAndView mav;if (this.synchronizeOnSession) {HttpSession session = request.getSession(false);if (session != null) {Object mutex = WebUtils.getSessionMutex(session);synchronized(mutex) {mav = this.invokeHandlerMethod(request, response, handlerMethod);}} else {mav = this.invokeHandlerMethod(request, response, handlerMethod);}} else {//最終來到invokeHandlerMethod這里,才是真正的執行handler方法mav = this.invokeHandlerMethod(request, response, handlerMethod);}if (!response.containsHeader("Cache-Control")) {if (this.getSessionAttributesHandler(handlerMethod).hasSessionAttributes()) {this.applyCacheSeconds(response, this.cacheSecondsForSessionAttributeHandlers);} else {this.prepareResponse(response);}}return mav;}

invokeHandlerMethod方法源碼:

@Nullableprotected ModelAndView invokeHandlerMethod(HttpServletRequest request, HttpServletResponse response, HandlerMethod handlerMethod) throws Exception {ServletWebRequest webRequest = new ServletWebRequest(request, response);Object result;try {WebDataBinderFactory binderFactory = this.getDataBinderFactory(handlerMethod);ModelFactory modelFactory = this.getModelFactory(handlerMethod, binderFactory);ServletInvocableHandlerMethod invocableMethod = this.createInvocableHandlerMethod(handlerMethod);if (this.argumentResolvers != null) {invocableMethod.setHandlerMethodArgumentResolvers(this.argumentResolvers);}if (this.returnValueHandlers != null) {invocableMethod.setHandlerMethodReturnValueHandlers(this.returnValueHandlers);}invocableMethod.setDataBinderFactory(binderFactory);invocableMethod.setParameterNameDiscoverer(this.parameterNameDiscoverer);ModelAndViewContainer mavContainer = new ModelAndViewContainer();mavContainer.addAllAttributes(RequestContextUtils.getInputFlashMap(request));modelFactory.initModel(webRequest, mavContainer, invocableMethod);mavContainer.setIgnoreDefaultModelOnRedirect(this.ignoreDefaultModelOnRedirect);AsyncWebRequest asyncWebRequest = WebAsyncUtils.createAsyncWebRequest(request, response);asyncWebRequest.setTimeout(this.asyncRequestTimeout);WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(request);asyncManager.setTaskExecutor(this.taskExecutor);asyncManager.setAsyncWebRequest(asyncWebRequest);asyncManager.registerCallableInterceptors(this.callableInterceptors);asyncManager.registerDeferredResultInterceptors(this.deferredResultInterceptors);if (asyncManager.hasConcurrentResult()) {result = asyncManager.getConcurrentResult();mavContainer = (ModelAndViewContainer)asyncManager.getConcurrentResultContext()[0];asyncManager.clearConcurrentResult();LogFormatUtils.traceDebug(this.logger, (traceOn) -> {String formatted = LogFormatUtils.formatValue(result, !traceOn);return "Resume with async result [" + formatted + "]";});invocableMethod = invocableMethod.wrapConcurrentResult(result);}invocableMethod.invokeAndHandle(webRequest, mavContainer, new Object[0]);if (!asyncManager.isConcurrentHandlingStarted()) {ModelAndView var15 = this.getModelAndView(mavContainer, modelFactory, webRequest);return var15;}result = null;} finally {webRequest.requestCompleted();}return (ModelAndView)result;}

其中有兩個變量值得我們研究:argumentResolvers(參數解析器 26種)和returnValueHandlers(返回值處理器 15種),這兩個東西就是這篇文章的主題:參數解析的核心。

  • 參數解析器(其實底層是個接口)
    看一下HandlerMethodArgumentResolver接口的定義:
  • public interface HandlerMethodArgumentResolver {/** * 解析器是否支持當前參數 * * @param var1 需要被解析的Controller參數 * @return */boolean supportsParameter(MethodParameter var1);// 將request中的請求參數解析到當前Controller參數上,在這里進行類型轉換 Object resolveArgument(MethodParameter var1, ModelAndViewContainer var2, NativeWebRequest var3, WebDataBinderFactory var4) throws Exception;}

    該接口作用:當前解析器是否支持解析這種參數,支持就調用 resolveArgument解析最終確定將要執行的目標方法的每一個參數的值是什么SpringMVC目標方法能寫多少種參數類型。取決于參數解析器,默認26種:

  • 返回值處理器
    決定了目標方法到底能寫多少種類型的返回值,默認15種

    有一個值得注意的處理器就是RequestResponseBodyMethodHandler,就是我們使用@ResponseBody時,使用的處理器,底層如下:
  • 在將參數解析器和返回值處理器設置好后,進一步調用了invokeAndHandle方法,跟蹤該方法,我們來到:ServletInvocableHandlerMethod類中的```invokeAndHandle方法
    部分源碼:

    public class ServletInvocableHandlerMethod extends InvocableHandlerMethod {public void invokeAndHandle(ServletWebRequest webRequest, ModelAndViewContainer mavContainer, Object... providedArgs) throws Exception {Object returnValue = this.invokeForRequest(webRequest, mavContainer, providedArgs);this.setResponseStatus(webRequest);if (returnValue == null) {if (this.isRequestNotModified(webRequest) || this.getResponseStatus() != null || mavContainer.isRequestHandled()) {this.disableContentCachingIfNecessary(webRequest);mavContainer.setRequestHandled(true);return;}} else if (StringUtils.hasText(this.getResponseStatusReason())) {mavContainer.setRequestHandled(true);return;}}

    跟蹤invokeForRequest,來到InvocableHandlerMethod類, invokeForRequest及getMethodArgumentValues(開始解析參數了)源碼

    public class InvocableHandlerMethod extends HandlerMethod {@Nullablepublic Object invokeForRequest(NativeWebRequest request, @Nullable ModelAndViewContainer mavContainer, Object... providedArgs) throws Exception {Object[] args = this.getMethodArgumentValues(request, mavContainer, providedArgs);if (logger.isTraceEnabled()) {logger.trace("Arguments: " + Arrays.toString(args));}return this.doInvoke(args);}//核心方法,獲取參數值最底層的方法protected Object[] getMethodArgumentValues(NativeWebRequest request, @Nullable ModelAndViewContainer mavContainer, Object... providedArgs) throws Exception {//獲取到方法的所有參數聲明(例如注解,索引,類型)MethodParameter[] parameters = this.getMethodParameters();//判斷參數是否為空,為空直接返回,無須確定任何值if (ObjectUtils.isEmpty(parameters)) {return EMPTY_ARGS;} else {Object[] args = new Object[parameters.length];//挨個遍歷參數取值for(int i = 0; i < parameters.length; ++i) {MethodParameter parameter = parameters[i];//確定參數名字parameter.initParameterNameDiscovery(this.parameterNameDiscoverer);args[i] = findProvidedArgument(parameter, providedArgs);if (args[i] == null) {//先判斷當前解析器是否支持這種類型,不支持便對解析器遍歷,直到找到支持的解析器//具體調用鏈supportsParameter->HandlerMethodArgumentResolverComposite.getArgumentResolver-> if (!this.resolvers.supportsParameter(parameter)) {throw new IllegalStateException(formatArgumentError(parameter, "No suitable resolver"));}try {//真正的核心args[i] = this.resolvers.resolveArgument(parameter, mavContainer, request, this.dataBinderFactory);} catch (Exception var10) {if (logger.isDebugEnabled()) {String exMsg = var10.getMessage();if (exMsg != null && !exMsg.contains(parameter.getExecutable().toGenericString())) {logger.debug(formatArgumentError(parameter, exMsg));}}throw var10;}}}return args;}} }

    獲取到的參數聲明:

    HandlerMethodArgumentResolverComposite.getArgumentResolver源碼:
    這里可以看到對我們上面提到的那26種解析器的遍歷,最后會完全緩存在springboot的本地緩存中

    拿到參數解析器后,我們就可以來獲取參數的值了
    HandlerMethodArgumentResolverComposite.ArgumentResolver源碼:

    @Nullablepublic Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws Exception {HandlerMethodArgumentResolver resolver = this.getArgumentResolver(parameter);if (resolver == null) {throw new IllegalArgumentException("Unsupported parameter type [" + parameter.getParameterType().getName() + "]. supportsParameter should be called first.");} else {//獲取參數值并返回return resolver.resolveArgument(parameter, mavContainer, webRequest, binderFactory);}}

    resolveArgument最終會調用AbstractNamedValueMethodArgumentResolver的各種實現類如下:

    再配合UrlPathHelper(會將url中的變量解析出來,放在request的請求域中),最終得到變量值。

    三、對于傳入的是Servlet API的參數的處理

    WebRequest、ServletRequest、MultipartRequest、 HttpSession、javax.servlet.http.PushBuilder、Principal、InputStream、Reader、HttpMethod、Locale、TimeZone、ZoneId這些都能找到對應的resolver進行解析。
    以ServletRequestMethodArgumentResolver為例,它能解析以下的參數,總之,就是進行到resolvers.supportsParameter(parameter)這個方法后,遍歷那26個參數解析器,拿到對應的解析器去解析就好了,原理都是一樣的

    @Overridepublic boolean supportsParameter(MethodParameter parameter) {Class<?> paramType = parameter.getParameterType();return (WebRequest.class.isAssignableFrom(paramType) ||ServletRequest.class.isAssignableFrom(paramType) ||MultipartRequest.class.isAssignableFrom(paramType) ||HttpSession.class.isAssignableFrom(paramType) ||(pushBuilder != null && pushBuilder.isAssignableFrom(paramType)) ||Principal.class.isAssignableFrom(paramType) ||InputStream.class.isAssignableFrom(paramType) ||Reader.class.isAssignableFrom(paramType) ||HttpMethod.class == paramType ||Locale.class == paramType ||TimeZone.class == paramType ||ZoneId.class == paramType);}

    四、復雜參數的處理

    復雜參數如:Map、Model(map、model里面的數據會被放在request的請求域 request.setAttribute)、Errors/BindingResult、RedirectAttributes( 重定向攜帶數據)、ServletResponse(response)、SessionStatus、UriComponentsBuilder、ServletUriComponentsBuilder等

    那么重點就是,他是怎么給request域放數據的呢:debug以下方法看一下

  • 首先,解析參數都是跟上面一樣的步驟,就是進行到resolvers.supportsParameter(parameter)這個方法后,遍歷那26個參數解析器,拿到對應的解析器去解析,而對于map這類型的數據來說,就是對應的
  • 拿到解析器后,就得找對應的參數進行影射了,對于上面的使用@requestmapping注解的方法,它會去url緩存中獲取參數值,那么map類型的呢?debug后我們發現,它來到了mavContainer.getModel()這個方法,準備獲取模型數據。

    而getModel()這個方法他會返回一個ModeMap類型的數據,源碼如下:
  • public ModelMap getModel() {if (this.useDefaultModel()) {return this.defaultModel;} else {if (this.redirectModel == null) {this.redirectModel = new ModelMap();}return this.redirectModel;}}

    最終,他是返回一個ModelMap的子類BindingAwareModelMap,BindingAwareModelMap 是Model 也是Map

    繼承樹如下:

    Model參數類型就調用另一個解析器

    debug后發現,居然跟解析Map類型調用的是一樣的方法,也是來到了mavContainer.getModel()這個方法,準備獲取模型數據。我們可以發現,兩者返回的是同一個BindingAwareModelMap。同時,直接放心讓request,和response對象也解析好。

    然后我們放行方法,執行完invokeForRequest方法,此時,我們知道,對于請求的處理已經完成了,接下來就是視圖解析了,這里先不討論視圖解析的流程,就研究forward的時候,spring是如何將數據(model)放在請求域中給轉發出去的。

    跟蹤進去,我們發現在處理返回結果的時候,也把mavContainer傳進去了:

    mavContainer此時如下:

    handleReturnValue方法:

    public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {//先獲取返回類型HandlerMethodReturnValueHandler handler = this.selectHandler(returnValue, returnType);if (handler == null) {throw new IllegalArgumentException("Unknown return value type: " + returnType.getParameterType().getName());} else {handler.handleReturnValue(returnValue, returnType, mavContainer, webRequest);}}

    如果你放回的類型是個字符串,就把字符串設置成viewName

    此時的mavContainer(view已經為“”forward:/success)

    至此可以得出一個結論:方法執行完成后,springmvc會所有的數據都放在 ModelAndViewContainer;包含要去的頁面地址View。還包含Model數據。然后進一步對這些數據進行處理(渲染),會執行以下:

    繼續跟蹤

    仍然可以看到,還是圍繞著處理mavContainer展開,ModelFactory里有一個
    updateBindingResult方法,這是關鍵,它會遍歷所有model的值,并根據綁定策略對數據進行封裝

    然后在執行:ModelAndView mav=new ModelAndView(....);這一句,即把遍歷到的model數據生成一個ModelAndView。然后再根據是不是重定向,轉發,或者普通處理,再進一步對數據進行處理

    此時,DispatchServlet的:

    mv = ha.handle(processedRequest, response, mappedHandler.getHandler());

    執行完成,開始執行DispatchServlet的另一個方法:

    //完成業務處理后的后置處理mappedHandler.applyPostHandle(processedRequest, response, mv);

    開始執行render()方法。

    涉及兩個主要方法:

    //處理派發結果 processDispatchResult(processedRequest, response, mappedHandler, mv, dispatchException); //渲染合并輸出模型(最關鍵的核心) renderMergedOutputModel(mergedModel, getRequestToExpose(request), response); @Overrideprotected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {// Expose the model object as request attributes.exposeModelAsRequestAttributes(model, request);// Expose helpers as request attributes, if any.exposeHelpers(request);// Determine the path for the request dispatcher.String dispatcherPath = prepareForRendering(request, response);// Obtain a RequestDispatcher for the target resource (typically a JSP).RequestDispatcher rd = getRequestDispatcher(request, dispatcherPath);if (rd == null) {throw new ServletException("Could not get RequestDispatcher for [" + getUrl() +"]: Check that the corresponding file exists within your web application archive!");}// If already included or response already committed, perform include, else forward.if (useInclude(request, response)) {response.setContentType(getContentType());if (logger.isDebugEnabled()) {logger.debug("Including [" + getUrl() + "]");}rd.include(request, response);}else {// Note: The forwarded resource is supposed to determine the content type itself.if (logger.isDebugEnabled()) {logger.debug("Forwarding to [" + getUrl() + "]");}rd.forward(request, response);}} 暴露模型作為請求域屬性 // Expose the model object as request attributes.exposeModelAsRequestAttributes(model, request); //該方法可以看出,底層最終就是通過最普通的遍歷,將model數據重新放入請求域中 protected void exposeModelAsRequestAttributes(Map<String, Object> model,HttpServletRequest request) throws Exception {//model中的所有數據遍歷挨個放在請求域中model.forEach((name, value) -> {if (value != null) {request.setAttribute(name, value);}else {request.removeAttribute(name);}});}

    五、自定義POJO類型參數的處理

    跟上面一樣,來到resolvers.supportsParameter(parameter),處理POJO類型的有兩個參數解析器,都是叫:ServletModelAttributeMethodProcessor,但是一個是處理帶注解的bean,一個是處理不帶注解的bean。
    判斷時,先判斷參數是不是簡單類型


    而自定義對象,自然就不是簡單類型
    然后便開始執行resolveArgument方法。

  • 先看model中有沒有(getModel().containsAttribute(name);),沒有就看get域中有沒有HandlerMapping.uriTemplateVariables的map里面有沒有,然后看域中有沒有,沒有就反射創建
  • 反射創建一個沒有初始化的bean
  • 然后通過WebDatabinder來bind屬性
    • WebDataBinder binder = binderFactory.createBinder(webRequest, attribute, name);核心方法,將請求參數的值綁定到指定的JavaBean里面,WebDataBinder 利用它里面的 Converters將請求數據轉成指定的數據類型。再次封裝到JavaBean中
    • Converters :底層默認有124個,如下:

      我們也可以自定義自己的Converters:
    @FunctionalInterface public interface Converter<S, T>

    總結

    以上是生活随笔為你收集整理的SpringBoot各类型参数解析原理(源码)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    欧美91视频 | 黄色的视频网站 | 国产91探花 | 国产黄在线 | 中文在线免费看视频 | 国产麻豆精品95视频 | 中文视频在线播放 | 日韩簧片在线观看 | 亚洲黑丝少妇 | 日韩高清久久 | 99精品国产高清在线观看 | 中文在线a天堂 | 色噜噜噜噜 | 日本韩国精品一区二区在线观看 | 欧美精品久久久久久久久免 | av资源中文字幕 | 人人草天天草 | 欧美日韩高清一区二区 | 青青啪| 色人久久| 亚洲激情 欧美激情 | 黄色大片免费播放 | 超碰个人在线 | 欧美一级小视频 | 日本久久中文字幕 | 在线观看日韩精品 | 人人添人人澡人人澡人人人爽 | 国产精品一区二区三区久久久 | 欧美午夜性 | 综合色中色 | 精品黄色在线 | 91九色视频观看 | 亚洲永久精品在线 | 九九热精品视频在线播放 | 国产精品成人av电影 | 国内精品久久久精品电影院 | 97视频总站| 亚洲国产精品日韩 | 亚洲天堂网站视频 | 五月天婷婷综合 | 亚洲精品在线视频观看 | 国产高清99 | 欧美日视频 | 国产在线色站 | 欧美精品亚洲精品 | 日韩有色 | 五月开心激情 | 91在线视频免费观看 | 激情欧美一区二区三区免费看 | 九精品| 色播五月激情综合网 | 日韩在线精品视频 | 天天鲁天天干天天射 | 91漂亮少妇露脸在线播放 | 亚洲精品自在在线观看 | 国产一区二区高清视频 | 欧美日韩国产网站 | 日韩中文字幕亚洲一区二区va在线 | 在线观看91网站 | 99视频在线观看一区三区 | 91看片一区二区三区 | 日韩av一卡二卡三卡 | 中文字幕一区三区 | 国产精品理论片在线播放 | 日韩国产欧美视频 | 丁香花在线观看免费完整版视频 | 久久99精品视频 | 天天操天天综合网 | 亚洲aⅴ在线| 色婷婷视频在线 | 亚洲精品中文字幕视频 | 五月婷在线 | 奇米网在线观看 | 久久成人国产精品一区二区 | 日本精品视频在线观看 | av高清在线 | 特级毛片在线观看 | 五月婷婷综合在线视频 | 久久黄色免费观看 | 久草免费看 | 免费大片黄在线 | 狠狠色丁香久久婷婷综 | 久久久免费观看 | av成年人电影 | 中文字幕资源网在线观看 | 久久久久久久免费观看 | 看国产黄色片 | 久久久久99精品成人片三人毛片 | 日产中文字幕 | 国产精品激情偷乱一区二区∴ | 欧美男男tv网站 | 91超级碰 | 亚洲三级在线播放 | 亚洲精品mv在线观看 | 亚洲永久精品国产 | 韩国av电影在线观看 | 国产精品久久久久久一二三四五 | 国产精品视频永久免费播放 | 亚洲精品在线观看的 | www中文在线 | 亚洲最快最全在线视频 | 黄色网址在线播放 | 特级毛片在线免费观看 | www.香蕉视频 | 欧美日韩1区 | 婷婷色亚洲 | 色在线高清 | 国产成人一区二区啪在线观看 | 国产亚洲高清视频 | 中文字幕免费高清 | 午夜精品剧场 | 国产女教师精品久久av | 精品视频国产一区 | 狠狠成人 | 国产一级二级av | 精品v亚洲v欧美v高清v | 免费不卡中文字幕视频 | 男女日麻批 | 中文字幕在线看视频国产中文版 | 欧美一二三区在线播放 | 午夜精品久久久99热福利 | 97成人啪啪网 | 久久综合色天天久久综合图片 | 久久久国产网站 | 青春草国产视频 | a天堂一码二码专区 | 91激情视频在线观看 | 色综合天天做天天爱 | 亚洲综合在线观看视频 | 麻豆视频免费版 | 97视频在线免费观看 | 午夜精品一区二区三区在线 | 在线黄色观看 | 久久久久国产视频 | 久久精品一二三区白丝高潮 | 天天色天天射天天操 | 久久久精品网站 | 婷婷在线免费视频 | 国产精品视频全国免费观看 | 久久久精选 | 国产资源精品在线观看 | 欧美极度另类性三渗透 | 天天射天 | 亚洲免费小视频 | 国产精品麻豆果冻传媒在线播放 | 色狠狠干 | 久久成人黄色 | 91中文字幕在线播放 | 亚洲精品午夜一区人人爽 | 狠狠干天天操 | 手机看片中文字幕 | 天天爽夜夜操 | 美女精品久久久 | 欧美激情第一区 | 久久久久久国产精品久久 | 99色在线观看视频 | 国内精品亚洲 | 国产精品剧情在线亚洲 | 久久久久久久久久亚洲精品 | 91免费在线看片 | 免费观看成人网 | 欧美一二三四在线 | 久久社区视频 | 国产高清区 | 懂色av懂色av粉嫩av分享吧 | 久久视频在线观看免费 | 亚洲夜夜综合 | 黄色大片日本免费大片 | 黄色av一区二区 | 一区二区三区日韩在线观看 | 国产呻吟在线 | 免费黄色特级片 | 国产亚洲一区二区在线观看 | 国产一区二区三区免费视频 | 成人黄色国产 | 免费中文字幕在线观看 | 91手机在线看片 | 日韩精品中文字幕在线观看 | 亚洲欧洲精品在线 | 久久电影网站中文字幕 | 在线一级片 | 91人人澡 | 国产精品网红直播 | av观看久久久 | 最近中文字幕高清字幕在线视频 | 国产午夜一区二区 | 视频在线播放国产 | 丝袜足交在线 | 国产精品麻豆三级一区视频 | 草久视频在线 | 成人在线视频网 | 亚洲天堂精品视频在线观看 | 亚洲a网 | 激情久久久久久久久久久久久久久久 | 久草在线视频在线 | 91亚州| 欧美日韩免费看 | 91成人精品一区在线播放 | 新版资源中文在线观看 | 亚洲精品综合一二三区在线观看 | 97视频久久久 | 日本性生活一级片 | 香蕉视频国产在线 | 国产精品久久久久久久久久99 | 99在线看 | 精品一区二区在线播放 | 日日爱夜夜爱 | 国产成人一区二区三区影院在线 | 操操日 | 久久成人午夜视频 | 亚洲女欲精品久久久久久久18 | 欧美在线99 | 日韩中文字幕国产 | 国产成人精品电影久久久 | 国产精品18久久久久久首页狼 | 国产最新福利 | 蜜臀久久99精品久久久酒店新书 | 中文字幕视频一区二区 | 久久婷婷亚洲 | 少妇搡bbb | 亚洲狠狠丁香婷婷综合久久久 | 亚洲视频aaa | 99热精品在线 | 久久最新视频 | 国产精品福利小视频 | 视频在线观看入口黄最新永久免费国产 | 天海冀一区二区三区 | 精品亚洲在线 | 99久久激情视频 | 韩国av免费观看 | 久草免费资源 | 国产一区在线视频 | 精品久久久久久电影 | 午夜精品一区二区三区四区 | 天天操天天综合网 | 中文字幕乱视频 | 免费看片成人 | 少妇性aaaaaaaaa视频 | 久久精品国产免费 | 日韩在线一二三区 | 激情深爱.com | 亚洲精品麻豆视频 | 天天干,天天射,天天操,天天摸 | 高清在线一区 | 国产精品视频内 | 国产一区二区在线观看免费 | 国产精品视频你懂的 | 亚洲乱码在线 | 成人av电影免费在线播放 | 国产一区自拍视频 | 久久久久久美女 | 欧美在线观看视频一区二区 | 麻豆91精品 | 在线观看日韩 | 国内精品久久久久久久久久久久 | 日日干日日 | 日韩在线高清视频 | 韩国三级一区 | 国产一区二区中文字幕 | 国产女人18毛片水真多18精品 | 国产精品综合在线观看 | av在线中文 | 日本爱爱免费视频 | 人人狠狠综合久久亚洲婷 | 久草在线视频中文 | 日韩精品网址 | 国产精品福利在线 | 国产高h视频 | 99久久www | 国产福利午夜 | 波多野结衣电影一区 | 91亚洲狠狠婷婷综合久久久 | 91污视频在线 | 久久国产精品成人免费浪潮 | 四虎成人av | 欧美成人精品欧美一级乱 | 在线观看麻豆av | 精品国产伦一区二区三区观看方式 | 日韩在线观看精品 | 久久高清免费视频 | 久久精品亚洲 | 99久久99 | 麻豆视频91 | 98久9在线 | 免费 | 国产第一页福利影院 | 日韩精品免费专区 | 在线激情网 | 免费观看成人网 | 久久久毛片 | av在线精品 | 国产美女网 | 欧美日韩一区二区在线 | 欧美片一区二区三区 | 99日韩精品| 久久99精品国产一区二区三区 | 久久综合狠狠综合久久综合88 | 一区二区不卡高清 | 日本中文在线观看 | 久久久国产精品成人免费 | 免费影视大全推荐 | 亚洲乱亚洲乱亚洲 | 在线观看黄色免费视频 | 最新91在线视频 | 一区二区精品视频 | 国产亚洲视频在线免费观看 | 免费看成人av | 久久99亚洲精品久久久久 | 91人人视频在线观看 | 精品久久久久久久久久久久久久久久 | 亚洲午夜在线视频 | 在线播放亚洲 | 天天躁天天狠天天透 | 国产一级在线免费观看 | 中文字幕一区二区三区四区视频 | 国产专区精品视频 | 日韩一区二区三区免费视频 | 91免费观看 | 成人91在线 | 日韩高清精品一区二区 | 91成人久久 | 久久婷婷一区二区三区 | 色综合久久久久久中文网 | 麻豆va一区二区三区久久浪 | 久久久久久久福利 | 午夜婷婷综合 | 欧美精品在线免费 | 日韩精品一区二区三区不卡 | 蜜桃视频精品 | 在线精品视频免费观看 | 亚洲精品一区二区三区在线观看 | www.黄色小说.com| 亚洲激情影院 | 黄色片网站免费 | 日日操日日插 | 少妇性色午夜淫片aaaze | 亚洲最新在线 | 久草在线视频首页 | 久草在线一免费新视频 | 天堂在线一区二区三区 | 黄色国产高清 | 欧美日韩一级视频 | 日韩欧美高清一区二区三区 | 久草视频中文在线 | 天天干天天天 | 欧美xxxx性xxxxx高清 | 国产一区私人高清影院 | 美女视频黄在线观看 | 国产在线观看 | 精品国产成人av在线免 | 伊人婷婷激情 | av最新资源 | 欧美日韩亚洲一 | 日本精品va在线观看 | 国产亚洲精品久久久久久移动网络 | 97香蕉久久超级碰碰高清版 | 午夜精品一区二区三区可下载 | 超碰人人草 | 不卡的av在线播放 | 日日夜夜免费精品 | 久久99精品久久久久久秒播蜜臀 | 国产香蕉av| 一区二区三区电影大全 | 日韩欧美精品一区 | 伊人五月天 | 日日夜夜综合 | 99久久久久| 一区二区三区www | 国内精品在线观看视频 | 成人av在线资源 | 在线观看视频免费播放 | 天天干天天草天天爽 | ww视频在线观看 | 亚州av免费 | 久久精品美女视频网站 | 国产麻豆精品久久一二三 | 免费视频成人 | 成人a级免费视频 | 97在线观看免费观看高清 | 伊人久久av| 久久中文字幕视频 | 成人在线观看资源 | 在线免费观看黄 | 黄色大片日本免费大片 | 久久亚洲欧美 | 久久综合九色九九 | 97色婷婷成人综合在线观看 | 国产精品女人久久久久久 | 国产91精品看黄网站在线观看动漫 | 丁香导航| 99精品久久99久久久久 | 久久成视频 | 国产又粗又猛又爽又黄的视频免费 | 久久午夜色播影院免费高清 | 97偷拍在线视频 | 中文字幕免费观看视频 | 亚洲欧洲日韩 | 精品一二三区 | 99亚洲国产| 国产成人精品久久久久 | 亚洲综合激情小说 | 亚洲理论电影网 | 国产精品久久久久久久久费观看 | 亚洲一区二区视频 | 国产精品久久久久久久久久妇女 | 97色在线观看免费视频 | 偷拍福利视频一区二区三区 | 欧美成人999| 人人爱人人舔 | 免费看国产曰批40分钟 | 麻豆91精品视频 | 日本在线观看中文字幕无线观看 | 亚洲国产精品影院 | 97视频亚洲 | 日韩视频精品在线 | 美女av在线免费 | 婷婷五月在线视频 | 黄色毛片在线 | 日韩午夜精品 | 国产美女视频免费观看的网站 | 免费看毛片在线 | 精品国自产在线观看 | 亚洲精品大片www | 国产成人精品一区二区三区 | 久久久这里有精品 | 亚洲精品66 | 有码一区二区三区 | 99操视频 | 久久精品99国产精品亚洲最刺激 | 香蕉在线视频播放网站 | 美女在线国产 | 伊人天天| 亚洲国产视频a | 制服丝袜欧美 | 日本精品视频一区二区 | 亚洲欧美日韩一二三区 | 五月天色中色 | 日韩免费观看一区二区 | 午夜精品久久久久久久久久久 | 色妞色视频一区二区三区四区 | 91丨九色丨国产在线观看 | 日韩精品一区二区三区水蜜桃 | 女人18片| www.夜夜爱| 国产 日韩 在线 亚洲 字幕 中文 | 亚洲精品1234区 | 久久精品一二三 | 免费观看国产视频 | 久久黄色免费 | 日韩在线不卡视频 | 久久九九免费视频 | 日韩在线视频播放 | 国产一区精品在线 | 丁香婷五月 | 最新高清无码专区 | 麻豆一区二区 | 日韩美女免费线视频 | 免费三级骚 | 91九色视频在线观看 | 91高清完整版在线观看 | 五月开心婷婷网 | 在线 影视 一区 | 久久99网站 | 成人免费视频在线观看 | 日韩精品一区二区在线 | 日韩精品一区二区三区水蜜桃 | 亚洲国产中文字幕 | 亚洲 欧美 日韩 综合 | 国产精品嫩草影视久久久 | 色六月婷婷 | 一级片免费观看视频 | av黄色在线播放 | 欧美精品国产综合久久 | 国产探花 | 国产精品永久免费在线 | 国产香蕉久久精品综合网 | 成人免费在线网 | 丁香资源影视免费观看 | 激情网婷婷 | 91精品在线视频观看 | 国产成人高清 | 91精品国产九九九久久久亚洲 | 亚洲亚洲精品在线观看 | 国产精品美女免费视频 | 97免费在线观看 | 国产一区在线播放 | 手机av在线网站 | 麻豆视频免费版 | 亚洲高清av | 国产精品区一区 | 人人爽人人射 | 一区二区不卡视频在线观看 | 日韩欧美在线一区二区 | 国产99一区| 亚洲永久国产精品 | 天天操天天干天天操天天干 | 久久久黄视频 | 毛片a级片| 亚洲精品久久久久中文字幕二区 | 欧美日韩视频免费看 | 国产精品白浆视频 | 2024av在线播放 | 久久久成人精品 | 日韩av成人免费看 | 正在播放一区二区 | 日韩精品在线视频免费观看 | 国产在线欧美日韩 | 亚洲精品在线视频网站 | 欧美一区二区三区免费观看 | 欧美日韩中文国产一区发布 | 日韩精品在线视频 | 97在线视频免费观看 | 国产精品第10页 | 深爱五月激情五月 | 成人在线观看免费视频 | 国产美女免费看 | 久久久www免费电影网 | 久久亚洲电影 | 成人黄色片免费看 | 天天干天天色2020 | 超碰999 | 日韩视频免费 | 亚洲精品h | 欧美精品国产综合久久 | 精品国产理论 | 久久99精品久久只有精品 | 天天亚洲 | 亚洲天堂网视频在线观看 | 国产精品美女免费看 | 日本xxxx裸体xxxx17 | 2021国产精品 | 成年人视频免费在线 | 超碰av在线 | 中文字幕精 | 999毛片| 99精品一区二区 | 夜色成人av| 亚洲一区日韩精品 | 久久久久久久久免费视频 | 成人在线一区二区三区 | 91资源在线视频 | 欧美精品在线视频 | 九色精品免费永久在线 | 欧美一级性视频 | 日韩精品一区二区三区外面 | 97久久精品午夜一区二区 | 亚洲天堂激情 | 99视频在线免费播放 | 国产精品第一页在线观看 | 精品国产一二三 | 一区二区视频在线免费观看 | 日韩av网站在线播放 | 日韩黄色影院 | 黄色大全视频 | 日本成人黄色片 | av网站在线观看免费 | 国产免费观看av | 日韩精品免费在线观看视频 | 夜色在线资源 | 日韩在线免费电影 | 91av影视 | 欧美日韩亚洲在线 | 亚洲一级电影视频 | 天天天色综合 | 国产精品毛片久久 | 五月婷婷黄色网 | 天天操天天操天天操天天操天天操天天操 | av福利网址导航 | 中文字幕乱在线伦视频中文字幕乱码在线 | 四虎国产精品免费 | 日韩免费在线视频观看 | av免费在线免费观看 | 久久精品一区 | 五月婷婷六月丁香在线观看 | 国产日韩欧美在线一区 | 欧美国产日韩一区二区三区 | 欧美 日韩 视频 | 久草在线免费资源 | 精品国产乱码一区二区三区在线 | 亚洲视频在线看 | 亚洲手机天堂 | 国产伦精品一区二区三区高清 | 日韩久久久久 | 探花国产在线 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 国产精品欧美久久 | 欧美国产一区在线 | 91视频久久| 香蕉视频免费在线播放 | 国产小视频网站 | 丁香六月天 | 国产精品扒开做爽爽的视频 | 中文字幕在线免费看线人 | 色综合久久88色综合天天免费 | 日韩理论片在线观看 | 免费av电影网站 | 欧美精品一级视频 | 日本激情中文字幕 | 亚洲精品久久久久久中文传媒 | 丁香婷婷社区 | 亚洲欧美日韩精品久久久 | 中文字幕一区在线观看视频 | 久久男人视频 | 欧美亚洲国产精品久久高清浪潮 | 美女国内精品自产拍在线播放 | 久久国产综合视频 | 色网av| 99c视频在线 | 日韩高清网站 | 97在线观看视频免费 | 激情久久一区二区三区 | 欧美做受高潮电影o | 一区二区三区韩国免费中文网站 | 国产 视频 久久 | 综合影视 | 国产精品久久久久久模特 | 欧美性性网 | 久久9999久久免费精品国产 | 久久少妇 | 色偷偷88888欧美精品久久久 | 综合在线亚洲 | 色综合久久66 | 国产精品伦一区二区三区视频 | 国产高潮久久 | 天天躁日日躁狠狠躁av麻豆 | 国产一区二区三区免费视频 | 国产精品国产亚洲精品看不卡 | 91看毛片| 国产精品白丝jk白祙 | 国产成人一区二区三区免费看 | 天堂在线v | 高清中文字幕 | 九九热中文字幕 | 天堂va欧美va亚洲va老司机 | 91成品视频| 在线草| 亚洲综合日韩在线 | 天天操天天色天天 | 在线日本看片免费人成视久网 | 久久精品精品电影网 | 夜夜澡人模人人添人人看 | 亚洲精品网址在线观看 | 玖玖999| 91在线观看欧美日韩 | 久久草视频 | 色综合人人 | 精品国产欧美一区二区 | 蜜桃av久久久亚洲精品 | 日韩城人在线 | 日韩高清免费电影 | 美女视频黄,久久 | 99视频在线看 | 国产精品成人自拍 | 成人av电影免费在线播放 | 毛片一区二区 | 久草在线观看视频免费 | 亚洲永久精品一区 | 97品白浆高清久久久久久 | 黄色福利视频网站 | 国产精品美女久久久 | 日韩欧美一区二区不卡 | 国产高清视频免费在线观看 | 日韩a在线观看 | 一区二区精品在线 | 亚洲人成精品久久久久 | 欧美性极品xxxx做受 | 久久久久久国产精品999 | 激情综合色综合久久综合 | 国产视频91在线 | 国产不卡在线观看 | 女人18毛片a级毛片一区二区 | 亚洲视频2| 亚洲欧美日韩国产 | 在线观看视频黄色 | 免费观看福利视频 | 香蕉视频在线免费看 | 久久69精品久久久久久久电影好 | 日韩视频a| 在线电影 一区 | 奇米7777狠狠狠琪琪视频 | 热热热热热色 | 亚洲欧美一区二区三区孕妇写真 | 91桃色在线免费观看 | 国产精品免费麻豆入口 | 日韩影视在线观看 | 日韩免费av片 | 国产精品久久久久久久午夜 | 欧美黄色成人 | 亚洲三级黄色 | 久草视频手机在线 | 国产亚洲综合精品 | 最近中文字幕在线播放 | 中文字幕 成人 | 欧美一区二区精美视频 | 九九九在线 | 一本一本久久a久久 | 久久99精品波多结衣一区 | 成人黄色影片在线 | www黄在线 | 香蕉久草 | 国产123区在线观看 国产精品麻豆91 | 四虎成人精品在永久免费 | 国产一级片直播 | 亚洲视频一区二区三区在线观看 | 久久久久久久久久久网 | 国产小视频在线 | 精品毛片一区二区免费看 | 日韩三级成人 | 国产在线 一区二区三区 | 一级黄色片网站 | www.啪啪.com | 夜添久久精品亚洲国产精品 | 六月丁香激情综合色啪小说 | 久久免费看毛片 | 麻豆成人网 | 成人在线一区二区 | 午夜电影久久久 | 欧美日韩啪啪 | 岛国av在线免费 | 丝袜av网站 | 中文字幕在线观看视频免费 | 欧美a视频 | 九九热在线视频免费观看 | 色视频国产直接看 | 色香蕉视频| av先锋中文字幕 | 三上悠亚在线免费 | ,午夜性刺激免费看视频 | 天天操夜夜摸 | 国产午夜一区 | 欧美日韩xxx | www.日本色 | 国产精品18久久久 | 四川bbb搡bbb爽爽视频 | 中文字幕精品一区久久久久 | 亚洲三级av | 免费裸体视频网 | 国产一级91| 国产精品久久久久久久久久久久午 | 69精品在线观看 | 成人国产精品久久久春色 | 中文在线中文a | 在线视频观看成人 | 国产在线无 | 日韩欧美国产激情在线播放 | 狠狠色狠狠色综合系列 | 一级α片 | 国产一区二区在线免费播放 | 精品综合久久久 | 欧美一二三四在线 | 色老板在线视频 | 99精品视频精品精品视频 | 人人澡人人爽欧一区 | 黄色毛片大全 | 午夜av在线 | 国产视频91在线 | 久久免费国产电影 | 国产精品毛片一区视频 | 久久免费观看视频 | 中文字幕亚洲欧美日韩 | 四季av综合网站 | 天天干天天干天天干天天干天天干天天干 | 欧美一区二区三区特黄 | 911精品美国片911久久久 | aaa免费毛片| 9草在线| 久久人人爽人人片 | 国产精品18久久久久久vr | 欧美成人一区二区 | 亚洲国产精品久久久久久 | 在线观看视频日韩 | 日日操夜 | 日韩中文字幕国产 | 91精品在线免费观看 | 四虎成人精品 | 天天激情站| 日韩在线免费观看视频 | 国产色视频一区二区三区qq号 | 黄色一级大片在线免费看产 | 草在线视频 | 国产艹b视频 | 亚洲婷婷伊人 | 久在线 | 日韩在线电影一区二区 | 免费精品在线观看 | 一级黄色在线视频 | 三级大片网站 | 狠狠狠狠狠狠狠狠干 | 91久久精品一区二区三区 | 免费欧美 | 天天摸天天操天天爽 | 99精品偷拍视频一区二区三区 | www.夜夜操.com| 在线视频免费观看 | 国产一区二三区好的 | 色婷婷免费 | 蜜臀av一区二区 | 精品久久福利 | 97色se | 日韩精品在线免费观看 | www夜夜操com | 国产亚洲精品久久久久久移动网络 | 在线观看激情av | 国产亚洲精品v | 天天综合91 | 欧美激情视频一区 | 青春草视频| 高清免费在线视频 | 在线观看免费91 | 麻豆91在线播放 | 精品国产一区二 | 在线免费观看视频你懂的 | 精品国产观看 | 亚洲午夜久久久久久久久电影网 | 亚洲.www | 99精品免费视频 | 欧美一级特黄aaaaaa大片在线观看 | www.久久91| 亚洲精品午夜久久久 | www.99久久.com| 成人网在线免费视频 | 2019中文字幕网站 | 久章草在线观看 | 久久精品国产一区二区三 | 久草在线最新 | 91成人在线看 | 国内精品美女在线观看 | 国产精品久久电影观看 | 精品一区二区6 | 精品在线观看视频 | 国产视频网站在线观看 | 天天操天天爽天天干 | 伊人婷婷 | 日韩精品免费专区 | 99精品在线免费 | 国产视频美女 | 在线观看色网 | 97超碰资源总站 | 奇米7777狠狠狠琪琪视频 | 成人黄色电影在线 | 天天做日日爱夜夜爽 | 久久久久久久久久电影 | 久久国产片 | 4438全国亚洲精品观看视频 | 国产在线不卡一区 | 日产乱码一二三区别在线 | 日韩精品在线观看av | 国产精品成人品 | 亚洲欧美日韩国产精品一区午夜 | 免费在线观看成人 | 天天操天天射天天爽 | 97在线视频免费观看 | 看av免费| 91视频a| 天天综合操 | 欧美日韩中文字幕在线视频 | 91综合视频在线观看 | 欧美精品一区二区在线播放 | 黄色1级毛片 | 在线观看理论 | 久久香蕉国产精品麻豆粉嫩av | 成人免费观看网址 | 日韩午夜在线观看 | www.看片网站| 久久69精品 | 中文视频在线看 | 一区二区视频在线播放 | 九九免费在线视频 | 91麻豆精品国产自产在线游戏 | 天天搞夜夜骑 | aaa免费毛片 | 搡bbbb搡bbb视频 | 91亚色视频 | 日韩深夜在线观看 | 一区二区三区高清 | 91视频链接 | 国产女人40精品一区毛片视频 | 免费大片av | 中文字幕在线看视频 | 久久精品站 | 亚洲国产日韩欧美 | 日韩av电影一区 | 日韩高清在线一区二区三区 | 欧洲亚洲国产视频 | 国产欧美中文字幕 | 欧洲精品在线视频 | 国产手机在线观看视频 | 日本久久精品视频 | 中文字幕av电影下载 | 欧美日韩不卡一区二区三区 | 91尤物国产尤物福利在线播放 | 日日干影院| 日本中文一区二区 | 天天色影院 | 香蕉视频在线免费看 | 97人人模人人爽人人喊网 | 中文字幕 国产精品 | 视频国产一区二区三区 | 天天爱天天操 | 久久国产视频网站 | 国产一区二区视频在线 | 91精品毛片| 久久午夜国产 | 久久久久色 | 亚洲五月 | 三级性生活视频 | 97人人视频 | 韩国av免费在线 | 不卡视频一区二区三区 | 在线观看国产成人av片 | 黄色片网站av| 久久精品免费观看 | 成人h电影| 国产在线无 | 超碰免费公开 | 国产精成人品免费观看 | 国产精品免费观看在线 | 亚洲最大成人免费网站 | 久久午夜精品视频 | 久久久www成人免费毛片麻豆 | 久久大视频 | 人人视频网站 | 国产 日韩 在线 亚洲 字幕 中文 | 色五丁香 | 九色视频自拍 | 国产精品久久久久久久久费观看 | 国产专区免费 | 91在线中字| 中文字幕av电影下载 | 最近2019好看的中文字幕免费 | 在线激情小视频 | 在线视频 一区二区 | 日韩午夜精品 | 在线欧美小视频 | 欧美一级电影片 | 亚洲国产精彩中文乱码av | 99久久精品免费看 | 97人人模人人爽人人喊网 | 亚洲男模gay裸体gay | 亚洲天堂视频在线 | 免费h视频 | 四虎欧美 | 欧美色操 | www.大网伊人| 黄色亚洲大片免费在线观看 | 成人黄色片免费看 | 中文字幕在线日本 | 久久免费国产 | av成人免费观看 | 中文av在线免费观看 | 亚欧日韩成人h片 | 97精品在线视频 | 国产黄色大片 | 亚洲成人一区 | 69亚洲乱 | 婷婷丁香国产 | 蜜臀av性久久久久蜜臀av | 亚洲天堂网视频在线观看 | 国产精品毛片一区视频播 | 国产性xxxx | 激情视频在线高清看 | 人人操日日干 | 99欧美精品| 国产一级淫片在线观看 | 精品视频国产一区 | 91精品成人 | a久久免费视频 | 一区二区三区不卡在线 | 激情深爱.com| 亚洲乱码中文字幕综合 | av资源免费在线观看 | 激情av五月婷婷 | a视频在线 | 麻豆91在线播放 | 国产精品色婷婷视频 | 狠狠色丁香婷婷 | 九九免费精品视频 | 黄色小说在线免费观看 | 亚洲成人中文在线 | 国产美女在线精品免费观看 | 欧美做受高潮1 | 国产精品久久久久久麻豆一区 | 国产精品午夜在线观看 | 久久久久久久99 | 国产美腿白丝袜足在线av | 精产嫩模国品一二三区 | 99精品在线观看视频 | 夜夜看av | 国产精品一区在线 | 亚洲国产无 | .国产精品成人自产拍在线观看6 | 久久精品91久久久久久再现 | 波多野结衣理论片 | 五月激情电影 | 久久综合狠狠 | 国产视频中文字幕在线观看 | 在线视频第一页 | 91九色蝌蚪视频网站 | 五月天久久狠狠 |