久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

SSM框架實(shí)戰(zhàn):流浪犬貓救助系統(tǒng)開(kāi)發(fā)全解析

SSM框架實(shí)戰(zhàn):流浪犬貓救助系統(tǒng)開(kāi)發(fā)全解析 1. 項(xiàng)目整體定位為什么要做流浪犬貓救助系統(tǒng)流浪動(dòng)物救助這個(gè)場(chǎng)景放在技術(shù)圈里看其實(shí)被嚴(yán)重低估了。很多人覺(jué)得一個(gè)“救助系統(tǒng)”無(wú)非是幾個(gè)增刪改查頁(yè)面集合但真正動(dòng)手做課程設(shè)計(jì)或畢業(yè)設(shè)計(jì)的時(shí)候才會(huì)發(fā)現(xiàn)它牽扯到的業(yè)務(wù)流、狀態(tài)流轉(zhuǎn)、角色權(quán)限、表結(jié)構(gòu)設(shè)計(jì)遠(yuǎn)比圖書(shū)管理、學(xué)生管理系統(tǒng)要復(fù)雜。我入行快十年帶過(guò)不少學(xué)生項(xiàng)目也經(jīng)常幫人調(diào)試這類系統(tǒng)。一個(gè)做得好的流浪犬貓救助系統(tǒng)至少要能回答這幾個(gè)問(wèn)題志愿者如何登記一只被救助的動(dòng)物領(lǐng)養(yǎng)人如何發(fā)起申請(qǐng)管理員如何審核動(dòng)物被領(lǐng)養(yǎng)之后狀態(tài)如何流轉(zhuǎn)這些數(shù)據(jù)之間存在哪些關(guān)聯(lián)捋清楚這些系統(tǒng)的骨架才立得住。這個(gè)項(xiàng)目用的是SSM也就是 Spring SpringMVC MyBatis 這套經(jīng)典組合。放到今天來(lái)看它依然是最適合做企業(yè)級(jí)課程設(shè)計(jì)的選型之一。Spring 管對(duì)象、管事務(wù)SpringMVC 管請(qǐng)求路由MyBatis 管數(shù)據(jù)庫(kù)操作三層各司其職分層清晰代碼寫(xiě)起來(lái)規(guī)整答辯時(shí)也能把架構(gòu)講得頭頭是道。這套系統(tǒng)的完整交付物包括程序源碼、數(shù)據(jù)庫(kù)腳本、調(diào)試部署流程、完整開(kāi)發(fā)環(huán)境以及一篇配套的萬(wàn)字論文。也就是說(shuō)拿到手之后你不需要自己從頭搭框架重點(diǎn)是把項(xiàng)目跑起來(lái)、讀懂代碼、能對(duì)著代碼講清楚業(yè)務(wù)邏輯然后在源碼基礎(chǔ)上做功能改動(dòng)或界面優(yōu)化讓它變成“你自己的項(xiàng)目”。適合參考這個(gè)項(xiàng)目的讀者有三類一類是正在準(zhǔn)備 Java Web 課程設(shè)計(jì)的學(xué)生一類是畢業(yè)設(shè)計(jì)選了“救助平臺(tái)”方向的同學(xué)還有一類是剛學(xué)完 SSM 想找個(gè)完整項(xiàng)目練手的自學(xué)者。不管哪類你需要先建立全局認(rèn)知系統(tǒng)不是一堆代碼的堆疊而是“業(yè)務(wù)模型 → 數(shù)據(jù)表 → 三層代碼 → 前端頁(yè)面”層層落地的過(guò)程。2. 業(yè)務(wù)模型拆解救助系統(tǒng)到底管什么2.1 角色與權(quán)限誰(shuí)在用這套系統(tǒng)救助系統(tǒng)的用戶角色通常分三種管理員、普通用戶游客/志愿者、領(lǐng)養(yǎng)人。別小看角色設(shè)計(jì)權(quán)限沒(méi)想清楚后期代碼里的攔截器、判斷邏輯會(huì)寫(xiě)得一團(tuán)糟。管理員負(fù)責(zé)的是全局?jǐn)?shù)據(jù)動(dòng)物信息的錄入與審核、領(lǐng)養(yǎng)申請(qǐng)的審批、用戶的管理、留言和公告的維護(hù)。普通用戶則主要瀏覽動(dòng)物信息、查看公告、提交領(lǐng)養(yǎng)申請(qǐng)、發(fā)表留言。如果業(yè)務(wù)再細(xì)一點(diǎn)還能拆出“志愿者”角色專門記錄救助活動(dòng)但作為課程設(shè)計(jì)三個(gè)角色已經(jīng)足夠覆蓋核心功能。權(quán)限控制這一層SSM 項(xiàng)目里最常見(jiàn)的做法是攔截器加 session 用戶標(biāo)記。登錄成功之后把用戶對(duì)象放 session寫(xiě)個(gè)攔截器判斷請(qǐng)求路徑是否匹配“需要管理員權(quán)限”的路徑前綴不匹配或未登錄就重定向到登錄頁(yè)。這個(gè)思路簡(jiǎn)單可靠比引入 Spring Security 的繁瑣配置更適合畢業(yè)設(shè)計(jì)論文里也好講清楚。2.2 核心業(yè)務(wù)流程從發(fā)現(xiàn)動(dòng)物到完成領(lǐng)養(yǎng)把業(yè)務(wù)流走一遍你就知道數(shù)據(jù)庫(kù)需要哪些表、哪些狀態(tài)字段了。完整流程是這樣的志愿者或管理員發(fā)現(xiàn)流浪動(dòng)物錄入動(dòng)物檔案包含類型貓/狗、品種、性別、年齡、毛色、健康狀況、發(fā)現(xiàn)地點(diǎn)、照片、救助狀態(tài)。系統(tǒng)對(duì)外展示動(dòng)物卡片列表用戶可以按類型、狀態(tài)篩選瀏覽。用戶看到中意的動(dòng)物進(jìn)入詳情頁(yè)提交領(lǐng)養(yǎng)申請(qǐng)?zhí)顚?xiě)姓名、聯(lián)系方式、住址、養(yǎng)寵經(jīng)驗(yàn)等信息。管理員收到申請(qǐng)對(duì)領(lǐng)養(yǎng)人資質(zhì)進(jìn)行審核。審核通過(guò)后把動(dòng)物狀態(tài)從“待領(lǐng)養(yǎng)”改為“已領(lǐng)養(yǎng)”并登記領(lǐng)養(yǎng)記錄。用戶可以在個(gè)人中心查看自己的申請(qǐng)進(jìn)度留言板里還能和其他愛(ài)寵人士交流。狀態(tài)流轉(zhuǎn)是整個(gè)系統(tǒng)的靈魂。我建議在數(shù)據(jù)庫(kù)里用一個(gè)status字段管理值可以是“待審核”“待領(lǐng)養(yǎng)”“已領(lǐng)養(yǎng)”“已下架”每改一次就更新一次。這樣寫(xiě)代碼的時(shí)候邏輯清楚論文的“狀態(tài)圖”一節(jié)也有素材。2.3 業(yè)務(wù)模塊清單功能邊界劃清楚按模塊拆解這套系統(tǒng)前臺(tái)后臺(tái)加起來(lái)大約有 8 個(gè)核心模塊登錄注冊(cè)模塊賬號(hào)密碼登錄、注冊(cè)信息校驗(yàn)、驗(yàn)證碼動(dòng)物管理模塊動(dòng)物檔案的增刪改查、圖片上傳、狀態(tài)變更領(lǐng)養(yǎng)管理模塊申請(qǐng)?zhí)峤?、申?qǐng)列表、審核操作、領(lǐng)養(yǎng)記錄公告管理模塊管理員發(fā)布公告前臺(tái)滾動(dòng)展示留言評(píng)論模塊用戶發(fā)表留言管理員可刪除違規(guī)內(nèi)容個(gè)人中心模塊我的申請(qǐng)、我的留言、資料修改數(shù)據(jù)統(tǒng)計(jì)模塊按類型統(tǒng)計(jì)動(dòng)物數(shù)量、領(lǐng)養(yǎng)成功數(shù)量可選加分項(xiàng)管理員后臺(tái)用戶管理、數(shù)據(jù)管理入口模塊邊界確定之后再看 Maven 依賴、包結(jié)構(gòu)、頁(yè)面文件組織就會(huì)清晰得多。我在實(shí)際操作中的經(jīng)驗(yàn)是先畫(huà)一張模塊圖把每個(gè)模塊對(duì)應(yīng)的 controller、service、mapper 列出來(lái)寫(xiě)代碼時(shí)照著清單走不容易漏功能。3. 開(kāi)發(fā)環(huán)境搭建把地基打牢再開(kāi)工3.1 選型與版本別在這個(gè)環(huán)節(jié)踩坑很多項(xiàng)目跑不起來(lái)不是代碼的問(wèn)題是版本不一致的問(wèn)題。SSM 對(duì)版本兼容性比較敏感我推薦一套經(jīng)過(guò)大量實(shí)踐驗(yàn)證的穩(wěn)定組合組件推薦版本說(shuō)明JDK1.88u261 及以上企業(yè)項(xiàng)目最穩(wěn)的版本兼容所有主流框架Maven3.6.3 或 3.8.x依賴管理工具1.8 環(huán)境最高支持 3.8.xTomcat8.5.x 或 9.0.x9.0 對(duì)注解支持更友好MySQL5.7 或 8.05.7 兼容性最好8.0 需要注意驅(qū)動(dòng)版本IDEA2020.3 以上社區(qū)版/專業(yè)版專業(yè)版對(duì) Web 開(kāi)發(fā)支持更完整Spring5.3.x不推薦 6.x和 SpringMVC 集成配置改動(dòng)較大MyBatis3.5.x穩(wěn)定版即可我之前幫人排查過(guò)一個(gè)詭異問(wèn)題項(xiàng)目里用的 Spring 6.0配套的 javax.servlet 注解全部失效頁(yè)面 404 得莫名其妙。后來(lái)查了資料才發(fā)現(xiàn) Spring 6 把 javax 改成了 jakarta 命名空間底層 API 全變了。所以用 SSM 做項(xiàng)目老老實(shí)實(shí)待在 5.3.x 是性價(jià)比最高的選擇。JDK 裝好后在命令行輸入java -version確認(rèn)版本Maven 裝好后把conf/settings.xml里的本地倉(cāng)庫(kù)路徑改成一個(gè)獨(dú)立目錄最好再配置阿里云鏡像否則下載依賴會(huì)慢到懷疑人生。IDEA 里統(tǒng)一設(shè)置 Project Structure 的 SDK 為 JDK 1.8編譯級(jí)別選 8避免 Maven 編譯報(bào)錯(cuò)。3.2 創(chuàng)建 Maven 工程骨架從哪來(lái)不要用 IDEA 自帶的 Maven Web 模板創(chuàng)建項(xiàng)目那個(gè)模板的目錄結(jié)構(gòu)非常舊生成的 web.xml 版本也對(duì)不上。正確的做法是手動(dòng)創(chuàng)建一個(gè)普通 Maven 工程然后在src/main下自己補(bǔ)java、resources、webapp三個(gè)目錄。關(guān)鍵點(diǎn)在于pom.xml的配置。SSM 項(xiàng)目的核心依賴骨架大概是這樣的properties spring.version5.3.29/spring.version mybatis.version3.5.13/mybatis.version jackson.version2.13.4/jackson.version /properties dependencies !-- Spring核心 -- dependency groupIdorg.springframework/groupId artifactIdspring-context/artifactId version${spring.version}/version /dependency !-- SpringMVC -- dependency groupIdorg.springframework/groupId artifactIdspring-webmvc/artifactId version${spring.version}/version /dependency !-- MyBatis -- dependency groupIdorg.mybatis/groupId artifactIdmybatis/artifactId version${mybatis.version}/version /dependency !-- 連接池 -- dependency groupIdcom.alibaba/groupId artifactIddruid/artifactId version1.2.16/version /dependency !-- MySQL驅(qū)動(dòng) -- dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version8.0.28/version /dependency !-- 分頁(yè)插件 -- dependency groupIdcom.github.pagehelper/groupId artifactIdpagehelper-spring-boot-starter/artifactId version1.4.6/version /dependency !-- JSON轉(zhuǎn)換 -- dependency groupIdcom.fasterxml.jackson.core/groupId artifactIdjackson-databind/artifactId version${jackson.version}/version /dependency !-- JSTL -- dependency groupIdjstl/groupId artifactIdjstl/artifactId version1.2/version /dependency /dependencies注意 PageHelper 的引入方式在非 SpringBoot 項(xiàng)目里不建議直接用pagehelper-spring-boot-starter而是用pagehelper加jsqlparser的組合配合 MyBatis 配置里的PageInterceptor插件分頁(yè)效果更穩(wěn)定。3.3 數(shù)據(jù)庫(kù)初始化腳本先行數(shù)據(jù)庫(kù)腳本是整個(gè)項(xiàng)目的“根”。拿到項(xiàng)目資源后第一件事不是跑代碼而是找到sql目錄下的建庫(kù)腳本用 Navicat 或命令行執(zhí)行。腳本里通常包含建庫(kù)語(yǔ)句、建表語(yǔ)句和初始數(shù)據(jù)插入語(yǔ)句。我強(qiáng)烈建議你把腳本從頭到尾讀一遍特別是注釋。一個(gè)規(guī)范的腳本應(yīng)該包含create database if not exists rescue_animal default charset utf8mb4;這樣的建庫(kù)語(yǔ)句后面每個(gè)表都有明確的字段注釋。我自己帶學(xué)生時(shí)要求他們必須能說(shuō)出每張表的名字、核心字段、表與表之間的外鍵關(guān)聯(lián)這是答辯高頻考點(diǎn)。執(zhí)行完腳本后在jdbc.properties里修改數(shù)據(jù)庫(kù)連接信息jdbc.drivercom.mysql.cj.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/rescue_animal?useSSLfalseserverTimezoneAsia/ShanghaicharacterEncodingutf8 jdbc.usernameroot jdbc.password123456MySQL 8.0 的驅(qū)動(dòng)類名必須是com.mysql.cj.jdbc.Driver5.7 可以用com.mysql.jdbc.Driver。時(shí)區(qū)參數(shù)serverTimezone一定得配否則連接 MySQL 8.0 會(huì)直接報(bào)時(shí)區(qū)錯(cuò)誤這是新手最容易掉進(jìn)去的坑。4. SSM 三層架構(gòu)落地與核心代碼實(shí)現(xiàn)4.1 持久層MyBatis 映射的玩法與坑持久層是 SSM 項(xiàng)目的底層基石。實(shí)現(xiàn)方式有兩種風(fēng)格一種是用注解寫(xiě) SQL另一種是寫(xiě) Mapper XML。做項(xiàng)目時(shí)我建議用 XML因?yàn)閯?dòng)態(tài) SQL比如按條件篩選動(dòng)物寫(xiě)起來(lái)更方便且 SQL 與 Java 代碼分離論文里也好貼代碼片段。先看實(shí)體類以動(dòng)物表為例核心字段包括id、name、type貓/狗、breed、gender、age、health、photo、status、createTime。實(shí)體類字段要和數(shù)據(jù)庫(kù)字段一一對(duì)應(yīng)采用駝峰命名法。Mapper 接口只需要定義方法名SQL 寫(xiě)在同名的 XML 文件里public interface AnimalMapper { ListAnimal selectAnimalList(AnimalQuery query); Animal selectAnimalById(Integer id); int insertAnimal(Animal animal); int updateAnimal(Animal animal); int deleteAnimal(Integer id); ListAnimal selectAnimalByStatus(String status); }對(duì)應(yīng)的 XML 文件放在resources/mapper/AnimalMapper.xml下一個(gè)典型的分頁(yè)條件查詢長(zhǎng)這樣select idselectAnimalList resultTypecom.example.entity.Animal SELECT * FROM animal where if testtype ! null and type ! AND type #{type} /if if teststatus ! null and status ! AND status #{status} /if /where ORDER BY create_time DESC /select這段代碼的精髓在where標(biāo)簽加if條件組合。比如瀏覽頁(yè)面想只展示“待領(lǐng)養(yǎng)”的貓咪就傳type貓、status待領(lǐng)養(yǎng)不需要改 SQL 結(jié)構(gòu)MyBatis 會(huì)動(dòng)態(tài)拼條件。很多新人愛(ài)用字符串拼接 SQL遇到引號(hào)和空格問(wèn)題調(diào)試半天用了動(dòng)態(tài) SQL 之后清爽多了。4.2 業(yè)務(wù)層Service 接口加實(shí)現(xiàn)類的規(guī)范寫(xiě)法有人嫌 Service 層啰嗦覺(jué)得 Controller 直接調(diào) Mapper 多省事。但正規(guī)項(xiàng)目必須保留 Service 層它承擔(dān)的是事務(wù)管理和業(yè)務(wù)校驗(yàn)的職責(zé)。我見(jiàn)過(guò)一個(gè)經(jīng)典的反面案例領(lǐng)養(yǎng)申請(qǐng)模塊代碼直接在 Controller 里 insert 申請(qǐng)記錄忘記更新動(dòng)物狀態(tài)。結(jié)果用戶申請(qǐng)成功之后那只動(dòng)物在列表里還是“待領(lǐng)養(yǎng)”被第二個(gè)人又申請(qǐng)了一次。正確做法是把“提交申請(qǐng) 更新動(dòng)物狀態(tài)”放進(jìn)同一個(gè) Service 方法里加上Transactional注解Service public class AdoptApplyServiceImpl implements AdoptApplyService { Resource private AdoptApplyMapper adoptApplyMapper; Resource private AnimalMapper animalMapper; Override Transactional(rollbackFor Exception.class) public int submitApply(AdoptApply apply) { // 先判斷該動(dòng)物是否已被申請(qǐng) Animal animal animalMapper.selectAnimalById(apply.getAnimalId()); if (!待領(lǐng)養(yǎng).equals(animal.getStatus())) { throw new RuntimeException(該動(dòng)物已有人申請(qǐng)請(qǐng)選擇其他動(dòng)物); } // 插入申請(qǐng)記錄 adoptApplyMapper.insertApply(apply); // 更新動(dòng)物狀態(tài)為“申請(qǐng)審核中” animal.setStatus(審核中); animalMapper.updateAnimal(animal); return apply.getId(); } }這里需要解釋一個(gè)細(xì)節(jié)rollbackFor Exception.class為什么必須加因?yàn)?Spring 默認(rèn)只對(duì)運(yùn)行時(shí)異?;貪L如果你拋的是自定義Exception不加這個(gè)參數(shù)事務(wù)不會(huì)回滾數(shù)據(jù)庫(kù)就會(huì)留下臟數(shù)據(jù)。這個(gè)知識(shí)點(diǎn)很多教程根本不提但面試和答辯都可以拿出來(lái)加分。4.3 控制層與前端交互從表單提交到頁(yè)面渲染Controller 是連接后端和頁(yè)面的橋梁。SSM 項(xiàng)目里新手最常見(jiàn)的錯(cuò)誤是路徑映射混亂、參數(shù)接收失敗。拿領(lǐng)養(yǎng)申請(qǐng)模塊舉例一個(gè)規(guī)范的 Controller 方法是這樣的Controller RequestMapping(/apply) public class ApplyController { Resource private AdoptApplyService applyService; PostMapping(/submit) public String submitApply(AdoptApply apply, HttpSession session, Model model) { User user (User) session.getAttribute(loginUser); if (user null) { return redirect:/login; } apply.setUserId(user.getId()); int result applyService.submitApply(apply); if (result 0) { model.addAttribute(msg, 領(lǐng)養(yǎng)申請(qǐng)?zhí)峤怀晒φ?qǐng)等待審核); return success; } model.addAttribute(msg, 提交失敗請(qǐng)稍后重試); return error; } }注意這里用了PostMapping意味著只有 POST 請(qǐng)求才能訪問(wèn)這個(gè)接口。為什么不用RequestMapping不加限定因?yàn)?GET 請(qǐng)求可能會(huì)被搜索引擎收錄或被人直接瀏覽比如有人直接在地址欄輸入這個(gè)路徑會(huì)繞過(guò)表單頁(yè)面的數(shù)據(jù)校驗(yàn)直接把空數(shù)據(jù)提交進(jìn)來(lái)。限定 POST 是安全規(guī)范也是答辯評(píng)委愛(ài)問(wèn)的點(diǎn)。前端頁(yè)面建議使用 JSP 加 JSTL 標(biāo)簽庫(kù)。列表頁(yè)用${animalList}配合c:forEach循環(huán)渲染數(shù)據(jù)表單頁(yè)注意form action${pageContext.request.contextPath}/apply/submit methodpost這里必須用 EL 表達(dá)式拼上contextPath否則發(fā)布到 Tomcat 之后路徑帶項(xiàng)目名就會(huì) 404。5. 核心功能實(shí)戰(zhàn)把領(lǐng)養(yǎng)流程徹底跑通5.1 動(dòng)物展示模塊列表分頁(yè)與條件篩選前端首頁(yè)是系統(tǒng)的門面設(shè)計(jì)目標(biāo)是一屏內(nèi)讓用戶看到流浪動(dòng)物的基本情況。分頁(yè)、篩選、卡片布局一個(gè)都不能少。分頁(yè)采用的是 PageHelper 插件用法異常簡(jiǎn)單PageHelper.startPage(pageNum, pageSize); ListAnimal list animalMapper.selectAnimalList(query); PageInfoAnimal pageInfo new PageInfo(list); model.addAttribute(pageInfo, pageInfo);只要在查詢前調(diào)用PageHelper.startPage接下來(lái)的第一條 SQL 查詢就會(huì)被自動(dòng)拼上LIMIT分頁(yè)參數(shù)。然后model里塞一個(gè)PageInfo對(duì)象前端 JSP 里就能直接拿pageInfo.pageNum、pageInfo.pages、pageInfo.list做分頁(yè)導(dǎo)航。篩選狀態(tài)的實(shí)現(xiàn)就靠前面寫(xiě)的動(dòng)態(tài) SQL。前端給type字段加下拉框、給status字段加拉選框提交表單時(shí)帶上這兩個(gè)參數(shù)Controller 把它們封裝進(jìn)AnimalQuery對(duì)象傳給 Mapper 就完成了篩選。這部分做好之后用戶可以直接通過(guò)首頁(yè)的“待領(lǐng)養(yǎng)”標(biāo)簽快速找到可領(lǐng)養(yǎng)的小動(dòng)物這是整個(gè)平臺(tái)的轉(zhuǎn)化入口。5.2 領(lǐng)養(yǎng)申請(qǐng)與管理員審核狀態(tài)機(jī)的典型案例領(lǐng)養(yǎng)流程是這個(gè)項(xiàng)目里最有含金量的部分也是論文里“模塊設(shè)計(jì)”章節(jié)的重頭戲。它的本質(zhì)是一個(gè)狀態(tài)機(jī)申請(qǐng)?zhí)峤缓笞兂伞按龑徍恕惫芾韱T通過(guò)后動(dòng)物變“已領(lǐng)養(yǎng)”拒絕則動(dòng)物回到“待領(lǐng)養(yǎng)”。數(shù)據(jù)庫(kù)里的狀態(tài)字段我建議用代碼數(shù)字存不要在數(shù)據(jù)庫(kù)里直接寫(xiě)中文。比如1表示待審核2表示通過(guò)3表示拒絕。頁(yè)面展示時(shí)再通過(guò)字典映射成中文文本這樣在做數(shù)據(jù)統(tǒng)計(jì)和接口判斷時(shí)更靈活。管理員審核的核心 Service 方法Override Transactional(rollbackFor Exception.class) public int auditApply(Integer applyId, Integer auditStatus) { AdoptApply apply adoptApplyMapper.selectById(applyId); if (apply null) { throw new RuntimeException(申請(qǐng)記錄不存在); } // 更新申請(qǐng)狀態(tài) apply.setAuditStatus(auditStatus); adoptApplyMapper.updateApply(apply); // 根據(jù)審核結(jié)果更新動(dòng)物狀態(tài) Animal animal animalMapper.selectAnimalById(apply.getAnimalId()); if (auditStatus 2) { animal.setStatus(已領(lǐng)養(yǎng)); animalMapper.updateAnimal(animal); } else if (auditStatus 3) { animal.setStatus(待領(lǐng)養(yǎng)); animalMapper.updateAnimal(animal); } return 1; }這條代碼的核心價(jià)值在于“事務(wù)”一旦動(dòng)物狀態(tài)更新失敗申請(qǐng)狀態(tài)也不會(huì)變兩邊數(shù)據(jù)始終一致。5.3 圖片上傳別讓文件路徑把系統(tǒng)搞崩動(dòng)物檔案里必須得有照片否則列表頁(yè)光禿禿的沒(méi)有點(diǎn)擊欲。SSM 項(xiàng)目實(shí)現(xiàn)圖片上傳有幾條路存 base64 到數(shù)據(jù)庫(kù)、存字節(jié)流到數(shù)據(jù)庫(kù)、存文件到本地服務(wù)器再存路徑。推薦第三種數(shù)據(jù)庫(kù)只存圖片路徑文件落盤到服務(wù)器目錄。配置文件里加上上傳大小限制spring.servlet.multipart.max-file-size5MB spring.servlet.multipart.max-request-size10MB保存圖片的路徑我建議直接寫(xiě)在項(xiàng)目根目錄下的upload/文件夾不要寫(xiě)到src/main/webapp下不然項(xiàng)目重新部署時(shí)文件容易被清掉。前端img標(biāo)簽指向的路徑也需要通過(guò)相對(duì)路徑拼接類似/upload/xxx.jpg這個(gè)路徑要和服務(wù)器訪問(wèn)路徑對(duì)應(yīng)上。圖片上傳的坑主要在路徑拼接。我見(jiàn)過(guò)有人部署后圖片顯示不出來(lái)排查半天發(fā)現(xiàn)是 IDEA 和 Tomcat 的實(shí)際部署目錄不一樣動(dòng)態(tài)路徑拼接錯(cuò)誤。解決方法是寫(xiě)一個(gè)配置類注冊(cè)一個(gè)虛擬路徑映射Configuration public class WebConfig implements WebMvcConfigurer { Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(/upload/**) .addResourceLocations(file: System.getProperty(user.dir) /upload/); } }這樣把“訪問(wèn)路徑”和“磁盤路徑”解耦不管部署到哪臺(tái)機(jī)器只要項(xiàng)目根目錄下有upload文件夾圖片就能正常顯示。5.4 公告與留言撐起平臺(tái)的社區(qū)氛圍公告模塊相對(duì)簡(jiǎn)單管理員在后臺(tái)發(fā)布標(biāo)題和正文前臺(tái)公告列表按時(shí)間倒序顯示。這里注意做一下富文本或純文本的處理如果直接拼字符串輸出警惕 XSS 風(fēng)險(xiǎn)。簡(jiǎn)單做法是把轉(zhuǎn)義成lt;gt;或者在展示時(shí)用 JSTL 的fn:escapeXml函數(shù)轉(zhuǎn)義。留言板的功能包括發(fā)表、展示、刪除。雖然業(yè)務(wù)簡(jiǎn)單但有一條架構(gòu)上的經(jīng)驗(yàn)值得寫(xiě)留言表一定要帶user_id外鍵展示留言時(shí)要聯(lián)查用戶昵稱不能用前端傳來(lái)的昵稱字段直接入庫(kù)否則容易出現(xiàn)“偽裝留言”問(wèn)題。權(quán)限上普通用戶只能刪除自己的留言管理員可以刪任何留言這個(gè)規(guī)則寫(xiě)在 Service 層判斷。6. 調(diào)試部署全流程從代碼到可訪問(wèn)的系統(tǒng)6.1 本地啟動(dòng)IDEA 配置 Tomcat 的完整步驟拿到項(xiàng)目源碼后在 IDEA 里按這個(gè)順序配置正常情況下 10 分鐘能把系統(tǒng)跑起來(lái)File → Open選擇項(xiàng)目根目錄等 Maven 自動(dòng)導(dǎo)入依賴完成。如果依賴沒(méi)自動(dòng)下載執(zhí)行mvn clean install手動(dòng)拉取。打開(kāi)jdbc.properties修改用戶名密碼確保數(shù)據(jù)庫(kù)已導(dǎo)入腳本。檢查resources目錄下的log4j.properties日志路徑是否存在不存在就新建對(duì)應(yīng)目錄。Run → Edit Configurations → 點(diǎn)加號(hào) → 選擇 Tomcat Server → Local。在 Deployment 標(biāo)簽頁(yè)點(diǎn)加號(hào) → Artifact → 選擇war exploded類型。Application context 填/rescue這個(gè)值決定了訪問(wèn)路徑前綴。啟動(dòng) Tomcat瀏覽器訪問(wèn)http://localhost:8080/rescue。這里要特別解釋war exploded和war的區(qū)別。war exploded是解壓模式Tomcat 直接加載項(xiàng)目編譯后的 class 文件和靜態(tài)資源目錄每次修改代碼后重啟服務(wù)能快速看到效果。war是打包模式適合最終部署上線。調(diào)試階段用exploded發(fā)布階段打war這是標(biāo)準(zhǔn)流程。如果啟動(dòng)時(shí)端口沖突八成是 8080 被其他進(jìn)程占用了。命令行執(zhí)行netstat -ano | findstr 8080查看占用進(jìn)程的 PID然后到任務(wù)管理器結(jié)束進(jìn)程或者在 Tomcat 配置里把端口改成 8081。6.2 MySQL 配置驅(qū)動(dòng)和時(shí)區(qū)的坑位排查數(shù)據(jù)庫(kù)連接失敗是 SSM 項(xiàng)目的第一大崩潰點(diǎn)錯(cuò)誤信息大致是Connection refused或Public Key Retrieval is not allowed。連接拒絕的常見(jiàn)原因有三MySQL 服務(wù)沒(méi)啟動(dòng)、端口不是 3306、密碼錯(cuò)誤。前兩個(gè)在服務(wù)管理里直接確認(rèn)密碼錯(cuò)誤可以用mysql -uroot -p登錄驗(yàn)證。Public Key Retrieval is not allowed是 MySQL 8.0 的專屬問(wèn)題。原因在于 8.0 默認(rèn)用caching_sha2_password認(rèn)證插件在非 SSL 連接時(shí)需要先向服務(wù)器請(qǐng)求公鑰。解決方式是把連接 URL 加一個(gè)參數(shù)jdbc.urljdbc:mysql://localhost:3306/rescue_animal?useSSLfalseallowPublicKeyRetrievaltrueserverTimezoneAsia/Shanghai還有一個(gè)高頻玄學(xué)問(wèn)題是中文亂碼。頁(yè)面顯示???或者?μ這種怪符號(hào)基本是編碼沒(méi)對(duì)上。統(tǒng)一改成 UTF-8 三處即可數(shù)據(jù)庫(kù)連接 URL 加characterEncodingutf8、數(shù)據(jù)庫(kù)表的字符集用utf8mb4、JSP 頁(yè)面頭部加上% page contentTypetext/html;charsetUTF-8 languagejava %同時(shí)在 web.xml 里加亂碼過(guò)濾器統(tǒng)一處理請(qǐng)求和響應(yīng)的編碼。6.3 部署上線導(dǎo)出 war 包壓到服務(wù)器運(yùn)行本地調(diào)試通過(guò)后部署到云服務(wù)器或?qū)W校機(jī)房的方法也很固定。Maven 生命周期里點(diǎn)package會(huì)在target目錄生成一個(gè)rescue.war文件把這個(gè)文件復(fù)制到 Tomcat 的webapps目錄下啟動(dòng) Tomcat服務(wù)端會(huì)自動(dòng)解壓并發(fā)布。服務(wù)器上的數(shù)據(jù)庫(kù)配置同樣需要修改重點(diǎn)是權(quán)限和編碼。如果 MySQL 不允許遠(yuǎn)程連接需要在配置文件里把bind-address改成0.0.0.0并且給應(yīng)用創(chuàng)建獨(dú)立賬號(hào)不要直接用 root 遠(yuǎn)程連。上線前密碼用強(qiáng)密碼這也是答辯評(píng)委關(guān)注的安全點(diǎn)。部署完訪問(wèn)域名或 IP 加端口看到首頁(yè)就算成功了。如果頁(yè)面樣式丟失檢查 JSP 里引用的 CSS 路徑是否帶了contextPath這是war部署模式下最容易出現(xiàn)的問(wèn)題。7. 常見(jiàn)問(wèn)題排查與避坑指南7.1 高頻報(bào)錯(cuò)速查表報(bào)錯(cuò)現(xiàn)象根本原因解決方案ClassNotFoundException: com.mysql.cj.jdbc.DriverMySQL 驅(qū)動(dòng)沒(méi)引入或版本不對(duì)檢查 pom 依賴清 Maven 緩存重新導(dǎo)入nested exception is org.apache.ibatis.binding.BindingExceptionMapper 接口與 XML 沒(méi)綁定檢查 Mapper 接口路徑和 XML namespace 是否一致HTTP Status 404 - 請(qǐng)求路徑不存在路徑映射錯(cuò)誤或 Controller 沒(méi)被掃描檢查RequestMapping值、組件掃描包路徑、web.xml 配置The Bean xxx could not be foundService 或 Mapper 沒(méi)注入成功檢查注解是否加了、包掃描范圍、實(shí)現(xiàn)類是否存在頁(yè)面中文亂碼編碼不一致統(tǒng)一 UTF-8配置編碼過(guò)濾器端口被占用8080 被其他程序占用換端口或結(jié)束占用進(jìn)程圖片不顯示虛擬路徑映射缺失配置addResourceHandlers或把圖片放對(duì)目錄MyBatis 綁定異常是我在帶項(xiàng)目時(shí)遇到最多的報(bào)錯(cuò)內(nèi)容常常是Invalid bound statement (not found)。原因基本就兩種XML 文件的 namespace 寫(xiě)錯(cuò)或者 Mapper 接口和 XML 文件名不一致。檢查這兩處就能解決大半問(wèn)題。7.2 三類隱蔽 bug 的排查思路第一類是懶加載導(dǎo)致的 Jackson 序列化問(wèn)題。動(dòng)物實(shí)體關(guān)聯(lián)了領(lǐng)養(yǎng)記錄類里有ListAdoptApply屬性用 Jackson 返回 JSON 時(shí)可能報(bào)Failed to write HTTP message。這不是代碼邏輯錯(cuò)是 Jackson 嘗試序列化 MyBatis 懶加載對(duì)象失敗。解決辦法給實(shí)體類的關(guān)聯(lián)屬性加JsonIgnore注解或者改成立即加載具體取舍看業(yè)務(wù)需求。第二類是事務(wù)注解失效。很多人寫(xiě) Service 實(shí)現(xiàn)類時(shí)把Transactional加在接口上結(jié)果方法執(zhí)行拋異常不回滾。原因是 Spring 的注解驅(qū)動(dòng)事務(wù)默認(rèn)基于 CGLIB 代理代理對(duì)象只攔截實(shí)現(xiàn)類上的注解接口上加了也可能失效。規(guī)范是直接寫(xiě)在實(shí)現(xiàn)類方法上確??煽俊5谌愂菙?shù)據(jù)校驗(yàn)缺失。前端表單驗(yàn)證可以被繞過(guò)后端必須再做一遍校驗(yàn)尤其是手機(jī)號(hào)格式、領(lǐng)養(yǎng)數(shù)量限制這些。空白字段、超長(zhǎng)字段直接入庫(kù)會(huì)造成臟數(shù)據(jù)答辯時(shí)老師最反感看到這種“不專業(yè)”的操作。7.3 答辯必問(wèn)的冷知識(shí)鋪墊項(xiàng)目做完只是第一步答辯同樣關(guān)鍵。根據(jù)自己的經(jīng)驗(yàn)評(píng)委大概率會(huì)問(wèn)這幾個(gè)點(diǎn)提前準(zhǔn)備SSM 三大框架分別在架構(gòu)中各負(fù)責(zé)什么層次——橫向?qū)Ρ日f(shuō)清楚 Spring 管對(duì)象生命周期、SpringMVC 管請(qǐng)求分發(fā)、MyBatis 管數(shù)據(jù)持久化。為什么選擇 MyBatis 而不是 Hibernate——可從半自動(dòng) SQL 控制的靈活性、動(dòng)態(tài) SQL 注入、性能優(yōu)化空間展開(kāi)。事務(wù)在項(xiàng)目里是怎么管理的——結(jié)合領(lǐng)養(yǎng)申請(qǐng)的具體方法講Transactional的回滾機(jī)制。數(shù)據(jù)庫(kù)表之間如果出現(xiàn)數(shù)據(jù)不一致系統(tǒng)怎么處理——從外鍵約束、事務(wù)回滾、狀態(tài)校驗(yàn)三個(gè)層面向評(píng)委展示你考慮過(guò)數(shù)據(jù)的完整性。這個(gè)項(xiàng)目如果上線商用你會(huì)加什么功能——可以從微信小程序端、在線支付、RFID 芯片追溯、領(lǐng)養(yǎng)后回訪機(jī)制等方向展開(kāi)體現(xiàn)你的思考深度。這些點(diǎn)都不用背答案從業(yè)務(wù)場(chǎng)景出發(fā)講你的代碼如何處理邏輯順暢就是最好的答辯。8. 論文寫(xiě)作與資料配套的實(shí)操思路8.1 論文目錄結(jié)構(gòu)學(xué)校要求之外的隱藏加分項(xiàng)標(biāo)題里明確提到了“配套萬(wàn)字以上論文文檔”這就意味著項(xiàng)目不僅是代碼還要形成規(guī)范的文字材料。一個(gè)高分課程設(shè)計(jì)論文的標(biāo)準(zhǔn)結(jié)構(gòu)大概是摘要與關(guān)鍵詞概括系統(tǒng)功能、技術(shù)選型、業(yè)務(wù)流程、系統(tǒng)價(jià)值。需求分析調(diào)研流浪動(dòng)物救助現(xiàn)狀匯總功能需求和角色需求。系統(tǒng)設(shè)計(jì)總體架構(gòu)、模塊劃分、數(shù)據(jù)庫(kù)設(shè)計(jì)、E-R 圖、流程圖。系統(tǒng)實(shí)現(xiàn)每個(gè)模塊的代碼片段、頁(yè)面截圖、實(shí)現(xiàn)思路。系統(tǒng)測(cè)試用例設(shè)計(jì)、測(cè)試結(jié)果、邊界情況??偨Y(jié)與展望指出不足和后續(xù)優(yōu)化方向。論文拿高分的隱蔽加分項(xiàng)在于每個(gè)功能模塊都配一張運(yùn)行截圖并在截圖下方用文字解釋核心代碼的流程邏輯然后把測(cè)試用例做成表格列出“步驟、輸入、預(yù)期結(jié)果、實(shí)際結(jié)果”。只要這三樣齊全體量就非常充實(shí)萬(wàn)字以上不是難事。8.2 從代碼到論文的“翻譯”技巧寫(xiě)論文最怕的是把代碼整段復(fù)制上去顯得沒(méi)有思考。我摸索出來(lái)的流程是每一個(gè)模塊先寫(xiě)業(yè)務(wù)意義為什么要做再寫(xiě)技術(shù)實(shí)現(xiàn)用了哪些類哪些方法最后寫(xiě)關(guān)鍵代碼的拆解分析這個(gè)方法背后的邏輯。比如“領(lǐng)養(yǎng)審核”模塊論文可以這樣表達(dá)用戶在個(gè)人中心提交領(lǐng)養(yǎng)申請(qǐng)系統(tǒng)保存申請(qǐng)記錄并同步鎖定動(dòng)物狀態(tài)防止其他用戶重復(fù)申請(qǐng)。管理員在后臺(tái)查看申請(qǐng)點(diǎn)擊“通過(guò)”后系統(tǒng)自動(dòng)將動(dòng)物改為已領(lǐng)養(yǎng)并生成領(lǐng)養(yǎng)記錄全程通過(guò)事務(wù)保證數(shù)據(jù)一致性。然后貼出帶有注釋的 Service 代碼配合流程圖說(shuō)明狀態(tài)變遷路徑。這樣寫(xiě)出來(lái)的論文評(píng)委讀著舒服你答辯的時(shí)候也思路清晰因?yàn)槟阋呀?jīng)把所有代碼都反復(fù)梳理過(guò)了。圖紙部分如果不會(huì)畫(huà)專業(yè)的 UML 圖可以先用 ProcessOn 或 draw.io 畫(huà)用例圖、E-R 圖、時(shí)序圖。E-R 圖的核心表至少畫(huà)出 animal、user、adopt_apply 三張表的字段和外鍵關(guān)系這既是操作剛需也是論文的剛性素材。畫(huà)圖時(shí)注意字段名用英文說(shuō)明用中文注釋線不要交叉標(biāo)注關(guān)系類型1:1、1:N。9. 一個(gè)過(guò)來(lái)人的真心話如果你是在趕課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)我建議你把時(shí)間分配成這個(gè)比例40% 跑通項(xiàng)目30% 理解代碼20% 改功能10% 寫(xiě)論文。項(xiàng)目源碼本身已經(jīng)幫你完成了最重的基礎(chǔ)工作剩下要做的不是“重造輪子”而是把輪子拆下來(lái)看清楚結(jié)構(gòu)再換上你自己的花紋。我自己接手過(guò)不下五十個(gè)這種 SSM 項(xiàng)目發(fā)現(xiàn)最容易掛掉的場(chǎng)景不是技術(shù)問(wèn)題而是沒(méi)建立起“從數(shù)據(jù)庫(kù)到頁(yè)面”的整體認(rèn)知。一只流浪貓從“被救”到“被領(lǐng)養(yǎng)”這條數(shù)據(jù)流的每一步都對(duì)應(yīng)著你代碼里的某一行你把這根鏈條焊牢了系統(tǒng)就不會(huì)散架。這里再分享一個(gè)我自己常用的做法拿到項(xiàng)目后先把所有 Controller 的RequestMapping路徑列一張表對(duì)照每個(gè)路徑找到它對(duì)應(yīng)的 Service 方法、 Mapper 方法、數(shù)據(jù)庫(kù)表和前端頁(yè)面。這張表既是調(diào)試地圖也是論文的功能清單更是答辯時(shí)的提詞器。做救助系統(tǒng)這個(gè)項(xiàng)目技術(shù)選型也許不是最新的但它真真實(shí)實(shí)地能讓人理解“業(yè)務(wù)分析 → 架構(gòu)設(shè)計(jì) → 編碼實(shí)現(xiàn) → 測(cè)試部署”這條完整鏈路。最后想說(shuō)的是代碼里的狀態(tài)字段、審核流程、事務(wù)控制這些細(xì)節(jié)并不是為了應(yīng)付答辯而存在的——你真去梳理清楚了將來(lái)接手任何企業(yè)級(jí)項(xiàng)目底層邏輯都是相通的。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99re这里只有精品3| 人人妻人射| www五月| 97超级色碰碰| 国产精品无码av嫩草| 久久久久久中文字幕中文字幕最新| 后入式福利| 蜜桃视频成a人v在线| 99久久综合| 青青青国产手线观看视频2| 日本三级中国三级99人妇网站| 精品人妻一区二区三区蜜桃视频| 欧洲一级性爱视频在线观看| 激情黄色五月天| 无码丰满熟妇一区二区浪潮AV| 精品十三区| 麻豆2区1区天美| 蜜臀久久99精品久久久久久成人小说 | 麻豆亚洲AV成人无码久久精品| 婷婷久月| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 国产精品久久久鸭无码的功能| 试看60秒| 九九色逼| 操国产逼| 精品无码久久久久| 日韩AV无码中文一区二区| 青女在线| 欧美色综合影院| 久久久久国色αv免费观看| www.狠狠| 女欧美一区二三区| 老女人碰碰在线碰碰视频| 日韩人妻一二三区视频| 超碰色美女| 国产伦精品一区二区三区视频女| 熟妇乱伦一区二区| 亚洲第91页| 国模无码一区二区三区在线| 久久精品熟妇丰满人妻99| 爆乳免费黄网站| 国产粉嫩蜜臀av一区二区三区 | 亚洲国产精品成人综合| 亚洲成人妻日韩在线| 日韩欧美午夜视频在线| 亚洲一区二区三区婷婷| 啊啊啊啊啊啊啊啊啊啊在线观看| 国产高清无码一区二区三区四区皇冠| 欧美色偷偷| 亚洲欧洲色情高清| 99精品在线| 中文字幕久久婷婷丁香五月天| 91电影色诱| 91成人久久| 精品对白久久不卡| 自拍二页| 久久久艹艹艹| xxx0国产在线播放| 国产亚洲色婷婷久久99精品91 - 百度| 麻豆婷婷成人一二三| 国产一级黄色片在线观看| 天天看片青娱乐| 综合激情97 | 强奸乱伦大香蕉| 大粗鳼巴久久久久| 亚洲一区二区 麻豆传媒| 婷婷五月天色| 国产51色综合久久免费| 国产精品九九九| 亚av顶级裸体一区二区三区四区五区 | 韩日性爱av| 久久久555| 久久夜嗨| 中文字幕片| 超碰人人干| 小视频国产| 亚洲av资源| 伊人亚洲综合| 亚洲天堂自拍| 亚州色交| www网站黄| 成 人片 黄色大片| 青青免费在线视频一区| 欧美色宗合| 亚洲图片视频小说| 黑人与人妻| 日韩丝袜人妻AV| 亚洲美女自拍偷拍视频| 欧美性爱日韩高清| 欲香欲色| 精精品人妻一区二区三区| 一区二区三区色综合| 国产欧美一区二区| 99精品无码| 国产小黄片在线免费观看| 日本精品一级二级三级| 天天综合网~91| 97精品在线| 国产精品网站www| 亚洲丝袜色| 中日高清无码操逼视频| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 热99这里有精品综合久久| 啊啊啊轻点在线观看| 目产99999久久999| 成人综合网 欧美| 欧美三级一级| 大香蕉欧美伊| 欧美成不卡网| 欧美久久久| 国产成自自拍在线观看| 97在线青| 少妇色综合| 国产成自自拍在线观看| 无码人妻丰满熟妇奶水区毛片| 久久一二三四五六七八九区区区 | 精精夜夜| 欧美亚洲第1页| 老鸭窝亚洲毛片| 大奶啊啊好爽| 欧美亚洲综合色| 精品一区二区三区蜜桃臀赵总 | 日韩免费a级毛片无码a∨| 久久久久久久9| 久 久无码人妻AV| 亚洲久久久久| 午夜操一操| 97精品久久| 女人综合网| 97干97色| 亚洲一区操| 久久亚洲欧美中文字幕国语| 久久av一级av少妇av高潮| 久久这里是精品| 亚洲一欧洲中文字幕在线| 亚洲AV秘 精品久久老牛影视| 国人欧美精品一区二区| 色九区| 五月色丁香| 色综合一区二区三巨| 偷拍欧美综合| 91视频成人福利网站在线一区| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 伦在线97| 78m成人视线| 色香欲综合| 欧美影院一区二区三区| 岛国免费黄色网址| 在线视频日韩欧美国产| 九九九九久久久| 天美国产三级传媒| 色婷婷婷五月天激情四射| 2017大香蕉国产精品久久| 欧美色图91p| 91观看 国产白丝| 97干色| 亚洲伊人a线观看视频| 欧美精品99久久久**| 日韩欧美俄罗斯A片| 色婷婷电影网| 亚洲码和欧洲精品激情系列| 精品人妻一区二区三区免费视频| 久久性爱视频免费看| 亚洲色系另类精品国产| 91一区二区| 香蕉一区二区三区在线视频| 久久激情四射婷婷丁香五月天| 欧美亚洲首页| 亚洲精品一区二区精品| 五月天色色网站| 射丝袜高跟鞋99| 色呦色呦色精品| 亚洲狠| 懂色av色欲av蜜臀av| 色丁香五月婷婷| 久久97资源 网| 97少妇人妻中文字幕久久| 国产精品噜噜噜日日日| 岛国视频免费在线观看| 色老汉色| 肥佬影院91| 国产精品一区av在线| 婷婷五月天网| 久久风骚城市| 久久精品日韩| 清清一区二区三区四区不卡视频| 日韩色图 一区二区| 久久久九九九| 屌逼传媒| WWW美腿丝袜香蕉中文| 人妻色偷色噜| 久久黄黄| 欧美色综合网| 国产成人自拍视频在线| 久久久99999久网站| 亚洲国产另类在线中文| 吻戏激情性巴克| 天天情欲宗合网| 97超碰人人模人人拍人人| 国产粉嫩出水在线播放| 日本黄页视频在线观看| 国产精品原创巨作?v网站| 久久天堂婷婷网| 女上位精品在线| 女人被男人桶爽视频网站| 亚洲色图在线视频| 欧美懂色综合网| 国产在线视视频有精品| 很狠操| AV和黑人在线播放| 在线天堂999| 97精品免费视频网站| 青娱乐 成人娱乐在线| 国产AV激情无码久久无码| 中文字幕一二三区| 青青在线视频日韩欧美| 婷婷色网| 人妻熟妇一区二区三区| 国产成人bd在线观看| 艳尻美人妻| 久久精品一区二区一8| 久久老子无码午夜伦不卡| 美女黑人91神马| 亚洲天堂一区二区久久| 日日夜夜国产综合| 日本操逼aaaaa| 97久久精品亚洲| 97日亚洲欧美| 国模一区二区三区| 亚洲国产精品无石码久久| 开心激情婷婷| 日韩15p| www99热| 水滴偷拍| 美女尤物福利视频| 人妻天天爽天天爽三区| juliaann精品熟女一区| 国产免费黄色一级大片| 性色国产东北露脸精品视频| 日本性爰一道本| 超碰98综合网| 日人妻视频91| 999久久芭蕾| 人妻精品视频一区二区| 美女啊啊啊啊啊| 99.色网| 国产狂喷潮在线精品| 操逼内射干逼白丝91| 欧美精品一区二区少妇免费A片 | 天天操美美| 51一区二区三区| 欧美亚洲清纯| 少妇高潮特黄A片| 老女人91| 天天综合网~69| 一级人妻性爱视频| 国产和美国毛片| 亚洲福利中文字幕在线| 国产日韩久久| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 欧美激情视频一区二区| 国产精品久久久久久久久久久久久久久 | 免费啪啪一级视频| 啊啊啊好舒服视频| 中文字幕88av在线| 日韩女模中文造逼| 97超碰人人操人人操| 无码人妻精品一区二区三区九九 | 欧美日韩香蕉| 夜夜躁狠狠躁日日躁av| 久久內射| 亚洲AV永久无码一区仙野| 99av| 精品无码久久久久| 亚洲少妇喷视频看| 午夜男人av| 欧美日韩精品久久久久东北老熟妇| 九九久久99| 国产精品一区二区手机看片| 97精品视频在线| 啪啪视频mP4| 五月婷网站| 天天综合欧美| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 97精品综合久久网| 狠狠狠狠狠狠| 成人七区| 大香蕉乱级| 欧美人妻一区二区| 少妇天堂网络| 五月激情天| 精品成人动漫一区二区| 97视频在线免费观看| 久久高清无码夜夜操| 女人的久久久| 久久婷婷热| 岛国福利在线精品播放| 亚洲色人阁| 中文字幕诱惑制服人妻丝袜美丝袜美| 性色avv| 92人人操人人| 亚洲 日本 国产 综合| 老熟女综合| 九九人妻| www.yw尤物| 3028国产精品| 自拍偷拍第26| 国产偷人伦激情在线观看| 清纯唯美综合亚洲| 蜜桃臀一区二区aV| 日本一片一区| 天天综合~91入口| 欧美网站免费| 一区操逼日比视频| 亚洲熟女乱色一区二区三区| 特色a在线上| 欧美色图片欧美色图| 天天综合欧美综合| 国产在线不卡导航| 无码色| 日韩久久激情精品| 99久久精品无码一区二区| 欧美不卡在线一区二区| 很很操在线| 综合欧美亚洲| 人妻天堂三区| 色噜噜狠狠色综无码久久合欧美| 久久精品国产97欧美精品亚洲| www.91欧美| 美女97超碰| 国产伦精品免编号公布| 丰满翘臀美女影院视频| 日本久操视频| 亚洲aw毛茸茸在线 | 天天色播| 色婷网| 亚洲AV成人无码一区二区三区在线观看 | 99国产天美| 热天堂一区二区| 又黄又爽在线观看视频| 日韩国语字幕| 亚洲欧美性生活| 蜜桃传媒一区二区亚洲| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 欧美精品日韩久久久九| 97在线观看播放视频| 麻豆国产视频精品观看| 东北丰满熟女国产一区| 天天视频综合在线观看视频| 欧亚性爱啪啪| 丁香五月性| 狠狠操狠狠| 亚洲 日本 一 二 三| 综合网欧美在线| 天天色综合图片| 国产少妇与亚洲av| 日少妇亚洲版| 狠色婷婷久久一区二区三区_| 黑人精品久久97| 精品成人女人久久| 97天天做| 久久久久久久9最新免费视频观看| 超碰精品人妻狠狠干| 亚洲中文sv| 无码78| 成 人 A V免费视频在线观看| 凹凸视频在线一区二区| 国产在线强奸视频| 亚洲中文字幕精品久久久久久直播| 色综合色色| 91在线美女| 超碰综合色| 国产日韩中文字幕欧美| 欧美不在线| 激情黄色片在线观看| 久久久久久久国产视频| 国产67194| 亚洲精品819| 91欧美偷拍| 人妻无码视频一区二区三区久久| 精品免费囯产一区二区三区| 激情抓乳插进去啪啪啪日韩| 久久精彩视频| 亚洲少妇激情视频| 天天干人人乐| 国产精品视频麻豆入口| 99成人| 青青青青草av在线观看| 久久久免费高清中文视频| 69天堂| 性影在线视频| 亚洲精品丝袜| 91白嫩| 99在线免费公开视频| 曰韩av中文字幕专区| 国产精品九9| 天天热精品| 一区在线精品中文字幕| 国产女人成人精品视频| 一区二区三区四区久久视1| 人妻丰满熟妇av无码区蜜桃| 国产精品一区二区手机看片| 色色国产| 天天在线91| 久久AV无码AV| 天天操夜夜操| 97爱啪| 香港澳门日本三级网站| 丁香五月影院| 亚洲情色无码一区二区三区| 男女性感激情网站| 免费的av网| 大逼色网站| 伊人影院综合是一个与深夜成人在线| 精品国产一区二区三区久久久蜜臀 | 亚洲色图 欧美热图 清纯唯美 另类自拍 | 日本 欧美 国产一区| 色九九九九| 激情小说在线视频| 色噜噜狠狠色综无码久久合欧美| 熟妇一区,二区,三区。| 精品偷拍13p欧美dodk视频| 禁止观看美女黄| 91精品丝袜久久久久久| 日本123区操B视频| 97超碰欧美手机在线| 国产日韩区| 男人天堂站| 久草午夜| 国产天美欧美| 精品视频一区二区| 97超碰国产精品| 人妻熟女一区二区三区视频| 亚洲码专区| 日本孕妇孕交| 免费观看的黄色的网站| 手机av亚洲丝袜美腿日韩第一页二页| 免费一级精品啪啪视频| a人欧美综合天堂麻豆| 懂色aV一区二区天美传媒| 精品久久99| 九九九九一区| 亚洲操逼网| 精品人妻一区二区蜜桃视频| 婷婷久月| 99re视频在线播放青草| 97福利视频| 这里都是精品| 91在线页| 成人五月天丁香激情综合| 久久综合18p| 欧洲性爱无码区| 精品久久久久黄少妇| 毛片一区二区| 一区二区三区蜜桃成人撸久久东京热| 日韩黄片影院| 99只有精品| 成人三一级一片aaa| 岛国不卡超碰护士AV在线播放| 日韩在线一区二区| 欧美激情亚洲情色| www狠狠| 一区二区三区高清| 91美腿丝袜在线观看| 国产偷拍网站| 91天美传媒在线| 操逼逼中文字幕| 熟妇高潮二区三区| 99超级碰免费视频| 91骚熟女| 免费成人在线熟妇网| 国产黄色av大片网站| 久伊人网78| 激情自拍 校园春色| 极品欧美一区二区三区| 亚洲综合校园春色| 亚洲色啪| 100啪啪视频大全| 亚洲熟久久| 97人人超| 人人做天天爱| 久久久久久免费电影| 婷婷尹人大香蕉免费| 国产一国产一级毛片古装| 97超碰逼| 强奸a片网| 日韩欧美日韩| 东方亚洲在线操逼天堂| 亚洲夜色在线| 亚洲第一狼人丝袜美女另类| 日本三级精品| 99热导航| 五月天偷拍| 嫩草美女久久| 久久久555| 成人A片男人的天堂| 亚洲日韩国产欧美综合v| 亚洲色图欧洲| 加勒比人妻综合| 久久久久久亚洲精品不卡人乳| 无码一区免费在线不卡| 夜夜爽夜夜摸夜夜操免费视频| 日本三级中国三级99人妇网站| 亚洲性爱成人| 亚洲区 欧美区| 97自拍一区| 色色综合网站| 国产成人手机视频激情| 久久久999| 精久久久| 超碰97最新人妻| 人人色97| 黄色性爱网网| 久久超碰国产一区二区三区| 色狠狠一区二区三区香蕉| 欧美爆操91| 激情综合五月| 啪啪啪精品视频| 91被操| 男人综合网| 久久久久婷婷精品av电影| 欧美亚洲第1页| 婷婷色中文字幕| 欧美一级久久久久久久大片动画| 91丝袜美女视频| 久久 久久国内精品亚洲| 91老司机在线视频免费观看| 久久婷婷五月综合| 国产超碰人人爽人人做| 日日噜噜夜夜狠狠视频无| 天天综合97| 噜噜噜亚洲精| 97精品在线| 操逼精品视频| 德国一二三不卡| 一区二区激情国产熟女| 激情综合婷婷| 久久性爱大全| 插日本熟女视频| 色欲无码人妻日韩欧美精品| 黄色成人网久久久久久| 中文字幕三四区| 四虎影视欧美| 亚洲色电影在线| 一卡二卡三卡| 0755午夜福利视频| 亚春色色| 草B在线| 97久久久久久久久久| 色哟哟av网址| 嗯~啊~快点 死我视频免费看网站| 91骚妇| 女一区二区| 91蜜臀在线久久久久| 亚洲无套久久嗯嗯| 极品五月天噜噜| 日本三级久| 天堂精品在线| 亚洲情色第一页| 久久五月份| 艳美熟妇先锋一二三区| 亚洲日韩肥臀视频在线观看| 国产蜜臀精品一区免费尤物| 国产视频三区四区| 97se综合网| 欧美在线55555| 久草热制服丝袜在线观看| 九九自拍伦理| 中文字幕乱偷人妻久久艾草网| 久草精品一区 | 国产兽交视频在线播放| 国产Av超碰| 中文字幕91页| 日本性爱少妇| 丁香六月啪| 亚洲精品视频二区| 日韩久久超碰色| 国产中文福利| 国产精品69久久久久久久| 骚货操死你| 超碰九7| 欧美成熟性爱精品| 伊人五月天激情| 国内精品伊人久久久久影院会| 99热网站| 中文字幕在在线观看网站| 夜夜嗨绯色| 日韩毛片9| 久久久久99999| 欧美性爱日韩高清| 欧美强奸乱| 狠狠操狠狠爱| 情色五月天久久久| 色婷婷一区二区三区久久午夜成人不| 啪啪啪综合| 青娱乐老司机视频| 国产精品婬乱一级毛片彝族| www.色婷婷| 好看的91视频| 亚洲第一页综合在线| 亚洲色图欧美| 亚洲第一黄色av网站| 婷婷色色五月| 1204av韩国| 综合亚洲网| 国产在线综合福利网站| 亚洲精品亚洲人成在线麻豆| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 亚洲人天堂| 思思热免费在线视频| 337p大胆噜噜噜噜噜91Av| 色 婷97| 超碰偷拍| 欧美精品久久久久久久丰满| 亚洲天堂 视频你懂的| 久久9精品视频| 亚洲熟女少妇免费视频| 日日干天天干夜夜爽| aⅴ日韩成人电影av在线免费看av大全 | 激情欧美日韩女同久久| 欲香欲色综合天天伊人| 乱伦一区二区三区‘| 婷婷丁香六月天| 97在线青| 男女性无套 免费九一| 日本123区操B视频| 欧美色日本| 欧美天天射| 久久久 国产精品| 色眯眯射| 97视频免费在线观看| 强奸a片网| B049AV在线播放| 免费在线看黄片av| 99热啪啪| 亚洲亚洲亚洲天堂天堂| 熟女这里只有精品6| 蜜臀av一区二区三区免费观看| 香蕉色网| 亚瑟国产精品久久无码| 青青草自拍视频在线播放| 天操天操夜操夜月月年年操操 | 超碰亚洲欧美日韩无| 超碰社区97| 韩国成人精品久久久免费看| 人人综合| 日韩三级伦理中文字幕| 日韩有码一区三区| 日本精品一区二区不卡| 抽插无码高清一区| 日日日色色色色色| 狠狠中文字幕| 97色视频在线| 思思视频免费看网站| 欧美日韩99精品麻豆传媒| 久久久91| 五月丁香啪| 97久久久网站| 色区久久| 深夜视频| 夜夜爽33333| 男同专区一区二区三区在线| 日本99久久| 九九精品网| 五月丁香激情综合| 免费视频观看60秒| 国产成人网址| 78精品| 狠狠干综合| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 大香蕉在线SuP| 日韩AV无码中文一区二区| 97频视在线| 乱伦AVxx| 四虎精品亚洲| 99这里都是精品| 国产精品96久久久久久| 欧美制服网站美腿丝袜| 欧美一级在线观看成人| 裸体美女国产免费久久久网站| 农村妇女精品一区二区| 国产精品美女在线一区| 91色s| 免费A V在线| 中文字幕激情小说| 激激五月| 国内精品a| 天天激色| 综合久| 嗯嗯啊啊操我| 吉田爱美AV在线| 中国大陆国产高清AⅤ毛片| 欧美色图97| 久久婷婷五月| 久久精品国产精品一区| 狠狠亚洲| 日韩黄色成人性爱| 欧洲精品一级二级精品综合视频综合| 国产馆极品诱惑| 国产强奸91| 久草成人影片| 欧美制服另类丝袜| 成人一级性爱| 日日躁狠狠躁天天躁精品| 920日本午夜免费| 中文字幕高清精品一区| 操91| 在线观看一卡二卡| 正在播放国产精品一区| 91精品国| 综合激情97 | 久久人妻| 丝袜美女诱惑 91 视频| 亚洲激情在线| 色婷婷六月丁香七月婷婷| 国产免费一区| 伊人久久青青草| 国产欧美岛国精品一区| 久久久久久久久久9| 青青青青草av在线观看| 精品久久人妻成人网| 日本欧美中文字幕| 亚洲情色综合网| 亚洲熟妇图片| 黄片www.| 最新国内自拍av免费| 成人九九| 玖玖爱一区在线| 开心婷婷五月| 天天看天天在线精品| 久久这里只| 亚拍在线| 丰满少妇一区二区三区四区观看| 久久精视频美日韩在线视频| 亚洲一区中文精品| 欧美啪啪啪91| 国产成人天堂| 91啪9色| 国产人妻天天干精品| 日韩成人无码| 97久久久网站| 伊人少妇久久久| 色哟哟-国产专区| 99久热| 黑人无码一区二区| 人人操 欧美| 蜜臀AV午夜精品久| 久久九九热| 欧美视频激情久久久久久| 久久精品欧美一区蜜桃| 人人透人人操| 欧美十八禁导航成人| 日韩免费中文字幕视频| 精品传媒在线一区| 51一区二区三区| 麻豆国产成人精品| 97综合日韩| 亚州色图第三区| 精品久久久亚洲AV成人网站| 久久五十路熟女人妻| 毛片久久| 欧美天天性| juliaann欧美丝袜办公室| 国产AV线| 亚洲性感丝袜诱惑在线观看| 又摸又舔在线观看网站| 91蜜臀在线久久久久| 这里只有精品视频在线| 人妻精品视频一区二区| 黄片com.| 操操操日本的逼| 一级片在线观看高清无码| 亚洲男人电影天堂| 色香av| 伊香蕉综合久久久久久久噜噜噜| 啊啊啊啊好疼视频| 大香蕉之青青草原| 97av在线视频| 噜噜吧,噜噜色,噜噜| 伊人女女资源在线观看| 色嗨嗨在线| 国产精品69人妻无码久久久| 少妇啪啪自拍| 亚洲,日韩,欧美,成人播放| 无遮挡男女激烈动态图| 一区二区三区国产在线播放| 91狠狠综合网| 91美女视频在线观看| 天天操天天舔| 夜色91| 中文乱码字字幕在线第5页| 97在线看| 超碰免费人妻人人| 国产精品久久天天干| 日婷婷| 黄色片,com| 午夜精品五区| 伊人色综合网电影| 五月婷婷激情网| 五月天大香蕉| 爱爱60秒免费视频| 亚洲欧洲小说图片视频 | 加勒比aⅴ| 偷拍亚洲高清图片| 欧美色偷拍| 在线观看国产黄色| 91人精品妻入口| 日韩大香蕉AV影片| 中文字幕精品码亚洲| 日日骚一区二区三区| 99热这里只有精| 无码精品蜜桃一区二区三区ww| 精品在线78| 日本一二三高清| 黄片免费看的| 美国精品国产精品| 日韩一级久久毛片| 久久久久久久久一区二区三区| 啊啊啊草死我| 亚洲免费97免费| 黄色高清无码无码破解免费暗网 | 青苹果影院男人的天堂| 蜜桃成人1区2区3区| 操国产高清| 欧美激情 亚洲色图| 欧美第二页午夜| 97天天在线| 激情文学 亚洲图片| 亚洲情色在线| 91天射| 亚洲国内精品成人不卡| 97日视频| 成人片视频| 久久人妻无码毛片A片麻豆| 亚洲色图国产另类| 美女黑人91神马| 91欧美丨精品丨入口| 91少妇香蕉久久精品| AV99热18这里只有精品| 日日干夜夜欢| 舔人妻中文免费视频| 国产999精品久久久| 久久精品久| 亚洲A曰本VA欧美VA视频| 日韩簧片免费看| 干婷婷综合网| 99久久综合| 欧美精品91| 国产av色网| 欧美天天综合网| 在线毛片片免费观看| AA特级绝黄| 亚洲91少妇| 国产十八禁视频| 少妇色欲综合网2| 九九九免费视频| 强奸乱伦av电影| 欧美日不卡| 欧洲自拍色图gif在线| 大香蕉99re| 人妻性爱一区二区| 日本 欧美 国产一区| 加勒比日本在线| 亚洲色宗合| 一本一道波多野毛片中文在线| 99在线免费观看| 久久m| 九九九热| 亚洲一区日韩| 久久6热精品99视频| 极品色| 五月天婷婷成人网| 日本久久999| 亚洲成人精品在线一区| 色色色色综合网| 人妻熟女一区二区| a片偷拍视频| 99久久久无码| 亚洲 暴爽 AV人人爽日日碰| 中文字幕一二三区| 色综和网| 黑人精品XXX一区一二区| 婷婷丁香在线| 青青草原成人| 色官网在线| 欧美日韩亚洲国产中文永久天天看| 女性喷水高潮在线观看| 91原创在线观看| 日韩精品一区二区人人人| 日本精品高清一二区一本到| 精品一国2| 岛国免费黄色网址| 2017大香蕉国产精品久久| 熟女激情综合网| 久久久久一本一区二区青青蜜月| 五月婷亚洲精品天堂| 91超碰人人| 色综合一本| 天天综合欧美综合| 约操熟妇| 国产日韩美女小穴视频网站不卡| 亚洲偷拍自拍在线视频| julia国产在线 | www.av在线观看| 老鸭窝成人| 五月天婷婷久久| 国产精品懂色tv影视免费观看| 打av高清| 日韩无码黄色片| 东京热AV男人的天堂| 九九色色| 看免费一级在线播放毛片| 天堂网 主播 亚洲| 色色无码| 日韩高清黄片| 亚洲精品熟妇1区2区3区。| 偷拍伦理视频| 国产成年精品高清在线观看91| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 久久久久久国产成人| 九九av| 欧美日韩情色一区二区| 逼操网站| 中文字幕一区二区视频在线观看 | 国产亚洲色婷婷久久99精品91葵花宝典 | 久久久专区| 爽爽歪在线视频| 国产精品999zyz| 国产精品96久久久久久| 日韩操呦呦影院在线观看| 97人人模人人爽人人| 欧美亚洲国产91在线| 久久久男人的天堂| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 久久国产精品一级二级三级| 上海一级黄片| 免费a v| 玖玖爱视频网站| 性生活无遮挡纯毛片在线看| 欧美男人一区| 色噜噜人妻丝袜a∨先锋影 | 逼操网站| 日本爽爽爽爽爽爽免费视频| 精品成人久久久人人亚洲| 高跟伊人julia ann| 夜夜嗨AV蜜臀av| 日本三级久| 日韩无码专区| 色婷婷色99国产综合精品| 久久社区一区二区三区| 日本欧美韩国国产在线| jazzjazz国产精品麻豆| 风月影院十八禁| 日日不卡av| 91老司机精品| 97欧美日韩综合| 另类欧美色| 色噜噜狠狠色综无码久久合欧美| 这里只有97精品| 99999国产精品| 亚洲97在线| 91香蕉国产尤物视频| 日韩成年人性爱视频| 91亚州| 岛国大片国产| 日韩人妻中文视频| 色色色色网站| 成功精品影院| 福利风月五月天影院| 亚洲91网。| 久久久久久久久久久久九| 女上位精品在线| 人妻精品一区二区三区| 超碰97人妻| 一牛影视成人片免费| 国产做?爰片久久毛片?片美国| 天天看,天天做| 亚洲综合97中文网| 四虎884a| 蜜桃午夜视频一区二区 | 日韩国产十八禁| 色婷婷一区二区三区久久午夜 | 人人天天干干| 嗯啊啊啊轻点视频 | 人妻熟女av国产网站| 日韩精品.久久精品.AV女优.天美传媒| 久热久一区二区三区| 天天躁狠狠躁av| 东京热天堂网| 91天堂色男人的天堂| 色综合一区二区三巨| 狠色婷婷久久一区二区三区_| 欧美黑人与女人91| 欧美Aⅴ| 午夜免费视频1000| 亚洲性感丝袜诱惑在线观看| 91 天天综合| 日本丝袜人妻内射| 日韩AV一区二区三区三州三州| 我想要啊 啊 啊| 天天做天天爱夜夜爽毛片试看| 性爱av网站| 国产热av| xxxx网站亚洲精品| 91 国产丝袜在线放观看| 夜夜高潮夜夜爽夜夜爱爱一区| 91精品久久久| 中文字幕91综合| 免费视频一二三区| 丰满的三级少妇欧美久久久| 色情亚洲日本成人| www久久国产精品| 欧美性天天影视| 亚洲欧美色图片| 狠狠色色| 97爱爱官网| 色色综合网站| 亚洲久久天堂| 亚洲Av无码成人精品国产| 伊人少妇久久久| 波多野结衣先锋影音| 99精品网站| 五十路六十路七十路熟婆| 天天日日日射| 亚洲啪AⅤ永久无码| 97人人爱人人做人人乐| 国产传媒午夜理伦精品| 老熟女区| 自怕偷自怕亚洲精品| 国产九区| 日本高清有码网址视频| 超碰综合97在线| 久久亚洲av成人无码国产| 中文字幕午夜精品久久久| 色情五月丁香| 日躁天天爽爽| 午夜啊啊啊| 免费精品人妻一区二区三| 狠狠操狠狠燥| 五月丁香综合| 91AV入口| 久久华人网| 激情四射婷婷四五月天| 日韩在线地址一| 97国产中文| 日本精品免费一区二区三区四区| 全免费a敌肛交毛片免费| 天天内射| 国产一级操B视频| 日韩八十路老熟女| 欧美刺激色黄片免费看| 国内毛片四区| 亚洲综合另类| 18禁精品网站在线看| 操逼网站地址| 97在线观| 黑人精品久久97| 日夜啪电影| 1024人妻熟女一区二区三区| 亚洲熟女综合一区二区| 加勒比综合九九99视频在线播放| 欧美性爱中文字幕无线码| 青青在线视频日韩欧美| 中亚黄色三级大片| 佐山爱中文字幕| 婷婷月色| 免费的黄片wwwwww| 日韩免费av片高清无码| 91ise欧美| 午夜福利合集| 95精品在线| 国产精品极品美女视频| 亚洲中字幕日本一区二区三区| 久久久久久无码人妻中文字幕| 日韩超碰精品综合| 日韩熟女精品无码专区一区二区| 国产AV超爽| 欧美性爱三区二区| 日韩无码黄色片| 亚洲无码成人精品| 欧美呦呦性爱| 自拍盗摄一区| 狠肏骚人妻| 中文字幕在线观看第二页| 色色99| 五月婷婷丁香六月| 中文字幕在线观看丝袜| 99综合免费视频| 超碰在线国产| 青青网三级视频| 欧美另类色| 蜜桃精品一区二区三区ww | 日本国产高清色www视频在线| 日本色色视频网站| 香蕉热人人精品| 粉嫩粉嫩一区性色AV片| 亚洲熟女中文字幕在线| 午夜免费福利视频一区| 天天干天天干天天| 久久婷婷一区二| 久久99手机免费视频| 亚洲熟久久| 欧美综合色图网| 日本不卡二区| 久久直播国产| 亚洲日韩精品在线播放| 麻豆视频test| 天天舔九色婷婷| 蜜桃臀久久| 日本欧美中文字幕| 日韩av不卡在线看| 91GD.COM| 中文字日本乱码| 日韩精彩视频| 91肉丝| 久久无码电影| 国产天美欧美| 国产AV线| 亚洲一区在线观看欧洲| 激情久久久| 欧美日韩理论一区| 人妻熟女一区二区三区视频| 黄片视频观看| 日本精品成人无码| 亚洲图片 欧美电影| 中文?日韩?免费?精品| 激情五月天丁香社区| 1区2区3区中文字幕日韩| 日本幼女18+| 久草国产在线视频| 国产精品经典一卡久久久| 干妹子| 熟女精品va中文字幕| 人妻精品综合中文字幕在线 | 久九干| 人妻一区二区三区熟女| 伊人女女资源在线观看| 二三四区精品| 国产91影院| 色一射色一射| 久这精品中文在线观看视频| 精品久久人妻成人网| 加勒比伊人综合| 国产精品无码久久久久2025| 国产精品天美传媒| 国产精品乱码久久| 大香蕉久操| 这里只有精品97| 91丨九色丨大屁股| 黑丝制服中文字幕| 99色天堂| 亚洲色人阁| 久草成人福利导航| 黑人猛交| 色狠狠综合噜一二三区| 秋霞色色影院| 自拍视频大全亚洲专媒视频/一区二区三区 | 天天影视色香欲综合网小说| 18禁精品网站在线看| 国产av波波国产精品|