亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Spring MVC:基于注解的MVC(上)

2019-11-10 20:04:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文轉(zhuǎn)自:http://www.cnblogs.com/xrq730/p/5342650.html

什么是SPRing MVC

Spring MVC框架是一個(gè)MVC框架,通過(guò)實(shí)現(xiàn)Model-View-Controller模式來(lái)很好地將數(shù)據(jù)、業(yè)務(wù)與展現(xiàn)進(jìn)行分離。從這樣一個(gè)角度來(lái)說(shuō),Spring MVC和Structs、Structs2非常類(lèi)似。Spring MVC的設(shè)計(jì)是圍繞DispatcherServlet展開(kāi)的,DispatcherServlet負(fù)責(zé)將請(qǐng)求派發(fā)到特定的handler。通過(guò)可配置的hander mappings、view resolution、locale以及theme resolution來(lái)處理請(qǐng)求并且轉(zhuǎn)到對(duì)應(yīng)的視圖。Spring MVC請(qǐng)求處理的整體流程如圖:

Spring MVC有基于注解版與基礎(chǔ).xml版的兩種用法,不過(guò)現(xiàn)在的企業(yè)級(jí)開(kāi)發(fā)基本都使用的是注解版,沒(méi)別的原因,就是方便而已。因此后面的代碼示例,都是基于注解版本的,想了解基于.xml版本的Spring MVC的朋友可以自行上網(wǎng)查詢(xún)。

 

Spring MVC環(huán)境搭建

要開(kāi)始本文后面的內(nèi)容,自然要搭建一個(gè)Spring MVC的環(huán)境,那么首先建立一個(gè)java Web的工程,我建立的工程名字叫做SpringMVC,要搭建一個(gè)基礎(chǔ)功能的Spring MVC環(huán)境,必須引入的jar包是beans、context、core、expression、web、webmvc以及commons-logging。

然后,對(duì)web.xml添加一些內(nèi)容:

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"     xmlns="http://java.sun.com/xml/ns/javaee"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">        <display-name></display-name>        <welcome-file-list>        <welcome-file>index.jsp</welcome-file>    </welcome-file-list>            <!-- 該監(jiān)聽(tīng)器將在Web容器啟動(dòng)時(shí)激活Spring -->    <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>        <!-- 處理由JavaBeans,Introspector的使用而引起的緩沖泄露,建議配置此監(jiān)聽(tīng)器 -->    <listener>        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>    </listener>        <!--configure the setting of springmvcDispatcherServlet and configure the mapping-->    <servlet>        <servlet-name>springmvc</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>              <param-name>contextConfigLocation</param-name>              <param-value>classpath:springmvc-servlet.xml</param-value>          </init-param>          <load-on-startup>1</load-on-startup>     </servlet>     <servlet-mapping>        <servlet-name>springmvc</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping></web-app>

兩個(gè)listener不是必須的,但是servlet是必須的,url-pattern用于開(kāi)發(fā)者選擇哪些路徑是需要讓Spring MVC來(lái)處理的。接著在classpath下按照我們約定的名字springmvc-servlet.xml寫(xiě)一個(gè)xml文件:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns="http://www.springframework.org/schema/beans"      xmlns:mvc="http://www.springframework.org/schema/mvc"      xmlns:context="http://www.springframework.org/schema/context"      xmlns:aop="http://www.springframework.org/schema/aop"      xmlns:tx="http://www.springframework.org/schema/tx"      xsi:schemaLocation="http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans-4.2.xsd        http://www.springframework.org/schema/mvc        http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context-4.2.xsd">            <context:annotation-config />        <context:component-scan base-package="com.xrq.controller"/>        <!-- 配置視圖解析器 -->    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">          <!-- WebRoot到一指定文件夾文件路徑 -->          <property name="prefix" value="/" />          <!-- 視圖名稱(chēng)后綴  -->          <property name="suffix" value=".jsp" />      </bean>  </beans>

另外,由于使用了Spring,所以Tomcat啟動(dòng)的時(shí)候默認(rèn)會(huì)去WEB-INF下找applicationContext.xml,所以放一個(gè)空的applicationContext.xml到WEB-INF下:

復(fù)制代碼
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans-4.2.xsd">    </beans>復(fù)制代碼

寫(xiě)一個(gè)Java POJO,用于處理具體的請(qǐng)求:

復(fù)制代碼
@Controller@RequestMapping(value = "/test")public class TestController{    @RequestMapping    public String dispatchTest()    {        System.out.println("Enter TestController.dispatchTest");        return "test";    }}復(fù)制代碼

注意,這里有一個(gè)@Controller,這個(gè)注解和@Service注解意思差不多,都表示該類(lèi)是一個(gè)Spring Bean,這樣就不需要再在Spring文件中為這個(gè)類(lèi)定義Bean了。

另外,由于我前面在springmvc-servlet.xml中配置了prefix和suffix,因此return的時(shí)候就可以方便一些,不需要寫(xiě)前綴和后綴,Spring MVC默認(rèn)會(huì)轉(zhuǎn)發(fā)到(請(qǐng)求轉(zhuǎn)發(fā)是Spring MVC默認(rèn)的頁(yè)面跳轉(zhuǎn)方式)"/test.jsp"路徑下。

最后別忘了,因?yàn)樵趙eb.xml中設(shè)置了啟動(dòng)激活Spring,因此還需要寫(xiě)一個(gè)applicationContext.xml(Spring文件的默認(rèn)名字),當(dāng)然,里面除了基本的聲明,什么實(shí)際內(nèi)容都不需要。最終,WebRoot文件夾應(yīng)該是這么一個(gè)結(jié)構(gòu):

最后,啟動(dòng)容器,訪問(wèn)"localhost:8080/SpringMVC/test",容器就會(huì)把該請(qǐng)求轉(zhuǎn)發(fā)到"localhost:8080/SpringMVC/test.jsp"頁(yè)面下了。

 

@RequestMapping注解

Spring MVC中最重要的注解應(yīng)該就是@RequestMapping了,它是用于處理請(qǐng)求映射的。繼續(xù)看剛才的TestController:

復(fù)制代碼
@Controller@RequestMapping(value = "/test")public class TestController{    @RequestMapping    public String dispatchTest()    {        System.out.println("Enter TestController.dispatchTest()");        return "test";    }}復(fù)制代碼

類(lèi)上的RequestMapping是用于第一層匹配的。"localhost:8080/SpringMVC/test"和"localhost:8080/SpringMVC/add",value是test,自然走的是前者。

接著看,比如我在TestController中又定義了三個(gè)方法,此時(shí)類(lèi)上不使用RequestMapping注解:

復(fù)制代碼
@RequestMapping(value = "/add")public String dispatchAddTest(){    System.out.println("Enter TestControll.dispatchAddTest()");    return "test";}    @RequestMapping(value = "/add/add")public String dispatchAddAddTest(){    System.out.println("Enter TestControll.dispatchAddAddTest()");    return "test";}@RequestMapping(value = "/del")public String dispatchDelTest(){    System.out.println("Enter TestControll.dispatchDelTest()");    return "test";}復(fù)制代碼

那么這三個(gè)方法分別匹配的路徑是:

"localhost:8080/SpringMVC/add""localhost:8080/SpringMVC/add/add""localhost:8080/SpringMVC/del"

關(guān)于路徑匹配,再提一點(diǎn),假如在類(lèi)上和方法上都加了RequestMapping,那么將會(huì)以類(lèi)路徑為基準(zhǔn),再向方法路徑做匹配,比如:

復(fù)制代碼
@Controller@RequestMapping(value = "/test/")public class TestController{    @RequestMapping(value = "common")    public String root()    {        System.out.println("Enter TestController.root()!");        return "result";    }}復(fù)制代碼

這種寫(xiě)法,匹配的應(yīng)當(dāng)是:

"localhost:8080/SpringMVC/test/common""localhost:8080/SpringMVC/test/common/""localhost:8080/SpringMVC/test/common.html""localhost:8080/SpringMVC/test/common.jsp""localhost:8080/SpringMVC/test/common.vm"

類(lèi)似這種的路徑,如果還想往"localhost:8080/SpringMVC/test/common/"再添加內(nèi)容,那么root()這個(gè)方法就無(wú)法匹配到了,必須再添加方法。多說(shuō)一句,"/"一直是一個(gè)容易弄混的東西,我自己試驗(yàn)的時(shí)候發(fā)現(xiàn),RequestMapping里面的value屬性,只要路徑不存在多級(jí)的關(guān)系,加不加"/"是沒(méi)有什么影響的。

另外,@RequestMapping還可以匹配請(qǐng)求類(lèi)型,到底是GET還是POST還是其他的,這么做:

@RequestMapping(method = RequestMethod.POST)public String dispatchTest(){    System.out.println("Enter TestController.dispatchTest()");    return "test";}

這樣就指定了該方法只匹配"localhost:8080/SpringMVC/test"且請(qǐng)求方式為POST的請(qǐng)求。

前面頁(yè)面跳轉(zhuǎn)的方式都是轉(zhuǎn)發(fā)(dispatch)的方式,轉(zhuǎn)發(fā)在我看來(lái)未必是一種很好的方式,典型的就是處理表單的時(shí)候會(huì)有表單重復(fù)提交的問(wèn)題,那么如何使用重定向(redirect)的方式進(jìn)行頁(yè)面跳轉(zhuǎn)?可以這么寫(xiě)Controller的方法,差別在于return部分:

@RequestMappingpublic String dispatchTest(Test test){    System.out.println("Enter TestController.dispatchTest(), test: " + test);    return "redirect:/test.jsp";}

最后,@RequestMapping中還有params、headers、consumes等幾個(gè)屬性,不過(guò)這幾個(gè)都不重要,也不常用,就不講了。

 

參數(shù)匹配

處理url也好、表單提交也好,參數(shù)匹配是非常重要的一個(gè)內(nèi)容,萬(wàn)幸,Spring MVC對(duì)參數(shù)請(qǐng)求的支持做得非常好----它會(huì)自動(dòng)根據(jù)url或者表單中參數(shù)的名字和方法中同名形參進(jìn)行匹配并賦值。

舉一個(gè)例子:

復(fù)制代碼
@Controller@RequestMapping(value = "/test")public class TestController{    @RequestMapping    public String dispatchTest(String testId, String ttestId)    {        System.out.println("Enter TestController.dispatchTest(), testId = " + testId +                 ", ttestId = " + ttestId);        return "test";    }}復(fù)制代碼

此時(shí),我訪問(wèn)"localhost:8080/SpringMVC/test?testId=1&ttestId=2",控制臺(tái)打印出:

Enter TestController.dispatchTest(), testId = 2, ttestId = 3

不僅如此,方法中還可以放入一個(gè)實(shí)體類(lèi)對(duì)象:

復(fù)制代碼
public class Test{    private String tid;    private String nid;    private String bid;        public void setTid(String tid)    {        this.tid = tid;    }        public void setNid(String nid)    {        this.nid = nid;    }        public void setBid(String bid)    {        this.bid = bid;    }        public String toString()    {        return "tid = " + tid + ", nid = " + nid + ", bid = " + bid;    }}復(fù)制代碼

注意,實(shí)體類(lèi)對(duì)象中如果私有屬性不打算對(duì)外提供,getter可以沒(méi)有,但是為了Spring MVC可以將對(duì)應(yīng)的屬性根據(jù)屬性名稱(chēng)進(jìn)行匹配并賦值,setter必須要有。把TestController稍作改造,傳入一個(gè)對(duì)象:

@RequestMappingpublic String dispatchTest(Test test){    System.out.println("Enter TestController.dispatchTest(), test: " + test);    return "test";}

此時(shí)我訪問(wèn)"http://localhost:8080/SpringMVC/test?tid=0&bid=1&nid=2",控制臺(tái)上打印出:

Enter TestController.dispatchTest(), test: tid = 0, nid = 2, bid = 1

看到,參數(shù)完全匹配。

不僅如此,再多試驗(yàn)一點(diǎn):

復(fù)制代碼
@RequestMappingpublic String dispatchTest(Test test1, Test test2, String tid, String nid){    System.out.println("Enter TestController.dispatchTest(), test1:" + test1 +             "; test2:" + test2 + "; tid:" + tid + "; nid:" + nid);    return "test";}復(fù)制代碼

訪問(wèn)一樣地址"http://localhost:8080/SpringMVC/test?tid=0&bid=1&nid=2",結(jié)果是:

Enter TestController.dispatchTest(), test1:tid = 0, nid = 2, bid = 1; test2:tid = 0, nid = 2, bid = 1; tid:0; nid:2

結(jié)論就是:

假如方法的參數(shù)是普通的字符串,只要字符串名字有和請(qǐng)求參數(shù)中的key完全匹配的,Spring MVC就會(huì)將完全匹配的自動(dòng)賦值假如方法的參數(shù)是實(shí)體類(lèi),只要實(shí)體類(lèi)中的參數(shù)有和請(qǐng)求參數(shù)中的key完全匹配的,Spring MVC就會(huì)將完全匹配的自動(dòng)賦值

對(duì)于url如此,應(yīng)用到表單中也是一樣的,有興趣的可以自己試驗(yàn)一下。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
91在线在线观看| 日韩电影免费在线观看中文字幕| 欧美精品日韩综合在线| 欧美性猛交ⅹxxx乱大交免费| 粉嫩一区二区三区在线观看| 国产又粗又爽| 日韩video| 丝瓜app色版网站观看| 国产在线一区二区三区四区| 黄网站欧美内射| 精品熟妇无码av免费久久| 亚洲天堂一区在线观看| 中文人妻一区二区三区| 日本精品一区二区三区在线| 一区二区三区视频在线观看视频| 日韩av成人网| 国产婷婷色一区二区三区| 手机在线不卡av| 国产高潮久久久| 国产欧美一区二区精品婷婷| 日韩成人av网站| 日韩一区二区视频在线| 国产亚洲色婷婷久久99精品| 亚洲天堂2024| 亚洲成人精品在线观看| 一本免费视频| 国产成人生活片| 九九热精品在线视频| 婷婷激情五月综合| 夜夜嗨av一区二区三区四区| 国产亚洲短视频| 91精品国产乱| 久久久久久久久久久久久9999| 日本三级黄色网址| 日韩免费观看高清完整版在线观看| 欧美性猛交99久久久久99| 午夜影院日韩| 911亚洲精品| 男女性高潮免费网站| 蜜桃久久av一区| 久草免费新视频| 中文字幕人妻一区二区在线视频| 污视频网站在线免费观看| 欧美aaa视频| 久久久久久久久久久久久久国产| 男人j进女人j| 天堂av在线免费| eeuss影院www免费影院| 亚洲a∨精品一区二区三区导航| 成人综合久久网| 97在线超碰| 九九热视频精品在线观看| 久久天天综合| 看欧美ab黄色大片视频免费| 中文字幕不卡三区| 成人观看免费完整观看| 亚洲视频久久久| 国产中文字幕日韩| 四虎影视一区二区| 中文字幕免费在线不卡| 国产精品午夜久久久久久| 韩国v欧美v亚洲v日本v| 在线观看三级视频| 欧美极品少妇xxxxⅹ喷水| 亚洲在线免费观看视频| 中文一区一区三区高中清不卡免费| 加勒比久久高清| 91在线精品观看| 成人黄色三级视频| 蘑菇福利视频一区播放| 天天看片天天操| 一区二区视频免费在线观看| 在线观看视频欧美| 国产成人午夜电影网| 亚洲jjzzjjzz在线观看| 无码人妻精品一区二区三区不卡| 成人性生交大片免费看视频在线| wwwxx在线观看| 欧美无砖砖区免费| 亚洲人成小说网站色在线| 欧美一级欧美一级在线播放| 中文字幕在线高清| 免费精品国产自产拍在| 色版视频在线观看| 成人在线观看网站| 91日韩在线播放| 97不卡在线视频| 色综合888| 久久综合久久综合久久综合| 欧美成人黑人| 国产精品久久久久久久久图文区| 国产亚洲欧美日韩日本| 国产在线麻豆精品观看| 国产又爽又黄又舒服又刺激视频| 亚洲产国偷v产偷v自拍涩爱| 国产精品高清在线观看| 中文字幕一区二区人妻电影丶| 翔田千里亚洲一二三区| 手机福利在线视频| 亚洲成人激情社区| 97免费资源站| 欧美激情喷水| 成人黄色国产精品网站大全在线免费观看| 99久热这里只有精品视频免费观看| 亚洲精品一区国产精品| 风间由美性色一区二区三区四区| 在线观看免费小视频| 成人激情视屏| 久久精品国产亚洲av麻豆| 永久免费看mv网站入口亚洲| www久久日com| 精品美女久久久久| 欧洲成人午夜免费大片| 91高潮精品免费porn| 欧美日韩一本到| 国产精品久久一区| 国产欧美精品在线播放| 日韩一区二区电影在线| 浮力影院欧美三级日本三级| 亚洲校园激情春色| 欧美日韩在线观看首页| 成人国产精品一区| 国内外成人在线| 亚州成人在线电影| 91小视频免费看| 日本网站在线播放| 一区二区三区四区电影| 亚洲成av人片一区二区梦乃| 日韩亚洲视频在线观看| 亚洲综合小说网| 国产精品无码在线| 亚洲jjzzjjzz在线观看| 91精品国产综合久久小美女| www.色香蕉| 亚洲精品资源| 亚洲三级视频| 亚洲天堂免费视频| 极品销魂一区二区三区| 精品一区二区三区四区在线| 粉嫩av一区二区三区四区五区| 久久亚洲国产精品| 丝袜美腿亚洲一区二区| 中文字幕大看焦在线看| 中文字幕免费高清| 国内伊人久久久久久网站视频| 懂色av中文一区二区三区| 色999日韩国产欧美一区二区| 三级在线免费观看| 日韩国产欧美一区二区| 欧洲一区二区在线| 日韩加勒比系列| 欧美影院午夜播放| 欧美丰满日韩| 国产精品美乳一区二区免费| 亚洲丝袜一区| 久久一二三四区| 青檬在线电视剧在线观看| 成人一区二区三区四区| 久久久久综合一区二区三区| 久久―日本道色综合久久| fc2在线中文字幕| 欧美日韩一级在线观看| 亚洲三级在线观看| 久久免费看少妇高潮| 日韩av影视综合网| 99久久精品免费看国产| 亚洲成熟丰满熟妇高潮xxxxx| a级黄色一级片| 日韩欧美一级二级| 久久手机在线视频| 韩国黄色一级大片| 亚洲熟妇av日韩熟妇在线| 色噜噜狠狠狠综合曰曰曰| 一本色道久久综合一区| 中文字幕日韩久久| 日韩精品在线视频| 国产丝袜自拍| 黄色三及免费看| 成人黄色av网址| 国产porn视频| 四季av一区二区凹凸精品| 2024短剧网剧在线观看| 嫩草影院一区二区三区| 亚洲最大福利网站| 色婷婷在线观看视频| 99精品视频在线观看免费播放| 日韩黄色片在线| 欧美一区免费看| 午夜剧场在线免费观看| 国产欧美日韩另类视频免费观看| 亚洲成av人片在www色猫咪| 尤物网在线观看| 日本黄色免费| 欧美亚洲一区三区| 欧美日韩免费高清一区色橹橹| 星空无限传媒在线| 日本在线视频1区| 美女av免费看| 欧美日韩网址| 自拍偷自拍亚洲精品播放| 精东粉嫩av免费一区二区三区| 久久欧美中文字幕| 成年人在线观看av| 99久久免费精品国产72精品九九| 久久久精品国产免大香伊| 亚洲国产一区二区久久久777| 精品黄色免费中文电影在线播放| 欧美xxxxx在线视频| 国产精品99一区二区三| 亚洲免费看黄网站| 黄色在线观看视频网站| 国产在线三区| 欧美free性| 91gao视频| 中文字幕一区在线观看| 99视频只有精品| 91视频免费入口| 超碰在线人人| 91精选在线观看| 成人午夜视频网站| 亚洲无线码在线一区观看| 中文字幕乱码日本亚洲一区二区| 亚洲精品国产一区| 在线电影一区二区三区| 超碰97人人人人人蜜桃| 色婷婷综合久久久久中文一区二区| 一级特黄a大片免费| 久久久噜噜噜久久久| 亚洲v欧美v另类v综合v日韩v| 中文字幕日本在线| 国模视频一区二区| 在线观看日批视频| 色视频在线看| 亚洲一区三区视频在线观看| 99热这里只有精品在线播放| 欧美在线二区| 国产精品免费成人| 国产精品毛片视频| 免费三级在线观看| 欧美国产日韩中文字幕在线| 亚洲男人天堂手机在线| 中文字幕第8页| 无码日韩人妻精品久久蜜桃| 蜜桃视频在线观看免费视频| 国产在线视频精品视频免费看| 精品欧美一区二区久久久久| 91精品国产黑色紧身裤美女| 日韩中文字幕在线免费| 久久久久久久久久久91| 国产综合激情| 毛片在线免费| 亚洲欧美日本国产专区一区| 亚洲精品白浆高清| 日本a√在线观看| 日韩在线网址| 国产极品在线播放| 国产成人亚洲精品| 亚洲怡红院av| 久久久久久久久一区| 成人av手机在线观看| 轻点好疼好大好爽视频| 欧美精品亚洲精品| 四虎影视在线观看2413| 中文字幕欧美国内| jiujiure精品视频播放| 男同在线观看| 国产精品久久久久久久久久久久久久久久| 伊人影院蕉久影院在线播放| 四色永久免费网站| 亚洲国产精品成人综合色在线婷婷| 青青草成人影院| 久久久久久一级片| eeuss影院一区二区三区| 中文字幕精品一区日韩| 欧美成人精品二区三区99精品| 国产精品国产三级国产aⅴ无密码| 性史性dvd影片农村毛片| 国产精品亚洲аv天堂网| 中文字幕在线播放一区| 亚洲美女屁股眼交3| 视频欧美一区| 圆产精品久久久久久久久久久| 欧美一级淫片免费视频黄| 一区二区三区四区视频精品免费| 亚洲成av人片乱码色午夜| 男人天堂手机在线观看| 国产高清自产拍av在线| 99国产一区二区三精品乱码| 美女主播视频一区| 亚洲第一网站在线观看| 日本中文字幕片| 日韩欧美国产精品一区| 亚洲www色| 神马电影网我不卡| 国产精品久久欧美久久一区| 国产精品扒开做爽爽爽的视频| 黄色aaaaaa| 在线日本中文字幕| 久久久国产精品不卡| 欧美人交a欧美精品| 欧美福利视频一区二区| 2019中文字幕全在线观看| 欧美性生交大片免网| 午夜天堂影视香蕉久久| 日韩av电影一区| 最近中文字幕mv在线一区二区三区四区| 欧美视频在线播放| 在线看日韩精品电影| 手机在线观看你懂的| 91精品国产91久久久久久最新毛片| 欧美日韩国产一区精品一区| 亚洲欧美日韩综合网| 五月天色婷婷综合| 头脑特工队2免费完整版在线观看| 一区二区三区国产在线| 国产一级片网址| 国产日韩欧美精品在线| 99九九99九九九99九他书对| 99久久一区三区四区免费| 久久成人精品一区二区三区| 精品国产一二三| 精品一区二区三区的国产在线观看| 婷婷综合激情| 黄色片在线免费| 亚洲最大成人在线| 最新亚洲精品国自产在线观看| 国产午夜性春猛交ⅹxxx| 国产大片一区二区三区|