色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

SSM+Vue旅游資源網(wǎng)站畢業(yè)設(shè)計(jì)完整實(shí)戰(zhàn)指南

SSM+Vue旅游資源網(wǎng)站畢業(yè)設(shè)計(jì)完整實(shí)戰(zhàn)指南 又到了一年里被畢設(shè)題目反復(fù)“折磨”的時(shí)候最近來(lái)問(wèn)我的學(xué)弟學(xué)妹里有好幾個(gè)拿的都是“SSMVue旅游資源網(wǎng)站”這類(lèi)題目。實(shí)話(huà)實(shí)說(shuō)這個(gè)題目在計(jì)算機(jī)類(lèi)本科畢設(shè)里屬于典型的“老牌選手”技術(shù)上不算激進(jìn)但需要做的東西一點(diǎn)也不少。如果能把程序結(jié)構(gòu)和論文思路都打通它既可以當(dāng)一份完成度很高的畢設(shè)也可以在答辯時(shí)讓老師清楚地看到你的工程能力。這篇文章我就圍繞“ssmvue旅游資源網(wǎng)站”這個(gè)項(xiàng)目從選題邏輯、數(shù)據(jù)庫(kù)設(shè)計(jì)、前后端分工、核心代碼實(shí)現(xiàn)、論文寫(xiě)作和答辯準(zhǔn)備幾個(gè)維度完整拆一遍。適合正在做同類(lèi)題目、或者打算拿旅游類(lèi)網(wǎng)站當(dāng)畢設(shè)項(xiàng)目的人參考哪怕你目前只寫(xiě)過(guò)增刪改查跟著這套思路也能把一個(gè)合格的項(xiàng)目搭起來(lái)。1. 項(xiàng)目定位與整體設(shè)計(jì)思路1.1 為什么SSMVue這套組合至今還是畢設(shè)的穩(wěn)妥選擇很多學(xué)生看到現(xiàn)在到處都是Spring Boot、微服務(wù)、前后端分離就會(huì)疑惑為什么還要做一個(gè)SSM的項(xiàng)目這里有個(gè)非常實(shí)際的背景不少高校的選題庫(kù)和答辯組仍然保留了SSM體系題目寫(xiě)什么就按什么來(lái)這是最穩(wěn)妥的路線(xiàn)。如果提綱上明確寫(xiě)著“基于SSM框架的旅游資源網(wǎng)站”那你就不要在畢設(shè)里私自換成Spring Boot除非指導(dǎo)老師明確表示可以調(diào)整。否則答辯時(shí)會(huì)面臨“你的題目和實(shí)現(xiàn)不一致”的尷尬局面。從技術(shù)本身來(lái)說(shuō)SSM不是過(guò)時(shí)的東西。Spring管對(duì)象和事務(wù)SpringMVC管請(qǐng)求分發(fā)MyBatis管數(shù)據(jù)庫(kù)操作這三者配合能讓一個(gè)本科生把“分層思想”講得很清楚。相比Spring Boot那種“自動(dòng)配置一把梭”的用法SSM反而更能逼迫你去理解Bean、IoC和過(guò)濾器這些基礎(chǔ)概念。前端這塊配Vue是加分項(xiàng)。老式畢設(shè)喜歡用JSPjQuery做出來(lái)的頁(yè)面一眼就回到2015年。用Vue做單頁(yè)應(yīng)用配上Element UI或Element Plus頁(yè)面的觀感會(huì)明顯好于傳統(tǒng)模板渲染。旅游資源這種偏展示型的網(wǎng)站前端體驗(yàn)恰恰是用戶(hù)第一眼關(guān)注的東西所以Vue在這里不是炫技而是解決實(shí)際問(wèn)題。1.2 業(yè)務(wù)功能邊界把“資源展示”變成可驗(yàn)收項(xiàng)目很多同學(xué)拿到“旅游資源網(wǎng)站”這個(gè)題目后第一反應(yīng)是拼命加功能支付、搶票、線(xiàn)路規(guī)劃、智能推薦……我見(jiàn)過(guò)一位同學(xué)想做一個(gè)完整版“在線(xiàn)旅游電商平臺(tái)”結(jié)果寫(xiě)了三個(gè)月連核心流程都沒(méi)跑通最后只能熬夜砍功能。正確的思路是先把項(xiàng)目定性成“資源展示輕交互”。游客可以瀏覽景點(diǎn)和旅游線(xiàn)路注冊(cè)用戶(hù)可以收藏景點(diǎn)、發(fā)表評(píng)論管理員可以在后臺(tái)管理景點(diǎn)、線(xiàn)路、公告、用戶(hù)和評(píng)論。這個(gè)范圍的拿捏是有講究的有完整的用戶(hù)體系注冊(cè)、登錄、權(quán)限區(qū)分這是每一個(gè)答辯老師都會(huì)關(guān)注的點(diǎn)。有核心業(yè)務(wù)實(shí)體景點(diǎn)、線(xiàn)路、資訊做的是旅游資源領(lǐng)域的事。有典型的系統(tǒng)行為瀏覽、搜索、詳情、收藏、評(píng)論能體現(xiàn)數(shù)據(jù)庫(kù)設(shè)計(jì)和業(yè)務(wù)邏輯。有后臺(tái)管理端管理員的增刪改查能體現(xiàn)完整的閉環(huán)。把邊界定在這個(gè)程度既能在一兩個(gè)月內(nèi)做出來(lái)又足夠支撐一篇結(jié)構(gòu)完整的論文。支付、地圖、推薦這些可以寫(xiě)進(jìn)“未來(lái)展望”但不要真花時(shí)間去開(kāi)發(fā)。角色劃分也很清晰我用下表把它結(jié)構(gòu)化角色能做什么對(duì)應(yīng)主體游客瀏覽景點(diǎn)、線(xiàn)路、公告搜索景點(diǎn)前臺(tái)公開(kāi)頁(yè)面注冊(cè)用戶(hù)游客功能 登錄、收藏、評(píng)論、個(gè)人中心前臺(tái)登錄區(qū)管理員用戶(hù)管理、景點(diǎn)管理、線(xiàn)路管理、評(píng)論管理、公告管理后臺(tái)管理端1.3 程序與論文的配合節(jié)奏我后來(lái)帶項(xiàng)目時(shí)一直強(qiáng)調(diào)一件事不要等程序全部寫(xiě)完再開(kāi)始寫(xiě)論文也不要先把論文編出來(lái)再補(bǔ)程序。正確的節(jié)奏是用論文大綱反推程序模塊用程序截圖填充論文。具體操作上我建議先花兩天列出論文的章節(jié)框架摘要寫(xiě)什么、需求分析分哪幾節(jié)、數(shù)據(jù)庫(kù)表畫(huà)哪些、系統(tǒng)實(shí)現(xiàn)要哪些截圖、測(cè)試寫(xiě)哪些用例。然后按照這個(gè)框架去開(kāi)發(fā)程序每完成一個(gè)模塊馬上截圖并寫(xiě)好功能說(shuō)明。比如你做完了景點(diǎn)管理就立刻把列表頁(yè)截圖、新增頁(yè)截圖、修改頁(yè)截圖存到一個(gè)“論文素材”文件夾里順手寫(xiě)下這段功能是怎么實(shí)現(xiàn)的。這樣到論文階段你不需要回憶“當(dāng)時(shí)那個(gè)功能是怎么做的”素材都在手邊寫(xiě)作速度會(huì)快很多而且截圖和程序永遠(yuǎn)對(duì)得上。很多同學(xué)最后要花大量時(shí)間返工就是因?yàn)槌绦蚪缑娓陌婧笳撐睦锏呐f截圖和新代碼對(duì)不上答辯時(shí)被老師一眼看出來(lái)。2. 核心細(xì)節(jié)解析與實(shí)操要點(diǎn)2.1 數(shù)據(jù)表設(shè)計(jì)少踩“字段拍腦袋”的坑旅游資源網(wǎng)站的數(shù)據(jù)表不算復(fù)雜但設(shè)計(jì)得規(guī)不規(guī)范答辯老師一眼就能看出來(lái)。我通常建議最少建六張表用戶(hù)表id、用戶(hù)名、密碼、昵稱(chēng)、手機(jī)號(hào)、頭像、角色、注冊(cè)時(shí)間。景點(diǎn)表id、景點(diǎn)名稱(chēng)、所屬地區(qū)、封面圖片、簡(jiǎn)介、詳細(xì)內(nèi)容、門(mén)票價(jià)格、開(kāi)放時(shí)間、創(chuàng)建時(shí)間、狀態(tài)。線(xiàn)路表id、線(xiàn)路名稱(chēng)、出發(fā)地、目的地、天數(shù)、價(jià)格、線(xiàn)路圖片、詳情、創(chuàng)建時(shí)間。評(píng)論表id、用戶(hù)id、景點(diǎn)id、評(píng)論內(nèi)容、評(píng)論時(shí)間。收藏表id、用戶(hù)id、景點(diǎn)id、創(chuàng)建時(shí)間。公告表id、標(biāo)題、內(nèi)容、發(fā)布時(shí)間。這套表里有一個(gè)比較常見(jiàn)的坑圖片字段。景點(diǎn)封面圖很可能不止一張但畢設(shè)項(xiàng)目沒(méi)必要做獨(dú)立圖片表。最省事也最穩(wěn)妥的做法是直接在景點(diǎn)表里用一個(gè)字符串字段比如cover_image存圖片的相對(duì)路徑或完整URL。前端拿到這個(gè)字符串直接渲染后面想要多圖用逗號(hào)分隔字符也足夠應(yīng)付。另一個(gè)容易出問(wèn)題的地方是價(jià)格字段。做旅游類(lèi)項(xiàng)目時(shí)門(mén)票價(jià)格、線(xiàn)路價(jià)格一定用decimal類(lèi)型不能圖省事用float或double。很多同學(xué)在真實(shí)項(xiàng)目中吃過(guò)浮點(diǎn)數(shù)計(jì)算的虧這里用decimal(10, 2)就能避免價(jià)格顯示成99.999999這種奇怪情況。評(píng)論表和收藏表都要記得加索引。尤其是收藏表最好對(duì)user_id和scenic_id建立唯一索引這樣同一個(gè)人重復(fù)收藏同一個(gè)景點(diǎn)時(shí)數(shù)據(jù)庫(kù)會(huì)直接攔截應(yīng)用層不用寫(xiě)一堆判斷邏輯。我當(dāng)時(shí)做的時(shí)候后端收藏接口先查一遍是否存在再配合數(shù)據(jù)庫(kù)唯一索引雙保險(xiǎn)既直觀又防臟數(shù)據(jù)。外鍵策略也值得提前定好。刪除景點(diǎn)時(shí)如果該景點(diǎn)下已經(jīng)有評(píng)論和收藏直接物理刪除會(huì)導(dǎo)致孤兒數(shù)據(jù)。一種做法是刪景點(diǎn)前先刪相關(guān)的評(píng)論和收藏另一種是給景點(diǎn)表加一個(gè)status字段做邏輯刪除。畢設(shè)層面我推薦做邏輯刪除答辯時(shí)還能解釋“保留歷史數(shù)據(jù)”的業(yè)務(wù)含義。2.2 后端分層別把Controller寫(xiě)成萬(wàn)能類(lèi)接手過(guò)幾個(gè)學(xué)生的半成品項(xiàng)目發(fā)現(xiàn)最典型的問(wèn)題就是Controller里塞滿(mǎn)了業(yè)務(wù)代碼查數(shù)據(jù)庫(kù)、拼數(shù)據(jù)、寫(xiě)返回全塞在一個(gè)方法里。比如這樣的代碼Controller public class ScenicController { Autowired private JdbcTemplate jdbcTemplate; RequestMapping(/list) ResponseBody public ListMapString, Object list(String keyword) { // 直接在這里寫(xiě)SQL語(yǔ)句拼條件 String sql select * from t_scenic where name like %keyword%; return jdbcTemplate.queryForList(sql); } }這種寫(xiě)法功能倒是能做出來(lái)但答辯時(shí)只要老師追問(wèn)一句“你的項(xiàng)目怎么分層”就會(huì)露出破綻。規(guī)范的SSM項(xiàng)目至少要有Controller、Service、Mapper三層Controller層接收參數(shù)、校驗(yàn)參數(shù)、調(diào)用Service、返回結(jié)果。Service層處理業(yè)務(wù)邏輯比如判斷評(píng)論人是否登錄、收藏是否已存在。Mapper層只負(fù)責(zé)和數(shù)據(jù)庫(kù)交互。為了讓前端處理返回值更方便還需要一個(gè)統(tǒng)一的返回類(lèi)型。比如定義Result類(lèi)包含code、msg、data三個(gè)字段。成功就返回new Result(200, 操作成功, data)失敗就返回new Result(500, 操作失敗, null)。前端拿到這個(gè)結(jié)構(gòu)體在axios的響應(yīng)攔截器里統(tǒng)一判斷code彈出提示信息代碼會(huì)干凈很多。還有一個(gè)小細(xì)節(jié)查詢(xún)景點(diǎn)列表時(shí)全文搜索和分頁(yè)要一起做。最簡(jiǎn)單的實(shí)現(xiàn)是用PageHelper分頁(yè)插件在Service層查詢(xún)之前調(diào)用PageHelper.startPage(pageNum, pageSize)緊接著執(zhí)行的Mapper查詢(xún)就會(huì)被自動(dòng)拼接limit。這個(gè)方法用起來(lái)很爽但一定要注意startPage和查詢(xún)之間不能夾其他數(shù)據(jù)庫(kù)操作否則分頁(yè)會(huì)失效。這個(gè)坑我在第4節(jié)還會(huì)專(zhuān)門(mén)講。2.3 Vue前端的狀態(tài)與路由設(shè)計(jì)前端部分是整個(gè)項(xiàng)目最容易出彩、也最容易翻車(chē)的地方。如果你是從零開(kāi)始又暫時(shí)沒(méi)有明確要求Vue版本我建議直接用Vue3 Element Plus因?yàn)檫@是現(xiàn)在主流的組合資料多遇到問(wèn)題也好搜。當(dāng)然如果學(xué)校模板指定的是Vue2 Element UI那也沒(méi)必要硬改功能上差異不大。頁(yè)面結(jié)構(gòu)上我習(xí)慣把前臺(tái)和后臺(tái)分成兩套路由區(qū)域前臺(tái) / 首頁(yè) /scenic/list 景點(diǎn)列表 /scenic/detail/:id 景點(diǎn)詳情 /route/list 旅游線(xiàn)路 /notice/list 公告列表 /login 登錄 /register 注冊(cè) /user/center 個(gè)人中心 后臺(tái) /admin/dashboard 數(shù)據(jù)概況 /admin/scenic 景點(diǎn)管理 /admin/route 線(xiàn)路管理 /admin/user 用戶(hù)管理 /admin/comment 評(píng)論管理 /admin/notice 公告管理這背后要做三件關(guān)鍵的事第一是axios封裝。新建一個(gè)request.js配置baseURL指向后端地址請(qǐng)求攔截器從localStorage里取token并放到請(qǐng)求頭響應(yīng)攔截器統(tǒng)一處理業(yè)務(wù)碼。這樣每個(gè)頁(yè)面調(diào)接口都只需要傳URL和參數(shù)不用重復(fù)處理錯(cuò)誤提示。第二是路由守衛(wèi)。在router/index.js里給后臺(tái)路由加上meta: { requiresAuth: true }然后在全局前置守衛(wèi)里判斷如果用戶(hù)信息里沒(méi)有管理員標(biāo)記就跳回登錄頁(yè)。游客可以訪(fǎng)問(wèn)的頁(yè)面則不需要守衛(wèi)。第三是狀態(tài)管理。Vue3項(xiàng)目用PiniaVue2項(xiàng)目用Vuex把登錄用戶(hù)的昵稱(chēng)、角色、頭像存到store里同時(shí)同步到localStorage刷新頁(yè)面后從localStorage恢復(fù)。很多同學(xué)登錄后一刷新就回到未登錄狀態(tài)就是因?yàn)橹话褦?shù)據(jù)存在內(nèi)存里沒(méi)有做本地持久化。前臺(tái)頁(yè)面我建議關(guān)注一個(gè)體驗(yàn)點(diǎn)景點(diǎn)列表的卡片布局。每個(gè)景點(diǎn)卡展示封面圖、名稱(chēng)、地區(qū)、價(jià)格和一個(gè)“去看看”按鈕圖片高度保持一致價(jià)格用醒目的顏色標(biāo)出來(lái)整體觀感會(huì)比純表格列表好得多。這種頁(yè)面細(xì)節(jié)花不了太多時(shí)間但對(duì)答辯印象分提升非常明顯。3. 實(shí)操過(guò)程與核心環(huán)節(jié)實(shí)現(xiàn)3.1 環(huán)境準(zhǔn)備與項(xiàng)目骨架搭建先把開(kāi)發(fā)環(huán)境說(shuō)清楚推薦組合是JDK 1.8或11MySQL 5.7或8.0Maven 3.6Node.js 16開(kāi)發(fā)工具IDEA VS Code工作目錄里建議創(chuàng)建前后端兩個(gè)文件夾比如tourism-backend和tourism-frontend長(zhǎng)期維護(hù)起來(lái)一眼就懂。后端用Maven管理依賴(lài)核心依賴(lài)需要這些dependencies !-- Spring核心 -- dependency groupIdorg.springframework/groupId artifactIdspring-context/artifactId version5.x.x/version /dependency !-- SpringMVC -- dependency groupIdorg.springframework/groupId artifactIdspring-webmvc/artifactId version5.x.x/version /dependency !-- MyBatis -- dependency groupIdorg.mybatis/groupId artifactIdmybatis/artifactId version3.5.x/version /dependency dependency groupIdorg.mybatis/groupId artifactIdmybatis-spring/artifactId version2.x.x/version /dependency !-- MySQL驅(qū)動(dòng) -- dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version8.0.x/version /dependency !-- 數(shù)據(jù)庫(kù)連接池 -- dependency groupIdcom.alibaba/groupId artifactIddruid/artifactId version1.2.x/version /dependency !-- JSON處理 -- dependency groupIdcom.fasterxml.jackson.core/groupId artifactIdjackson-databind/artifactId version2.13.x/version /dependency !-- 分頁(yè)插件 -- dependency groupIdcom.github.pagehelper/groupId artifactIdpagehelper/artifactId version5.3.x/version /dependency /dependencies這里的版本號(hào)我個(gè)人建議用穩(wěn)定版本不要一上來(lái)就追最新Spring 5.x和MyBatis 3.5.x這種組合已經(jīng)很多項(xiàng)目驗(yàn)證過(guò)了能避免因?yàn)榘姹炯嫒輪?wèn)題浪費(fèi)時(shí)間。后端配置文件至少有四份jdbc.properties存放數(shù)據(jù)庫(kù)連接信息。spring.xml配置包掃描、數(shù)據(jù)源、SqlSessionFactory、事務(wù)管理器。spring-mvc.xml配置注解驅(qū)動(dòng)、靜態(tài)資源放行、視圖解析器如果前后端分離不需要JSP配置。web.xml配置Spring監(jiān)聽(tīng)器和SpringMVC的DispatcherServlet。前端用Vue CLI創(chuàng)建項(xiàng)目vue create tourism-frontend選擇Vue3預(yù)設(shè)安裝vue-router、pinia或axios。然后執(zhí)行npm install element-plus element-plus/icons-vueElement Plus在main.js里做完整引入雖然首屏包體積會(huì)大一些但畢設(shè)項(xiàng)目無(wú)所謂開(kāi)發(fā)效率最重要import { createApp } from vue import ElementPlus from element-plus import element-plus/dist/index.css import App from ./App.vue import router from ./router import { createPinia } from pinia const app createApp(App) app.use(ElementPlus) app.use(router) app.use(createPinia()) app.mount(#app)3.2 用戶(hù)登錄、角色權(quán)限與攔截器登錄接口是畢設(shè)項(xiàng)目的“交通樞紐”幾乎所有頁(yè)面交互都跟用戶(hù)身份掛鉤。我建議登錄做成這樣用戶(hù)提交用戶(hù)名和密碼Controller接收后調(diào)用ServiceService根據(jù)用戶(hù)名查出用戶(hù)記錄比對(duì)密碼。密碼在數(shù)據(jù)庫(kù)里不要存明文注冊(cè)時(shí)用MD5或BCrypt加密一次登錄時(shí)把用戶(hù)輸入的密碼做同樣的加密再比對(duì)。如果一致生成一個(gè)代表登錄狀態(tài)的token返回給前端。token的實(shí)現(xiàn)有兩種檔次。最簡(jiǎn)單的是Session方案登錄成功把用戶(hù)對(duì)象放到session里后端攔截器判斷session里有沒(méi)有用戶(hù)。這種方案代碼少答辯也能講清楚但前后端分離部署時(shí)跨域和Session失效問(wèn)題比較煩人。我推薦用JWT風(fēng)格的token不一定要引入完整jwt庫(kù)模擬一個(gè)也可以。登錄成功后后端把用戶(hù)id和角色拼成一個(gè)帶簽名的字符串返回前端存到localStorage每次請(qǐng)求放請(qǐng)求頭。后端做一個(gè)攔截器解析請(qǐng)求頭如果解析失敗就返回401。后端攔截器的核心邏輯public class AuthInterceptor implements HandlerInterceptor { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 如果是跨域預(yù)檢請(qǐng)求直接放行 if (OPTIONS.equalsIgnoreCase(request.getMethod())) { return true; } String token request.getHeader(Authorization); if (token null || .equals(token)) { response.setStatus(401); return false; } // 解析token判斷是否有效、是否過(guò)期 // 解析出的userId放入request屬性方便Controller使用 return true; } }這個(gè)攔截器要注冊(cè)到SpringMVC中同時(shí)配置放行路徑比如/api/user/login、/api/user/register、/api/scenic/**這些公開(kāi)接口不需要token而/api/user/center/**、/api/favorite/**則需要登錄。管理員接口比如/api/admin/**還要額外校驗(yàn)用戶(hù)角色是否為1。前端路由守衛(wèi)配合起來(lái)也很簡(jiǎn)單router.beforeEach((to, from, next) { const token localStorage.getItem(token) if (to.meta.requiresAuth !token) { next(/login) } else { next() } })3.3 景點(diǎn)檢索、詳情與評(píng)論收藏實(shí)現(xiàn)景點(diǎn)列表頁(yè)是訪(fǎng)問(wèn)量最高的頁(yè)面它的核心是“條件查詢(xún)分頁(yè)”。哪些條件適合用來(lái)篩選最常用的是景點(diǎn)名稱(chēng)關(guān)鍵字、所屬地區(qū)、價(jià)格范圍。對(duì)應(yīng)的MyBatis XML我一般這么寫(xiě)select idselectScenicPage resultMapScenicResultMap SELECT s.id, s.name, s.region, s.cover_image, s.price, s.open_time FROM t_scenic s where if testname ! null and name ! AND s.name LIKE CONCAT(%, #{name}, %) /if if testregion ! null and region ! AND s.region #{region} /if if testminPrice ! null AND s.price gt; #{minPrice} /if if testmaxPrice ! null AND s.price lt; #{maxPrice} /if /where ORDER BY s.create_time DESC /selectService層再配合PageHelperpublic PageInfoScenic getScenicPage(int pageNum, int pageSize, ScenicQuery query) { PageHelper.startPage(pageNum, pageSize); ListScenic list scenicMapper.selectScenicPage(query); return new PageInfo(list); }這樣前端每次只傳pageNum、pageSize和幾個(gè)篩選項(xiàng)就能拿到分頁(yè)數(shù)據(jù)。景點(diǎn)詳情頁(yè)除了顯示景點(diǎn)信息還要顯示評(píng)論列表。評(píng)論接口按景點(diǎn)id分頁(yè)查詢(xún)每條評(píng)論要帶上發(fā)表人的昵稱(chēng)和頭像所以SQL要關(guān)聯(lián)用戶(hù)表。這里用resultMap映射會(huì)比resultType更直觀select idselectCommentsByScenicId resultMapCommentResultMap SELECT c.id, c.content, c.create_time, u.nickname, u.avatar FROM t_comment c LEFT JOIN t_user u ON c.user_id u.id WHERE c.scenic_id #{scenicId} ORDER BY c.create_time DESC /select收藏模塊是“用戶(hù)與景點(diǎn)”關(guān)系的核心實(shí)現(xiàn)。接口設(shè)計(jì)就兩個(gè)一個(gè)添加收藏一個(gè)取消收藏。添加時(shí)先查詢(xún)是否已收藏如果已收藏就返回提示如果沒(méi)有就插入一條記錄。取消收藏直接按userId和scenicId刪除記錄。個(gè)人中心里查詢(xún)當(dāng)前用戶(hù)的收藏列表時(shí)關(guān)聯(lián)景點(diǎn)表把景點(diǎn)的基本信息和封面圖帶出來(lái)方便做一個(gè)“我收藏的景點(diǎn)”卡片列表。后臺(tái)管理模塊基本都是增刪改查這里不展開(kāi)每個(gè)接口但有一個(gè)思路值得分享后臺(tái)列表頁(yè)沿用前臺(tái)的分頁(yè)組件每個(gè)管理頁(yè)用Element Plus的el-table el-pagination el-dialog組合。彈窗里放表單提交時(shí)調(diào)用新增或更新接口成功后刷新表格。這套模式寫(xiě)熟手之后一張后臺(tái)頁(yè)面大概一晚上就能做完六張管理頁(yè)面也花不了太久。3.4 論文撰寫(xiě)的章節(jié)組織與查重應(yīng)對(duì)程序做完后論文才是重頭戲。SSMVue旅游資源網(wǎng)站的論文目錄基本是固定的套路我建議按這六章走第一章緒論。寫(xiě)選題背景和研究意義重點(diǎn)說(shuō)明“為什么需要旅游資源網(wǎng)站為什么要用JavaVue技術(shù)?!弊詈蠓乓粡垏?guó)內(nèi)外研究現(xiàn)狀的綜述。第二章需求分析。先寫(xiě)業(yè)務(wù)流程再寫(xiě)功能需求用用例圖展示游客、用戶(hù)、管理員各自能做什么。非功能性需求要提性能、易用性、安全性。這一章對(duì)應(yīng)程序里的“功能邊界”寫(xiě)得越具體后面的系統(tǒng)設(shè)計(jì)越好寫(xiě)。第三章系統(tǒng)設(shè)計(jì)。包括系統(tǒng)總體架構(gòu)圖、功能模塊圖、數(shù)據(jù)庫(kù)E-R圖和表結(jié)構(gòu)設(shè)計(jì)。實(shí)際上E-R圖和表結(jié)構(gòu)直接抄自己建的表就行逆向梳理一遍改造成可視化圖形。第四章系統(tǒng)實(shí)現(xiàn)。這是論文最占篇幅的一章按功能模塊逐個(gè)寫(xiě)每個(gè)模塊放核心代碼片段和運(yùn)行截圖。注意代碼不用貼全部只貼關(guān)鍵方法并配一段文字說(shuō)明“這是做什么的為什么這么做”。第五章系統(tǒng)測(cè)試。寫(xiě)測(cè)試環(huán)境、測(cè)試方法然后列測(cè)試用例表測(cè)試編號(hào)、測(cè)試項(xiàng)、輸入數(shù)據(jù)、預(yù)期結(jié)果、實(shí)際結(jié)果。別全寫(xiě)“通過(guò)”針對(duì)邊界條件寫(xiě)一兩個(gè)失敗用例反而顯得真實(shí)。第六章總結(jié)與展望。總結(jié)做了一個(gè)什么系統(tǒng)、用了什么技術(shù)、有什么不足后續(xù)可以增加什么功能。關(guān)于查重我必須提醒一句參考文獻(xiàn)里的概念介紹千萬(wàn)不要大段復(fù)制教科書(shū)原文。寫(xiě)技術(shù)介紹時(shí)用自己的話(huà)把“Spring是什么、MyBatis是什么”重新表述一遍。尤其要小心網(wǎng)上的博客模板很多畢業(yè)論文模板章節(jié)相似度極高直接照抄會(huì)被查重系統(tǒng)標(biāo)紅。正確做法是定義概念后立刻結(jié)合自己項(xiàng)目里的具體場(chǎng)景說(shuō)一句比如“在本系統(tǒng)中Spring負(fù)責(zé)管理Service和Mapper對(duì)象的創(chuàng)建和依賴(lài)注入”這樣既不容易重復(fù)又能體現(xiàn)你對(duì)技術(shù)的掌握。4. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄4.1 跨域報(bào)錯(cuò)與預(yù)檢請(qǐng)求處理前后端分離最常遇到的就是跨域問(wèn)題?,F(xiàn)象很明確前端控制臺(tái)報(bào)No Access-Control-Allow-Origin header is present on the requested resource。原因簡(jiǎn)單說(shuō)就是前端跑在http://localhost:8080后端跑在http://localhost:8088瀏覽器認(rèn)為這不是同一個(gè)源。解決辦法一般是在后端加一個(gè)跨域過(guò)濾器。Component public class CorsFilter implements Filter { Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response (HttpServletResponse) res; response.setHeader(Access-Control-Allow-Origin, http://localhost:8080); response.setHeader(Access-Control-Allow-Credentials, true); response.setHeader(Access-Control-Allow-Methods, GET, POST, PUT, DELETE, OPTIONS); response.setHeader(Access-Control-Allow-Headers, Content-Type, Authorization); chain.doFilter(req, res); } }一個(gè)隱藏很深的坑是預(yù)檢請(qǐng)求。前端請(qǐng)求帶了Authorization這樣的自定義頭或者請(qǐng)求方法是PUT、DELETE時(shí)瀏覽器會(huì)先發(fā)一個(gè)OPTIONS請(qǐng)求確認(rèn)服務(wù)器是否允許。如果你的后端攔截器把所有OPTIONS請(qǐng)求都攔下來(lái)要求登錄跨域就永遠(yuǎn)過(guò)不了。所以在攔截器的preHandle里一定要放行OPTIONS請(qǐng)求我前面的代碼示例里已經(jīng)寫(xiě)到了這一步。如果你不想在后端處理跨域也可以在前端利用開(kāi)發(fā)服務(wù)器做代理。在Vue項(xiàng)目的vue.config.js里配置module.exports { devServer: { proxy: { /api: { target: http://localhost:8088, changeOrigin: true } } } }這樣所有/api開(kāi)頭的請(qǐng)求都轉(zhuǎn)發(fā)到后端瀏覽器看到的是同源地址。但這個(gè)方法只對(duì)開(kāi)發(fā)環(huán)境有效正式打包部署后還是要用Nginx或其他方式統(tǒng)一入口。4.2 登錄狀態(tài)反復(fù)失效的兩種解決辦法這是我見(jiàn)過(guò)學(xué)生踩得最多的坑之一表現(xiàn)形式是登錄成功后頁(yè)面跳轉(zhuǎn)正常但刷新一下或者點(diǎn)幾個(gè)頁(yè)面后就提示“未登錄”。如果你用的是Session方案多半問(wèn)題出在跨域配置沒(méi)有帶上Cookie。瀏覽器默認(rèn)在同源請(qǐng)求時(shí)才會(huì)攜帶Cookie跨域請(qǐng)求需要后端在響應(yīng)頭設(shè)置Access-Control-Allow-Credentials: true同時(shí)前端axios要設(shè)置withCredentials: true。但個(gè)人建議直接切換成token方案能避開(kāi)上面這一整攤事。登錄接口返回一個(gè)token字符串前端存localStorage每次請(qǐng)求在攔截器里加上service.interceptors.request.use(config { const token localStorage.getItem(token) if (token) { config.headers[Authorization] token } return config })后端攔截器從請(qǐng)求頭拿到token驗(yàn)證通過(guò)就把用戶(hù)信息放到request屬性里后面的Controller直接取。這套方案不受Cookie跨域限制部署到Nginx時(shí)也好處理。token還有一個(gè)好處是答辯時(shí)容易講。你可以說(shuō)“因?yàn)橄到y(tǒng)采用無(wú)狀態(tài)的會(huì)話(huà)保持方案服務(wù)器不需要保存用戶(hù)的登錄狀態(tài)減輕了內(nèi)存壓力”這句話(huà)翻譯成大白話(huà)就是“每個(gè)請(qǐng)求都帶著自己的身份證明來(lái)過(guò)檢”。4.3 MyBatis常見(jiàn)報(bào)錯(cuò)與駝峰映射寫(xiě)MyBatis遇到報(bào)錯(cuò)是常態(tài)我把高頻問(wèn)題整理成一張速查表報(bào)錯(cuò)信息本質(zhì)原因解決辦法Invalid bound statement (not found)Mapper接口和XML文件沒(méi)有對(duì)應(yīng)上檢查namespace是否等于接口全限定名以及mybatis配置里mapper-locations是否指向xml目錄BindingException: Parameter xxx not found接口方法參數(shù)沒(méi)加Param多參數(shù)時(shí)必須寫(xiě)Param(name)查詢(xún)結(jié)果全是null列名和實(shí)體屬性名不一致開(kāi)啟mapUnderscoreToCamelCase或?qū)憆esultMapCause: java.sql.SQLSyntaxErrorExceptionSQL語(yǔ)句語(yǔ)法錯(cuò)誤檢查表名、列名特別是MySQL關(guān)鍵字例如表名不要用order、descPageHelper分頁(yè)不生效startPage和查詢(xún)之間隔了其他數(shù)據(jù)庫(kù)操作讓startPage緊貼Mapper查詢(xún)執(zhí)行駝峰命名這個(gè)問(wèn)題在SSM項(xiàng)目里特別容易反復(fù)出現(xiàn)。Java實(shí)體類(lèi)習(xí)慣用createTime數(shù)據(jù)庫(kù)列名習(xí)慣用create_time如果不在全局配置開(kāi)啟駝峰映射查出來(lái)的createTime就是null。配置方式是在mybatis-config.xml里settings setting namemapUnderscoreToCamelCase valuetrue/ /settings注意只開(kāi)啟駝峰映射還不夠數(shù)據(jù)庫(kù)列名必須真的是create_time這種下劃線(xiàn)格式如果開(kāi)發(fā)時(shí)有人圖省事把列名直接命名為create_time但實(shí)體類(lèi)是create_time那映射出來(lái)又會(huì)錯(cuò)所以命名規(guī)范要從建表開(kāi)始就統(tǒng)一。我個(gè)人的習(xí)慣是數(shù)據(jù)庫(kù)全部用lower_case_with_underscoreJava實(shí)體全部用駝峰中間靠MyBatis的映射自動(dòng)轉(zhuǎn)換。4.4 答辯前最后三天的檢查清單最后說(shuō)點(diǎn)跟答辯直接相關(guān)的實(shí)操經(jīng)驗(yàn)。答辯內(nèi)容、截圖、提問(wèn)環(huán)節(jié)都有對(duì)應(yīng)的準(zhǔn)備技巧建議最后三天按下面的清單過(guò)一遍檢查項(xiàng)具體內(nèi)容主流程閉環(huán)從注冊(cè)、登錄、瀏覽景點(diǎn)、搜索、收藏、發(fā)表評(píng)論到后臺(tái)登錄、管理景點(diǎn)全程走一遍任何一步報(bào)錯(cuò)都要當(dāng)場(chǎng)解決數(shù)據(jù)自洽刪除景點(diǎn)時(shí)它下面的評(píng)論和收藏怎么處理外鍵約束會(huì)不會(huì)導(dǎo)致刪除報(bào)錯(cuò)后臺(tái)刪除數(shù)據(jù)后前臺(tái)會(huì)不會(huì)出現(xiàn)NullPointerException數(shù)據(jù)庫(kù)導(dǎo)出用mysqldump導(dǎo)出一份完整的SQL腳本或者至少在開(kāi)發(fā)工具里準(zhǔn)備好一鍵重建數(shù)據(jù)庫(kù)的命令代碼結(jié)構(gòu)可講隨便挑一個(gè)Controller你能不看IDE說(shuō)出它的Service和Mapper分別做了什么嗎論文與截圖一致論文里出現(xiàn)的每一個(gè)頁(yè)面截圖程序里都必須能找到對(duì)應(yīng)頁(yè)面且數(shù)據(jù)最好相同演示環(huán)境穩(wěn)定如果現(xiàn)場(chǎng)沒(méi)有網(wǎng)絡(luò)數(shù)據(jù)庫(kù)和依賴(lài)要提前裝好如果用IDEA啟動(dòng)提前把依賴(lài)下載完整避免現(xiàn)場(chǎng)卡在下載還有一個(gè)小技巧答辯演示時(shí)建議用授課千萬(wàn)注意不要念代碼。講登錄功能時(shí)就說(shuō)“用戶(hù)輸入用戶(hù)名密碼后端校驗(yàn)成功后返回token前端保存到本地之后請(qǐng)求自動(dòng)攜帶實(shí)現(xiàn)會(huì)話(huà)保持”然后用演示操作補(bǔ)充細(xì)節(jié)老師看到的是“論述清晰系統(tǒng)可用”這兩點(diǎn)都滿(mǎn)足分?jǐn)?shù)一定不會(huì)差。這個(gè)項(xiàng)目做完之后我個(gè)人實(shí)際帶項(xiàng)目的體會(huì)是畢設(shè)最重要的不是技術(shù)多炫而是“完整”兩個(gè)字。功能鏈路完整文檔和代碼對(duì)得上答辯時(shí)講得清楚這三點(diǎn)做到就已經(jīng)是一份非常合格的畢業(yè)設(shè)計(jì)。如果你時(shí)間充裕再往里面加一點(diǎn)小創(chuàng)新比如用Redis緩存熱門(mén)景點(diǎn)數(shù)據(jù)或者把后臺(tái)改造成帶統(tǒng)計(jì)圖表的Dashboard就是錦上添花。最后再分享一個(gè)小技巧每天開(kāi)發(fā)結(jié)束后花十分鐘在本地Gitee或GitHub倉(cāng)庫(kù)提交一次代碼。別嫌麻煩那些最后做不下去、程序跑不起來(lái)、論文寫(xiě)不出來(lái)的同學(xué)大多數(shù)不是能力問(wèn)題而是改著改著把自己改亂了沒(méi)有可以回退的干凈版本。用好了版本控制你的畢設(shè)進(jìn)度就會(huì)穩(wěn)很多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色乱二区| 久久超碰97| 97精品一区| 6080YYY午夜理论片在线观看| 色色综合网站| 色香综合天天影视综合 | 中文字幕中文字幕一区二区| 野狼激情网| 久操| 亚洲AV无线| 欧美91精彩| 亚洲无码视频免费在线观看网址!| 操逼视频免费日韩无码| 玖日综合网| 少妇无码av专区线| 妇人噜噜| 精品超碰中文在线| 国产久久久| 色婷婷成人| 啊啊啊啊免费视频| 台欧久久精品视频| 囯产精品久久久久久久久久梁医生 | 足交视频老司机| 豆花视频操逼网址| 国产乱弄免费在线视频。| 国产又黄又粗又猛大片| 狠狠狠一区二区三区| 日日不卡av| 久草成人福利导航| 中国熟女老妇仑乱一区二区三区| 91丝袜在线观看视频在线观看| 久草免费在线视频| 丝袜喷水在线| 欧美爱三级日韩久久| 上床不卡网站| 国产一区二区精品久久99| 91黑丝在线播放| 欧美日韩中文字幕人妻| 亚洲色吧网| 国产白丝av| 69视频福利导航| 可以免费看黄片的视频| 亚洲熟久久| 国产成人无码高清| 婷婷五月天激情四射| 日韩人妻少妇中文字幕| 久久这里是精品| 美国三级日本三级久久99| 色情五月丁香| 久久精品一区二区一8| 中文字幕片| 懂色天天爱天天日天天射天天澡| 亚洲综合 欧美| 日韩素人无码一区二区三区三州| 免费看黄视频亚洲网站| 玖玖大干人妻| 操死我干死我| 国产精品午夜高潮呻吟久久av| 极品色综合| 人妻在线臀日韩| www.av在线视频| 东京热男人天堂| 欧美一区二区三区大综合| 国产一区在线观看无码AV| 九t超碰| 97亚洲性爱| 综合影视国产无码| 人妻啪| 国桃视频产巨乳精品一区二区在线| 欧美日韩系列| 亚洲视频一二区| 国产激情av女片自拍| 色爱亚洲| 国产一区在线播放| 国产成人啪一区二区| 国产家庭乱伦性爱视频| 日韩91网| 超碰欧美97| 久久宗合亚洲| 色欲色香天天天综合网www-亚洲综合国| 成人三级片无码| 日韩免费三级黄片电影| 波多野42部激情无码喷潮| 夜夜嗨老熟女AV一区二区三区| 日本青青草在线| 美女自卫慰黄网站免费| 国产成人免费观看在线视频| 制度丝袜99| 黄页av| 91丨精品丨国产丨丝袜| 欧美中字二区| 欧美se亚洲| 男人天堂久久精品| 在线 制服丝袜中出 人妻| AV网站高清无码在线观看| 九九综合九九综合| 日韩无限资源| 综合色91| 久久这里只有精品9| 久草成人影片| 国产精品乱码久久久、久久| 青青草手机在线免费观看| 欧美日不卡| 99这里只有精品| 欧美成va视频网站| 中文字幕av乱伦| 日韩黄色一区二区三区| 韩国黄色片精品久久久| 日韩成人精品中文字幕| 丁香五月成人| 九九性视频| 欧美精品久久久久久久久88| 五月婷婷爱六月丁香色| 欧美顶级黄片AAAAA在线免费看| 精品国产91av一区二区三区| 久操网无码在线| 综合伊人激情| 国产精品永久免费10000| 偷拍亚洲熟女视频播放| 狠狠搞 亚洲91| 又黄又爽在线观看视频| 九一综合精品视品av| 激情综合网激情五月天| 在线观看一卡二卡| 91 丝袜在线观看| 啊啊啊啊,啊啊好多水 | 少妇天堂网络| 啊啊啊啊操死我了| 色网在线| 亚洲精品 欧美97色色| 久欲AV| 日韩干B| 午夜噜噜噜| 久9无限国产| 蜜桃狠狠色伊人亚洲综合网站| 加勒比海人人操超碰在线| 97超碰中文在线| 亚州性9| 国产一区二区三区高清视频| 国产精品无码久久久久2025| 日韩性爱电影一区| 久久一二三四五六七八九区区区 | 18禁免费视频| 欧美日韩第一页| 伊色综合天堂色97| 在线97在线| 亚洲AV不卡在线观看尤物| 呻吟 欧美 日本 中出| 色老大| 激情婷婷综合久久| 欧美顶级黄色大片免费| 久热色情精品| 2026国产精品视频| 久久久久亚洲av综合波多野制衣| 亚洲国产午夜真人一级片中文字幕精品黄网站| 大香网伊人久久综合| 人妻夜夜爽天天爽麻豆三区网站 | 天天摸夜夜操视频| 欧美宗合网| 岛国片在线视频网站| 婷婷丁香熟妇综合网| 91 国产丝袜在线放观看| 五月开心久久AV官网| 四虎精品亚洲| 国产免a费看黄片在线| 神马精品视频| 欧美日韩不卡传媒| 涩涩涩综合| 欧美日韩不卡传媒| 夜嗨影院| 夜色五月天| 色麻豆AV| 91看黄片| 九九色色| 丝袜加勒比| 琪琪精品免费一区二区三区| 国产欧美日韩女同性恋ww喷水精品| www.91欧美| 性91| 国产超碰| 99精品九九九九九九| 国产女同视频在线播放| 亚洲色图91欧美日韩| 国产中午字一暮区| 亚洲av国产av综合av卡| 超碰97资源大奶| 欧美精品庄| 韩国午夜理伦三级好看| 久久草视频污视频| 亚洲人妻中文在线视频| 日韩欧美亚洲国产日韩| 少妇淫妇久久久久久久| 久操视频资源站公开| 精彩国产视频播放1区2区| 一区二区不卡视| 国产激情在线| 亚州图片第一页| 涩涩这里只有精品视频| 国产精品经典一卡久久久| 最新制服中文第一页| 国产色精品午夜大片| 韩国嫰模上门援交视频| 精品一区二区人妖| 日韩丝袜高跟制服在线观看| 久草国产在线视频| 久热99999| 黄片色区软件| 97综合久第一页| 一区二区三区探花在线观看| 精品十八在线观看| 极品极品色影院| 九99久久| 国产视频一区二区免费| 大色网久久| 91精品黄在线观看| 久久久蜜桃臀无码视频| caorenqi shipin| 78m成人视线| 五月丁香六月激情| 97亚洲欧美| 亚洲有薄码区日本系列中文字幕| 国产99999| 人妻欧美| 小泽玛利亚一二三| 国产美女自拍AV| 国产久久日| 色婷婷视频| 蜜乳av一区二区三区四区不卡| 95自拍视频在线观看| 超碰在线97国产| 亚洲国产精品9999在线观看| 欧美综合传媒| 成人精品在线观看| 丝袜亚洲综合| 五月天久久婷婷亚洲 | 一区二区三区四区五区久久久久久| 欧美日韩性爱操大逼| 女人18精品一区二区三区| 人人色人人操在线| 永久免费观看的毛片的网站| 人人澡综合涩| 九九精品热| 亚洲国产成人精品女人久久久| 国精品一区二区三| 久久久久久精品免费看A级| 男人的天堂三级| 国产黄a三级三级三级av在线看| 精品人妻一区二区三区四区不卡在| 欧美三级不卡| 国产亚州高清国产拍精| 99精品国产户外露出| 精品无码久久久久| 美女尤物福利视频| 国产精品视频自拍在线| 91欧美www| 欧美三级免费伊人| 立川理惠无码一区二区| 试看日韩黄片| 国产白丝AV| 玖玖蜜臀资源网| 国产小视频91| 一级性爱视频免费在线| 精品一区99999| av优播| 97人人操人人摸人人爱| 精品国产91内射久久| 九九人妻| 日韩中文字幕宗合在线| 久极品在线观看| 日本熟妇人妻中出视频| 欧美成年人性爱视频免费观看| 校园春色宗合网| 好湿好紧好爽 视频| 亚洲熟女中文字幕在线| 中文字幕91页| 大香蕉黄色一级片免费看| 欧美高清16| 男人的天堂日韩| 中美日韩毛片| 午夜男人的天堂| 黄呦呦在线| 少妇一线天久久久久久| 艾草av| 国产福利一区二| 素人一区二区三区日韩| 人妻天天爽夜夜爽2| 啊啊啊97视频| 中文字幕精品人妻丝袜| 欧美日韩人人精品| 亚洲色图超碰在线| 天堂中文资源在线bt| 91亚洲色图| 91日产桃蜜| 亚洲日韩黑丝| 麻豆熟妇乱妇熟色A片在线看| 久久9精品视频| 国产激情久久久| 在线无码操| 国产绿奴视频在线观看| 亚洲自拍偷拍视频在线 | www超碰| 日韩欧美字幕亚洲一区二区| 91快色色色色色| 思思热久久成人| 亚洲无码国产精品久久| 亚洲春色一区二区三区| 乱伦熟女论坛| 亚洲精品白浆高清久久久久久 | 一区二区三区色综合| 亚洲自拍欧美国产首页网曝| 日本不卡二三区| 欧美亚男人的天堂| 你草精品在线视频| 亚洲精品1区| 嗯……啊…嗯嗯…啊…好舒服| 精品一区二区啪啪啪| 久久久蜜桃一区二区三区| 农村妇女一级二级三级视频| 99在线观看| 色婷婷亚洲婷婷| 盗摄 精品 另类 一区| 综合网,亚洲,欧美| 青草香蕉网| 天天色怡春院| 粉嫩av一区二区三区天美传媒| 成人国产二区三区在线,男女精品。| 欧美亚洲清纯| 日本色日夜干| 东京热男人的天堂精品| 亚洲最大网站av| 丁香五月天啪啪| 97精品国产97久久久久久免费| 久久9精品视频| 91色五月俺来也| 最新av在线| 劲爆欧美人妖三区91| 中文字幕二区| 女色综合| 超碰人妻天天干| 亚洲精品人妻吞精av| 激情丁香婷婷| 日韩激情视频| av影院十区| A级在线视频| 可以在线观看的黄色网址| 国产精品免费视频人成| 熟妇高潮一区二区免费视频| 天天日天天屌天天操| 久久青娱乐| 思思热在线视频免费| 福利视频一区二区微拍| 国产女人高潮视频| 少妇第一页| 精品欧美乱码久| 91大神精品长腿在线观看网站| 嗯啊抽插大香蕉网页| 五月丁香六月| 亚码人妻| 亚洲一区在线观看欧洲| 伊人99热| 天美传媒av在线| 欧美精品三区| 久久黄黄| 精品视频久久区| 97视频免费播放| 精品中文字幕第一页| 狠狠干综合| 日韩9999| 欧美不卡在线一区二区| 99热婷婷| 青青草在线视频美女| 中文字幕人妻资源在线| 色爽爽文学| 天天躁夜夜躁狠狠躁AV| 国产精品视频自拍在线| 天天添天天干电影| 欧美日综合| 操逼片中文| 区一二区日韩亚洲乱码av电影| 亚洲综合有码| 欧美成人黄网色网站| 一区 欧美 日韩 麻豆| 校园春色五月天| 伊人五月天| 97视频在线视频| 东京热视频网| 天天插夜夜爽| 色乱二区| 亚洲性综合| 国产三级在线现体验区| 97超碰天天| 久久国产成人精品国产成人亚洲| 精品视频久久久久九九九九9999| 天天综合~91| 亚洲少妇中文字幕网址| 美女91色黄18| 日本成人电影资源网| 91爱看| 日本色色视频网站| 乱人伦 国语对白:视频直接看| 欧美91色| 综合一区中亚洲国产成人综合精品| 日韩天天本| 国产欧美日韩一区二区三区| 国产精品在线网站| 26uuu性| 激情综合网一盗摄| 乱欲一区二区| 色欲人妻一区二区在线| 91精品久久久久五月天精品| 久草草一二三四区久久| 亚洲制服欧美另类内射| 中文字幕无码不卡啪啪| 开心五月婷婷激情| av中亚| 欧美日本久久精品一区| 人妻丰满熟妇一区二区三| 亚洲 欧美 中文 日韩超碰 | 福利大香蕉| 白嫩国模丰满一二三区| 久久久女人| 综合色图,成人综合网| 熟女人妻精品一区二区视频| 性欧美天天| 日小BB小视频| 久久精品无码熟妇一区二区三区视频导航| 日韩不卡av一二三| 亚洲精品97| 东北女人被操| 亚洲成?V人片在线观看福利| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 欧美黄片欧美黄片xxx| 日日日日做夜夜夜夜做无码97| 大屁股xxxxx| 亚洲熟女综合一区二区| 求求你操操我| av片在线观看免费播放| 放黄片放3级黄片没穿衣服| 神马久久网| 9久热| 尤物视频视频官网| 精品一区99999| 91精品电影18| 韩日性爱av| 久久亚洲一区女同性恋中文字幕| 九久9热| 一级特级aaaa毛片免费观看 | 99re这里只有精品中心播放| 综合在线导航一区| 91性感在线| 日韩 成人 有码| 五月天婷婷激情| 亚洲欧洲日本精品中文a∨| 天天综合站| 性色高清在线| 色婷婷狠狠| 国产毛片久久久久久久| 黄页av| 欧美色图人妻| 宗合情欲网| 被体育老师抱着c到高潮| 久久六六| 国产9l 大屁股| 亚洲性少妇| 骚货| 99综合免费视频| 黄色电影在线播放综合网站| 尤物网站91| www男人天堂| av久日| 天天爽夜夜欢视| 五月丁香啪| 黑人精品XXX一区一二区| 久久香蕉国产线看观看亚洲女人| 超碰在线综合97| 97公开久久| 2024人人操人人摸| A 天堂在线观看视频| 欧美午夜视频免费观看| JIZZJIZZ亚洲女人被躁| 日韩少妇无码| 午夜αv| 91性情| 久久久天堂| 成人情色综合网| 中文欧丝袜诱惑| 欧美91在线+|+欧美| 伊人久久国产免费观看视频| 日韩在线女优天天干| 婷婷五月天成人网| 色婷婷丁香五月| 91久操| 91色色色| 欧美色图天堂在线| 97天天摸天天碰| 久久乐| 蜜臀少妇一区二区| 天天欧美色| 怡红院视频在线| 亚洲性综合9| 亚洲精品丝袜-不卡成人免费……| 丁香五月成人| 日韩人妻少妇中文字幕| 99自拍B亚洲| 欧美久久草熟女| 97国伦国色| 欧美色图片91| 后入式在线免费观看60秒| 日韩精品三级片长长久久| 亚洲欧洲无码一区夜| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 天美AV片| 一个人在线看的黄色电影网站| 人妻碰碰碰碰碰碰| 啊啊啊啊啊好大好舒服想要| 日韩中文字幕宗合在线| 99re这里只有精品2| 国产精品久久久午夜夜伦鲁鲁| 黄色成年| 一区AV| 一本大道不卡一二三区| 女人午夜视频777| 91综合在线| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 强上我不卡卡| 很狠操| 欧美亚洲首页| 伊人一区二区在线播放| 伊人影院综合是一个与深夜成人在线| 狼人久草| 97久久免费| 97超碰伊人| 人妻少妇久久中文字幕一区二区 麻豆| 精品免费视频国产一区| 国产av强奸美女| 99九九久久| 六月丁香五月婷婷| 综合亚洲情色| 亚洲蜜臀精品视频久久| 欧差乱伦二三| 日韩AC| 久操B网| 少妇特黄一区二区三区| 精品99999| 日本一区二区成人在线| 91在线|亚| 亚洲素人网| 欧美18 在线观看| 精品人妻美妇91job| 四月丁香婷婷| 欧美综合色综合| 国产精品国产亚洲区艳妇糸列| 黄色av片三级三级三级免费看| 黑操B| 精品一区二区久久| av影片在线观看不卡| 把腿张开老子CAO烂你| 日日97| AV一区观看| 婷婷久久网| 任你干在线视频| 国产极品粉嫩馒头一线天av| 丁香五月性爱| 色臀aV| 小说区 图片区色 综合区| 六月激情婷婷| 天天爽入口| 日本熟女免费視颖| 97玖玖超碰| 日韩小电影| 操婷婷逼| 丝袜色综合| 国产精品区在线12p| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 人妻精品一区二区| 色99视频| 大香交| 国产福利小视频高清在线观看| 男人的天堂.com| 久久久亚洲熟妇熟女| 美女自卫慰黄网站免费| 欧美在线第五页| 91高清无码下载| 884t在线| 少妇一区二区三区精选| 国产午夜视频| 国产精品久久久久久久AV大片 | 精品国产乱码久久久| 在线观看综合精品亚洲| 久久久久9999精品九九九| 精品欧美老熟女一二区| oumeisetu综合| 色欧洲| 亚州色图第三区| 999久久久国产精品| 欧美男人一区| 欧美综合亚洲综合| 久久久久久久 九九九九九九九| 久久久日本电影| 国产欧美日韩在线观看麻豆传媒公司| 射久久| 另类综合另类| 伊人五月天婷婷| 嗯嗯啊啊好疼| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 亚洲国产成人精品999| 久久久久久久久久久人妻| 日日爱99| 超硑97精品| 激情小说亚洲| 亚洲影院小综合| 亚洲 暴爽 AV人人爽日日碰| 九九热免费在线国产视频伊人五月| 九九九九热| 久久黄黄| 三级特黄60分钟播放| 97精品中文字幕| 黄色在线网站| 国产97在线播放| 天天添天天干电影| 日韩字幕一区| 精品女同一区| 亚洲欧洲偷拍一区| 国产亚洲精品久久久久小| 91超碰在线播放| 久久久久9| 欧美一区二区三区不卡高清视频 | 成人a大片在线观看| 亚洲蜜臀精品视频久久| 97超碰碰碰| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 亚洲欧美激情在线视频| 校园春色 欧美| 情侣操 逼视频99| 午夜天堂啪啪| 啪啪啪精品| 亚洲自拍小说| 伊人久久88国产女| 国产日韩色综合| 亚洲天天自拍| 伊人久久大香蕉线AV五月天| www.色操逼| 国产精品ⅴ无码大片在线看.| 日韩精彩视频| 亚洲国产一区二区三区在线 | 97AV在线免费观看| 丝袜剧情| 午夜美女福利视频| 久9爱精品| 青久操| 99无码| 中国东北熟女老太婆内谢| 国产精品操| 久久久久久久久国产| 亚洲伊人久久精品狠狠在线| 亚洲精品人妻吞精av| 日语五十路和六十路亚洲国产精品 | 两女互慰AV高潮喷水在线观看| 日本黄色精品| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 亚洲精品视频在线| 天堂俺去俺来也www久久婷婷| 国产伦精品| avav青青草久久夜| 狠色婷婷久久一区二区三区_| 国产一区二区三区中文字幕| 久久艹逼视频| 以及麻豆国产入口在线观看免费| 大香久久| 少妇高潮九九九九九九九| 久久精品中文| 中文幕97| 成人综合色网| 久久99久久99久久99人受| 久久久无码av精| 国产一级137片内射麻豆| 超碰97COm中文| 欧美最婬乱婬爆婬牲视频| 久久久久网站-538在线视频-欧美永久乱码 | 丰满少妇精品一区二区| 欧美亚洲高清不卡| 91成人国产综合久久精品蜜月| 大香蕉碰| 国产乱伦搜索结果91P| 精品二区三四区五电影| 欧美国产有色电影| 国产美女91视频| 欧美制服网站美腿丝袜| 69少妇一区二区| 美女上床网站| 麻豆 欧美 日韩| 欧美九9 9 9| 97香蕉碰碰人妻国产欧美| 亚洲无码?第一页| 欧美亚洲尤物久久| 蜜桃视频成a人v在线| 性在久久久久久| 97精品熟女少妇一区| 美国一区二区三区视频| 日韩无码黄色片| 国产精品久久久久久 百度| 中文字幕91页| 日韩欧美亚洲一区二区三区影院| 日韩av在线免费网站| 日韩AV一起草| 五月天婷婷影院| 志村玲子视频一区二区| 性爱1区| AAAAAAAAA黄片| 国产亚洲精品美女久久久m| 国语精品内射在线观看| 国产成人欧美一区二区三区的国产| 98人妻精品一区二区色欲| 久久久久久亚洲Av无码| 欧美精品成人一区二区在线观看 | 99色热国产视频精品| 影音综合网| 97 视频在线| 九九九九一级| 欧美日韩妖精91com| 国产免费内射视频| 乱伦熟女论坛| 日韩av不卡在线看| 亚洲福利中文字幕在线| 亚洲.欧美.丝袜.中文.综合| 91人妻丝袜无码| 欧美在线 亚洲| 色九九九九九九| 国产97在线视频| 欧洲综合无码| 成人三级片无码| 操九九九九九九| 91久久国产综合精品| 91超碰丝袜制服| 97精品免费视频网站| 国产精品免费1区2区视频| 操逼操逼视频操逼| 动漫爆乳3D奶水一区在线观看| 久久xx| 干b在线性社区| 亚洲双插| 久久久久久久九九九九九九| 欧美视频在线视频免费va| 中日无幕一二三四区| 欧美在线视频观看一二三四区高清| 性高潮久久久| 一级一性爱免费视频| 亚洲天堂AV在线播放| 日韩一区二区精品视频| 97一本大道亚洲一区| 亚洲国产天堂| 国产精品久久久吖| 国产免费一区在线观看| 日韩人妻精品久久久久| 久久视频,这里只有精品 | 日韩免费大片一级播放| 精品久久久久,69国产成人精| 久久精品视频一区三区小泽玛利亚| 久久久亚洲熟妇资源| 交换娇妻呻吟声不停中文字幕| 激情综合五月| 日韩人人精品| 高清国产成人无码| 色哟哟国产精品免费网址| 伊人久日| 99精品视频在线观看免费| 97资源超碰| 精品97久久| 久久香蕉综合一本到3atv| 国产又大又粗又长视频在线| 少妇高潮九九九九| 成人片在线播放| 欧美日本天堂| 婷婷伊人五月| 天天综合网国产| 九九九九97| A 在线网址| 蜜奶av| 久久男人的天堂| 国产超碰在线| 大色网久久| 成人a级高清视频在线观看| 成人国产精品三级A片| 日欧毛片久久| 欧美激情另类一区二区| 色情亚洲日本成人| 日韩熟女无码| 嗯嗯啊啊操死我| 蜜桃狠狠色伊人亚洲综合网站| 91日本在线观看| 亚洲人精品久久久| 超碰人人超在线观看| 欧美成人国产精品| 凹凸视频在线观看伊人| 婷婷15月天青娱乐| 日韩Va亚洲va欧美Ⅴa久久| 综合天天网| 亚洲 日本 国产 综合| 伊人久久久日韩一区| 欧亚乱色熟女一区二区| 亚洲中文字幕网| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 岛国片国产成人亚洲播放| 欧美少妇色综合| 欧美黑人精品在线播放| 欧美在线中M| 国产成人免费观看在线视频| 一本一道久久综合久久| av一区二区三区 中文| 欧美性第1页| 色综合久| 色吧5亚洲| 中文字幕人乱码中文字的预防方法 | 91中文精品日韩欧美在线 | 91jk色拍| 国产欧美精选激情视频| 久久精品视| 毛片电影一区二区三区| 美女诱惑久久| 天天日日夜夜| 无码高清操逼| 91久久久久久久| 日韩午夜啪啪视频| 国产丝袜啪啪| 麻豆国产原创AV色哟哟| 天天色图| 欧美韩日精品资源| 色狠狠色| 久久精品一区二区一8| 欧美日韩婷婷中文| 黄片在线免费在线观看| 欧美亚洲首页| 蜜桃在线观看一区二区三区| 国产男女无套视频免费观看| 欧美一区二区三区不卡高清视频| 91 国产丝袜在线播放-百度| 亚洲色图激情小说| 日韩欧美中文日韩欧美色| 999综合网| 青青草无码视频| 97综合在线观看| 人、人、摸,人、人、草| 国产1024在线播放| 国产精品另类| 亚洲国内精品成人不卡| 又黑又大又粗| 抽插无码高清一区| 亚洲成人在线高清| 舔足天天操天天射| 乱操9999| 涩涩久久精品| 亚洲色图a| 99亚洲精品| 99日精品欧美国产| 国产野战露脸在线播放| 亚洲综合影院| 91精品91久久久中77777| WWW美腿丝袜香蕉中文| 欧美婷婷久久| 国产精品肉丝自拍| 青青草操逼逼视频| 乱伦熟女区| 亚洲va有码在线天堂| 精品人妻视频入口| 色欧美综合| 香蕉精品二区二区| 欧美在线第五页| 狠操91,com| 欧美视频激情久久久久久| 在线女人91| 国产女上位好爽在线| 99爱在线视频| 成人网址在线观看| 亚洲欧美在线观看2021| 久久久久久久亚洲Av无码| 免费的黄片有限公司| 精品人妻中文字幕高清| 少妇一区二区三区| 欧美精品97| 香蕉99秘 一区精品蜜桃臀| 东京男人天堂| 97操97干| 狠狠色五月亚洲91| 欧美日韩一二三| 天天操福利视频综合网站| 精品少妇人妻一区二区三区| 老司机午夜精品福利视频一区二区 | 国产 热久久久久国产精品| 欧美黄色大片在线观看 | 青椒国产97在线熟女| 日韩性爱人人爱人人操| 免费无码国产精品v片在线观看| 日本色色视频网站| 四虎国产精品永久地址入口| 91九色蝌蚪在线观看| 亚洲成人日韩小说| 久久精品中文字幕无码l| 殴美大黄片| 91GD.COM| 91黑丝露脚| juliaann精品熟女一区| 欧美香蕉视xxx| 媚薬在线视频麻豆| 日本顶级天天操狠狠操夜夜操中文字幕| 久久久久久久久久久久久久久久9| 蜜屁Av| 亚洲欧美啪啪| 亚欧美综合网| 麻豆三极片| 超碰国产精品久| 亚州AV无码国产精品| 欧美黄色片AAAAA| 精品区9| 欧美激情 日韩精品| 大乔未久88一区| 久9综合在线| 屁股久久久久久| 国产兽交视频在线播放| 91c色| 激情五月天丁香| 涩爱AV在线| WWW美腿丝袜香蕉中文| 国产高潮AA片免费看| 亚洲色人妻综合| 国产美女激情| 懂色AV网| 八戒午夜福利理论片| 黄片在线免费在线观看| 欧美亚洲玖玖玖| 性性久久| 资源新线在线天堂| 国产日产精品久久快鸭的功能介绍| 婷婷视频在线免费观看| 久久精品亚洲婷婷| 激情五月天校园春色网| 精品人妻一区二区三区日产| 成人性爱av| 欧美亚洲日韩人妻在线观看| 亚州再线| 午夜噜噜噜| 看大黄色大片原件| 啪啪一区| 色九九九综合| 久久久久久性爱免费视频| 精品国产91av一区二区三区| 欧美激情 亚洲色图| 97国产人人| 91动漫操逼视频| 三级三久久线久久99久目本WW| 日韩啪啪啪啪啪| 中文字幕人妻色偷偷久久皮 | 97亚洲精品超碰| 欧美一区二区传媒| 桑老女人九区| 91亚洲色人| 日日狠狠久久偷偷色综合免费| 日本久久综合| 99久久99久久免费精品蜜臀| 欧美性爱www免费版| 强上我不卡卡| 黄色交缠性感爆操91国产精品免费一区二区三区 | 综合网久久| 伊人操你| 日本免费中文一区二区三区四区 | heyZO天然素人无码AⅤ专区| 91精品国产一区三一| 日韩色欲久久一二三四区| 91在线美女| 午夜美女诱惑电源网| 乱伦图av| 日韩人妻无码精品系列| 日日摸天天爽夜夜欢| 亚洲超碰AV| 久久爱超碰网| 人人看黄色视频| 神马精品视频| 亚洲av资源| 五月婷婷久久综合| 97国产精品久久久久| 亚洲自拍天堂| 久草婷婷| 日韩黄片影院| 欧美一区二区在线资源| 久久专区| 97免费在线视频在线观看| 992大香蕉| 偷窥自拍A片| 男人天堂免费| 天天干夜夜一操| 成人精品视频| 日韩卡一卡二卡三在线| surenchaopeng| 粉嫩av平台| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 亚洲色啪| 免费视频观看60秒| 91精品久久综合熟女| 日本在线15p| 99操视频| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 超碰吊日色| 国产激情久久久| 婷婷激情四射| 1956日韩精品| 激情黄色片在线观看| 熟女天天干| 国产乱色国产精品免费视| 97在线青| 日韩免费看黄片| 亚洲欧美综合图片| 五月婷婷色| 国产精品久久久 | 日本不卡二三区| 欧美aaaaaaa| 密臀国产在线| julia高潮后不停追击中出| 日韩无限资源| 国产传媒日本欧美专区| 国产精品网址| 在线播放中文字幕| 九九在线视频| 亚洲欧美一区二区网址| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 精品176精品2| 乱伦av国产| 校园春色美腿丝袜 | 综合九九| 97精品综合| 亚洲人妻中文在线视频| 中文久久96| 日本欧美成人片AAAA| 亚洲中文字幕在现观看| 品亲网欧美品亲网| 3p国产欧美99热| 中文字幕熟女人妻丝袜| 97看操| 操逼逼无码| 欧美色图片| 激情人妻另类| 狠狠久久亚洲欧美专区| 免费αV在线视频| 色欲无码人妻日韩欧美精品| 性九九九九九九| 国产精品天美传媒| 一区二区三区探花在线观看| 久久久偷拍| 91网站视频在线观看| 久热这里| 91精品女厕偷拍视频| 高清视频一区| 久久久久久久久久久999| 99精品久久| 亚欧成人综合影院| 91精品91久久久中77777| 91处女视频在线观看| 色色五月婷婷| 成人七区| 亚洲高清视频在线免费观看| 亚洲高清在线se| 亚洲aw毛茸茸在线| 操逼日韩无码| 日本免费中文字幕在线| 夜色综合| 97在线播放 | 97超色| 亚洲影院小综合| 五月天激情婷婷| 欧美日韩香蕉| 亚洲另类欧美精品| 中国少妇啪啪视频| 综合大香蕉美。| 密臀AV在线| 高清不卡一二三区视频......| 精品超碰国产| 亚洲啪啪视频一区二区| 2018天天日天天日| 中日韓欧美高清| 97在线视频观看免费| 97在线青| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 人乳av| 日韩不卡网操逼中文字幕日韩| 欧美男女午夜啪啪| 99操99| 91精品久久综合熟女| 黑人操一区二区| 久久久久久电影| 伊人网青青| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 欧美亚洲清纯| 亚洲视频二区| 96免费视频在线| 99久久网站| 韩国女主播青草在线| 美女极品一区二区三区| 夜夜骑天天燥| 亚洲中文字幕在线视频一区二区| 亚洲欧美国产其他二区| 九九热超碰97亚洲最新香蕉| 夜夜爽夜夜爽| 欧美成人都市人妻| 欧美性色欧美| 国产精品经典一卡久久久| 激情五月天校园春色网| 黄色高清无码无码破解免费暗网| 性欧美精| 欧美黄片免费在线观看视频| 91女网站| 亚洲在线网站| 啊好大好舒服| 日韩精品碰碰| 成人夜夜爽| 久久原创中文| 欧美婷婷五月天| 国产丁香精品露脸视频| 亚乱色| 乱理日韩中文| 成人无码在线视频网站| 亚洲情色一区三区| 国产区日韩区在线观看| 无码一区二区三区四区五区六区七区八区九区十区视频 | 欧美美女视频| 玖玖久久久| 欧美色偷偷| 久久久久亚洲Av无码专区老牛影视| 欧美综合另类| 久久久久亚洲熟妇熟女| 色黄污美女啪啪啪免费网站| 欧美极品性爱天天射| 精品性爱一二三区| 午夜免费福利视频一区| 欧美精品日韩久久久九| 欧美性色网| 91国产操逼视频| 亚洲h片在线免费观看| 亚洲日韩精品一区视频在线| 999岛国大片| 久久精品人体| 青青草视频导航官网| 天天综合网合集91| henhen91| 国产精品白丝在线播放| 91艹B视频| 超碰91在线| 青青国产精品在线| 97久久精品亚洲中六字幕| 国产乱子伦一区二区三区免看| 九久久精品| 国产精品日日摸夜夜添骚逼| 天堂v无码免费视频| 欧美色乱| 久久三区四区| 亚洲福利影院一区久久| 精品国产无码中文| 99人人干| 女人一区| 久操频道免费在线呗看| 日本操逼视频不卡直接放| www…国产操逼| 欧美九九99久久精品|