国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

JavaWeb酒店管理系統(tǒng)課設(shè)源碼全解析:從環(huán)境配置到答辯拿高分

JavaWeb酒店管理系統(tǒng)課設(shè)源碼全解析:從環(huán)境配置到答辯拿高分 簡介這是一套面向計(jì)算機(jī)專業(yè)本科生的JavaWeb酒店管理系統(tǒng)實(shí)戰(zhàn)項(xiàng)目資源專為課程設(shè)計(jì)與期末大作業(yè)打造適用于正在完成JavaWeb綜合實(shí)踐、需要完整可運(yùn)行項(xiàng)目參考的學(xué)習(xí)者。資源包含92個文件涵蓋15個JSP頁面實(shí)現(xiàn)前臺展示與交互、14個Java類含Servlet與Bean邏輯、3個SQL腳本建庫建表初始化數(shù)據(jù)、8個CSS與4個JS文件前端樣式與行為控制以及配套文檔與圖片資源壓縮包僅2.89MB結(jié)構(gòu)清晰、部署輕量。已有162人下載學(xué)習(xí)項(xiàng)目經(jīng)大三學(xué)期導(dǎo)師指導(dǎo)并獲98分高分評價(jià)具備完整MVC分層結(jié)構(gòu)與典型業(yè)務(wù)閉環(huán)——支持客房管理、入住登記、訂單查詢、延期續(xù)住、營收統(tǒng)計(jì)等核心功能。用戶可直接導(dǎo)入Eclipse/Tomcat運(yùn)行快速掌握數(shù)據(jù)庫連接、會話管理、前后端交互及系統(tǒng)集成等關(guān)鍵技能。 上個月幫一位學(xué)弟調(diào)試期末大作業(yè)項(xiàng)目是JavaWeb酒店管理系統(tǒng)。他自己在網(wǎng)上找的源碼包目錄里有完整的源碼、數(shù)據(jù)庫腳本文件、還有一份挺詳細(xì)的文檔說明結(jié)果折騰了三天愣是沒跑起來。我?guī)退崂砹艘槐榄h(huán)境、改了十幾處配置、把數(shù)據(jù)庫重新導(dǎo)了一遍總算在Tomcat里跑通了。后來我順手把這套項(xiàng)目的結(jié)構(gòu)完整讀了一遍發(fā)現(xiàn)這類課設(shè)雖然網(wǎng)上滿天飛但真正能在本地順利跑通、能撐住答辯的其實(shí)不多。這篇文章就圍繞這個JavaWeb酒店管理系統(tǒng)展開把項(xiàng)目整體設(shè)計(jì)、數(shù)據(jù)庫腳本文件的核心邏輯、代碼實(shí)現(xiàn)要點(diǎn)、常見運(yùn)行問題和答辯準(zhǔn)備都拆開講一遍。內(nèi)容主要面向正在做JavaWeb期末大作業(yè)的同學(xué)也適合想系統(tǒng)復(fù)習(xí)JavaWeb技術(shù)棧JSP、Servlet、JDBC、MySQL的人作為參考。無論你是拿這套源碼應(yīng)急還是打算從零手寫一個都可以從里面找到能直接抄的配置和代碼思路。1. 選題分析酒店管理系統(tǒng)為什么成了JavaWeb課設(shè)的常青樹每年期末都能看到大量酒店管理系統(tǒng)、圖書館管理系統(tǒng)、學(xué)生選課系統(tǒng)放在一起批量出現(xiàn)這不是偶然。對于JavaWeb課程來說判斷一個課設(shè)項(xiàng)目合不合格核心其實(shí)是看它能不能覆蓋這門課要求的大部分知識點(diǎn)。酒店管理系統(tǒng)在這個維度上幾乎是無死角覆蓋而且業(yè)務(wù)模型足夠直觀不需要答辯老師先花十分鐘理解業(yè)務(wù)背景。1.1 一個酒店管理系統(tǒng)能覆蓋哪些技術(shù)考點(diǎn)先列一下JavaWeb課設(shè)里最常見的考核點(diǎn)JSP頁面開發(fā)列表頁、表單頁、登錄頁、詳情頁涉及JSTL標(biāo)簽、EL表達(dá)式、指令與動作元素Servlet控制器請求接收、參數(shù)封裝、業(yè)務(wù)跳轉(zhuǎn)、轉(zhuǎn)發(fā)與重定向的區(qū)別JDBC數(shù)據(jù)庫操作Connection、PreparedStatement、ResultSet的完整生命周期會話管理Session存用戶信息、Cookie存自動登錄、Filter做登錄攔截前端交互HTML表單校驗(yàn)、AJAX局部刷新加分項(xiàng)、Bootstrap頁面美化數(shù)據(jù)庫設(shè)計(jì)多表關(guān)聯(lián)、外鍵約束、視圖或存儲過程事務(wù)處理訂房、退房結(jié)賬等涉及多個表寫入的操作酒店管理系統(tǒng)恰好就是把以上所有點(diǎn)全部串起來的業(yè)務(wù)場景。管理員登錄之后要查詢房態(tài)、管理房間信息、處理客戶預(yù)訂、辦理入住和退房、生成賬單這些操作天然就要求系統(tǒng)有“增刪改查”的完整閉環(huán)而且不同模塊之間還有數(shù)據(jù)依賴比如預(yù)訂成功之后房間狀態(tài)要變、退房之后房間要恢復(fù)可訂。這個業(yè)務(wù)連貫性讓項(xiàng)目演示效果很直觀老師說“你演示一下從客戶預(yù)訂到退房結(jié)賬的完整流程”系統(tǒng)就能順順暢暢走一遍基本不存在“功能點(diǎn)之間是孤島”的問題。1.2 拿到源碼包之后第一步應(yīng)該做什么很多同學(xué)下載完源碼包就直接丟進(jìn)IDEA點(diǎn)運(yùn)行結(jié)果一堆報(bào)錯心態(tài)直接崩了。我?guī)蛯W(xué)弟排錯的時候發(fā)現(xiàn)大部分問題其實(shí)在動手之前就可以避免。拿到任何一套JavaWeb課設(shè)源碼建議按以下順序檢查而不是急著運(yùn)行看目錄結(jié)構(gòu)。正常情況下應(yīng)該有srcJava源碼、webJSP頁面和靜態(tài)資源、sql或db數(shù)據(jù)庫腳本文件、README或doc文檔說明。如果沒有說明文檔這套源碼的完整度就要打個問號后邊跑起來的成本會高不少。讀文檔說明。重點(diǎn)看三處開發(fā)環(huán)境要求JDK版本、Tomcat版本、MySQL版本、數(shù)據(jù)庫初始化步驟怎么導(dǎo)入腳本文件、默認(rèn)管理員賬號密碼是什么、部署步驟要不要改配置文件、有沒有依賴的jar包。這套酒店管理系統(tǒng)的文檔說明里一般會有“環(huán)境要求”這一節(jié)學(xué)弟當(dāng)時就是跳過了它導(dǎo)致用Tomcat 10跑了javax包下的老代碼一直報(bào)ClassNotFoundException。檢查項(xiàng)目用的技術(shù)棧。是純JSPServlet還是用了Spring MVC還是MyBatis。純Servlet的項(xiàng)目結(jié)構(gòu)相對直白適合課程考核如果引入框架說明文檔通常會更長部署步驟也可能更復(fù)雜。注意拿到源碼后先別急著改代碼先把它“原樣跑通”再談修改和優(yōu)化。連原版都跑不起來的項(xiàng)目改了只會更亂。2. 項(xiàng)目結(jié)構(gòu)與技術(shù)棧拆解讀懂一套JavaWeb課設(shè)源碼的正確姿勢這套酒店管理系統(tǒng)采用的是最經(jīng)典的JavaWeb三層架構(gòu)JSP負(fù)責(zé)頁面展示Servlet負(fù)責(zé)接收請求和跳轉(zhuǎn)DAO層負(fù)責(zé)JDBC數(shù)據(jù)庫操作中間還夾著一個JavaBean實(shí)體層用來傳遞數(shù)據(jù)。這套結(jié)構(gòu)雖然簡單但它把MVC的理念體現(xiàn)得非常清楚對課設(shè)來說完全夠用也方便在文檔里畫架構(gòu)圖。2.1 包結(jié)構(gòu)與分層設(shè)計(jì)源碼的包結(jié)構(gòu)一般長這樣雖然不同博主寫出來的命名會略有差異但核心分層基本一致src ├── com.xxx.entity 實(shí)體類User、RoomType、Room、Customer、Order ├── com.xxx.dao 數(shù)據(jù)訪問層RoomDao、OrderDao、CustomerDao ├── com.xxx.servlet Servlet控制器LoginServlet、RoomServlet、OrderServlet ├── com.xxx.util 工具類DBUtil、StringUtil └── com.xxx.filter 過濾器EncodingFilter、LoginFilter web ├── admin 后臺管理頁面login.jsp、roomManage.jsp、orderManage.jsp ├── css / js / images 靜態(tài)資源 └── WEB-INF web.xml、lib目錄第一次接觸這套結(jié)構(gòu)的同學(xué)很容易困惑一個問題為什么JSP頁面還能直接訪問數(shù)據(jù)庫非要繞一大圈搞個Servlet和DAO這個問題的標(biāo)準(zhǔn)回答是“職責(zé)分離”。JSP如果直接寫JDBC代碼頁面會越來越臃腫改SQL還得在HTML里找維護(hù)成本非常高。而用Servlet接收請求之后調(diào)用DAO頁面只負(fù)責(zé)拿數(shù)據(jù)渲染View誰出問題就查誰代碼的復(fù)用性也更好。比如RoomDao里寫一個findRoomByCondition()方法既可以被房間管理頁面調(diào)用也可以被統(tǒng)計(jì)報(bào)表模塊復(fù)用不需要復(fù)制粘貼第二遍。2.2 Servlet的映射方式與頁面流轉(zhuǎn)在Servlet 3.0以后可以用WebServlet(/login)注解直接配置映射不需要跑到web.xml里寫一長串。課設(shè)項(xiàng)目里兩種方式都可能出現(xiàn)老一些的教程偏好web.xml集中管理新一些的項(xiàng)目用注解居多。判斷方法很簡單看src目錄里有沒有WebServlet注解有就是注解方式?jīng)]有就去web.xml里找servlet-mapping。整個系統(tǒng)的頁面流轉(zhuǎn)邏輯是未登錄用戶訪問任何后臺頁面 → LoginFilter攔截 → 跳轉(zhuǎn)到login.jsp管理員填賬號密碼提交表單 → LoginServlet接收參數(shù) → 校驗(yàn)通過后Session記錄用戶 → 跳轉(zhuǎn)index.jsp主頁主頁菜單點(diǎn)擊“房間管理” → RoomServlet接收actionlist → 查詢房間列表 → 轉(zhuǎn)發(fā)到roomManage.jsp渲染表格房間詳情或預(yù)訂操作 → RoomServlet接收actiondetail或book → 處理后跳轉(zhuǎn)對應(yīng)頁面這里有個容易踩的坑Servlet里用了response.sendRedirect()的情況request.setAttribute()寫入的數(shù)據(jù)會丟因?yàn)橹囟ㄏ蚴侵匦掳l(fā)一次請求舊request對象已經(jīng)銷毀了。如果需要帶數(shù)據(jù)到下一個頁面必須用轉(zhuǎn)發(fā)request.getRequestDispatcher().forward()或把數(shù)據(jù)塞進(jìn)Session。2.3 這套系統(tǒng)為什么不用Spring Boot很多同學(xué)喜歡問現(xiàn)在企業(yè)開發(fā)都用Spring Boot課設(shè)里能不能直接用能不能用取決于課程任務(wù)書怎么寫的。如果任務(wù)書明確要求使用JSP/Servlet/JDBC完成那就老老實(shí)實(shí)用原生技術(shù)棧因?yàn)槔蠋煹目己它c(diǎn)就是這些基礎(chǔ)。如果任務(wù)書只說了“采用JavaWeb技術(shù)實(shí)現(xiàn)”那Spring Boot也可以。但從課設(shè)項(xiàng)目本身來說原生JSPServlet的項(xiàng)目結(jié)構(gòu)更簡單部署也不需要打包成jar更適合演示也更容易讓老師在代碼答辯環(huán)節(jié)看出你確實(shí)理解了JavaWeb的基礎(chǔ)概念。用Spring Boot做酒店管理系統(tǒng)代碼量確實(shí)更少配置也省了很多但答辯的時候老師一旦問到“你的Servlet請求是怎么處理的”你很難用框架的簡化邏輯去解釋底層機(jī)制。反過來原生Servlet的項(xiàng)目可以直接把過濾器、會話、JDBC事務(wù)一個個指給老師看這是課設(shè)評分規(guī)則里非常占優(yōu)的。所以除非任務(wù)書強(qiáng)制要求框架否則我建議課設(shè)階段就老老實(shí)實(shí)用原生技術(shù)棧把基礎(chǔ)原理吃透。3. 數(shù)據(jù)庫腳本文件分析表結(jié)構(gòu)設(shè)計(jì)與導(dǎo)入全過程這套系統(tǒng)的數(shù)據(jù)庫腳本文件是整個項(xiàng)目里最容易被低估的部分。很多同學(xué)拿下來之后直接打開MySQL執(zhí)行跑完就開始寫代碼完全不看表結(jié)構(gòu)。實(shí)際上數(shù)據(jù)庫腳本設(shè)計(jì)得怎么樣直接決定了系統(tǒng)功能的擴(kuò)展邊界和代碼的復(fù)雜程度。3.1 核心數(shù)據(jù)表及其設(shè)計(jì)意圖一套功能完整的酒店管理系統(tǒng)腳本文件里通常至少包含以下幾張核心表表名主要用途關(guān)鍵字段t_admin管理員/操作員賬號表id, username, password, real_namet_room_type房型字典表id, type_name, price, bed_num, areat_room房間表id, room_no, type_id, status, floort_customer客戶信息表id, name, id_card, phone, create_timet_order預(yù)訂/入住訂單表id, order_no, room_id, customer_id, start_time, end_time, total_price, statust_check_in入住記錄表部分系統(tǒng)合并到訂單表id, order_id, check_in_time, check_out_time, deposit核心的設(shè)計(jì)思路是房間表和房型表分離。房型表存“標(biāo)準(zhǔn)間”“大床房”“豪華套房”這些公共信息比如基礎(chǔ)價(jià)格、面積、床數(shù)房間表存具體的物理房間比如501號房間屬于標(biāo)準(zhǔn)間房型。這樣設(shè)計(jì)的好處是當(dāng)某個房型價(jià)格調(diào)整時只需要更新房型表里的一條記錄而不是把所有房間的價(jià)格都改一遍。這就是數(shù)據(jù)庫范式設(shè)計(jì)里講的“避免數(shù)據(jù)冗余”答辯的時候如果老師問為什么分兩張表這個回答就很加分。訂單表的status字段也值得留意一般用int類型表示狀態(tài)而不是直接用varchar存中文。用int的好處是穩(wěn)定、省空間、不容易因?yàn)橹形妮斎氩灰恢聦?dǎo)致查詢失敗。常見的編碼規(guī)則是0已預(yù)訂、1已入住、2已退房已完成、3已取消。在代碼里要定義成常量不要散布在各處魔法數(shù)字。3.2 數(shù)據(jù)庫腳本的導(dǎo)入步驟拿到sql文件之后常見的導(dǎo)入方式有兩種我推薦用命令行或Navicat都行但順序錯了會報(bào)外鍵錯誤。方式一命令行導(dǎo)入最穩(wěn)不依賴GUI工具mysql -u root -p Enter password: ****** mysql CREATE DATABASE hotel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; mysql USE hotel_db; mysql SOURCE D:/hotel/hotel.sql;注意如果sql文件里已經(jīng)寫了CREATE DATABASE和USE語句就不用手動建庫了。判斷方法是打開sql文件看前5行有CREATE DATABASE就直接source。方式二Navicat導(dǎo)入右鍵點(diǎn)擊連接 → 新建數(shù)據(jù)庫 → 字符集選utf8mb4 → 雙擊打開新數(shù)據(jù)庫 → 右鍵 → 運(yùn)行SQL文件 → 選擇sql文件路徑 → 開始。導(dǎo)入成功之后重點(diǎn)檢查一下t_admin表里有沒有初始數(shù)據(jù)。課設(shè)系統(tǒng)的默認(rèn)管理員賬號通常是admin密碼是admin123但也有博主改成其他值可以在SQL里搜INSERT INTO t_admin看一下到底寫入的是什么。如果腳本文件里沒有初始賬號登錄頁面就永遠(yuǎn)進(jìn)不去這種情況需要自己手動補(bǔ)一條INSERT INTO t_admin (username, password, real_name) VALUES (admin, admin123, 系統(tǒng)管理員);3.3 如何根據(jù)表結(jié)構(gòu)反推業(yè)務(wù)功能這一點(diǎn)對于看懂整個項(xiàng)目非常重要。拿到腳本文件不要急著導(dǎo)入先瀏覽一遍建表語句你會發(fā)現(xiàn)業(yè)務(wù)邏輯全寫在表設(shè)計(jì)里。比如你看到t_order表里同時有room_id和customer_id字段說明一個訂單同時關(guān)聯(lián)房間和客戶看到end_time和start_time都有說明系統(tǒng)支持設(shè)定入住時間區(qū)間看到status字段存在說明系統(tǒng)里有訂房狀態(tài)的流轉(zhuǎn)邏輯。這個過程相當(dāng)于“反向閱讀需求文檔”。如果你能把每張表之間的關(guān)系畫清楚用什么工具不重要能講明白就行答辯時老師問“系統(tǒng)有哪些功能模塊”以及“數(shù)據(jù)是怎么流轉(zhuǎn)的”你就能從表出發(fā)講出完整的故事而不是背代碼。4. 核心功能模塊的代碼實(shí)現(xiàn)要點(diǎn)代碼是實(shí)現(xiàn)業(yè)務(wù)邏輯的地方也是課設(shè)老師重點(diǎn)看的部分。這套系統(tǒng)里最核心的模塊集中在數(shù)據(jù)庫連接、登錄校驗(yàn)、房間查詢、訂單事務(wù)處理這幾塊我挑出來逐個拆。4.1 數(shù)據(jù)庫連接工具類DBUtil幾乎所有JavaWeb課設(shè)里都有一個DBUtil類代碼大同小異核心邏輯是從配置文件讀取連接參數(shù)加載驅(qū)動創(chuàng)建連接。這里有個很關(guān)鍵的規(guī)范不要硬編碼數(shù)據(jù)庫賬號密碼在Java代碼里而是放到db.properties配置文件里。public class DBUtil { private static String url; private static String username; private static String password; static { try { InputStream in DBUtil.class.getClassLoader() .getResourceAsStream(db.properties); Properties props new Properties(); props.load(in); Class.forName(props.getProperty(driver)); url props.getProperty(url); username props.getProperty(username); password props.getProperty(password); } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, username, password); } }對應(yīng)的db.properties文件內(nèi)容如下drivercom.mysql.cj.jdbc.Driver urljdbc:mysql://localhost:3306/hotel_db?useUnicodetruecharacterEncodingUTF-8serverTimezoneAsia/Shanghai usernameroot password123456這里要特別提醒driver和url的值取決于MySQL版本。MySQL 5.x用的是com.mysql.jdbc.DriverMySQL 8.x用的是com.mysql.cj.jdbc.DriverURL里5.x不用帶serverTimezone8.x不帶會報(bào)時區(qū)錯誤。如果代碼跑起來報(bào)找不到驅(qū)動類十有八九是jar包版本和驅(qū)動類名不匹配。4.2 登錄驗(yàn)證與Session會話管理登錄模塊是JavaWeb課設(shè)里的必考環(huán)節(jié)。標(biāo)準(zhǔn)實(shí)現(xiàn)是表單POST提交到LoginServletServlet獲取用戶名和密碼調(diào)用DAO層的findAdminByUsernameAndPassword方法去數(shù)據(jù)庫里查查到就存Session查不到就回登錄頁并帶錯誤提示。protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username request.getParameter(username); String password request.getParameter(password); AdminDao adminDao new AdminDao(); Admin admin adminDao.findByUsernameAndPassword(username, password); if (admin ! null) { HttpSession session request.getSession(); session.setAttribute(currentAdmin, admin); response.sendRedirect(request.getContextPath() /index.jsp); } else { request.setAttribute(errorMsg, 用戶名或密碼錯誤); request.getRequestDispatcher(/login.jsp).forward(request, response); } }這里有個細(xì)節(jié)值得在文檔里寫清楚登錄校驗(yàn)通過后為什么用sendRedirect而不用forward因?yàn)榈卿洺晒蟮刂窓趹?yīng)該變成首頁地址而不是停留在login接口上如果用戶刷新頁面不會導(dǎo)致表單重復(fù)提交。登錄失敗時用forward因?yàn)樾枰獢y帶errorMsg數(shù)據(jù)到登錄頁繼續(xù)展示。Session存好之后還需要一個Filter攔截未登錄請求不然用戶直接在地址欄輸入/admin/roomManage.jsp就能跳過登錄這會被老師抓住扣分。public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request (HttpServletRequest) req; HttpServletResponse response (HttpServletResponse) resp; HttpSession session request.getSession(false); if (session null || session.getAttribute(currentAdmin) null) { response.sendRedirect(request.getContextPath() /login.jsp); return; } chain.doFilter(request, response); }Filter的url-pattern要配置成/admin/*這樣后臺所有頁面都會被攔截login.jsp如果放在admin目錄下需要在Filter邏輯里額外放行一次不然會出現(xiàn)死循環(huán)沒登錄→攔截到login.jsp→又被Filter攔住→繼續(xù)跳login.jsp。4.3 房間多條件查詢與動態(tài)SQL拼接房間管理是酒店管理系統(tǒng)的主業(yè)務(wù)之一列表頁通常會提供房型篩選、狀態(tài)篩選、價(jià)格區(qū)間篩選。如果每個條件都寫一條固定的SQL組合起來會有好幾條維護(hù)成本很高。合理做法是使用動態(tài)拼接SQL然后通過PreparedStatement預(yù)編譯執(zhí)行。public ListRoom findRoomByCondition(String typeId, String status, Double minPrice, Double maxPrice) { StringBuilder sql new StringBuilder(SELECT * FROM t_room r LEFT JOIN t_room_type t ON r.type_id t.id WHERE 11); ListObject params new ArrayList(); if (typeId ! null !.equals(typeId)) { sql.append( AND r.type_id ?); params.add(Integer.parseInt(typeId)); } if (status ! null !.equals(status)) { sql.append( AND r.status ?); params.add(Integer.parseInt(status)); } if (minPrice ! null) { sql.append( AND t.price ?); params.add(minPrice); } if (maxPrice ! null) { sql.append( AND t.price ?); params.add(maxPrice); } // 執(zhí)行PreparedStatement遍歷ResultSet封裝成Room對象 }這段代碼里有幾個課設(shè)加分點(diǎn)可以寫進(jìn)文檔第一WHERE 11的作用是方便后續(xù)條件用AND無縫拼接說實(shí)話這是一個取巧寫法但課設(shè)里用得非常普遍原理上講清楚就行第二所有參數(shù)都通過?占位符傳入避免拼接字符串導(dǎo)致SQL注入第三LEFT JOIN關(guān)聯(lián)房型表既保留了房間信息又能查房型價(jià)格。4.4 分頁查詢實(shí)現(xiàn)思路酒店房間數(shù)量可能不多但訂單表的數(shù)據(jù)會逐漸積累所以訂單列表一定要做分頁。JSP頁面里常見的分頁寫法有兩種第一種是把所有數(shù)據(jù)查出來放到內(nèi)存里用List的subList方法切頁第二種是SQL層面用LIMIT做物理分頁。課設(shè)里推薦用第二種雖然SQL會復(fù)雜一點(diǎn)但數(shù)據(jù)量大了之后性能差距明顯答辯時也可以理直氣壯地說自己考慮了性能。SELECT * FROM t_order ORDER BY create_time DESC LIMIT ?, ?;第一個?是起始行數(shù)offset第二個?是每頁條數(shù)。計(jì)算方式offset (currentPage - 1) * pageSize。頁面上還需要展示總頁數(shù)和當(dāng)前頁總頁數(shù)可以通過COUNT(*)查出來之后除以pageSize向上取整。分頁還有一個很常見的bug點(diǎn)擊第2頁之后數(shù)據(jù)刷新了但頁面上方的篩選條件丟失了因?yàn)榉猪撴溄邮峭ㄟ^普通的a href跳轉(zhuǎn)的query string里沒有攜帶篩選參數(shù)。解決辦法是構(gòu)造分頁地址時把已有的篩選參數(shù)原樣帶上比如/orderServlet?actionlistcurrentPage2typeId2status1。4.5 預(yù)訂房間的事務(wù)處理預(yù)訂房間是一個典型的需要事務(wù)保護(hù)的場景用戶下單時要往t_order表插入訂單記錄、要把t_room表里對應(yīng)房間的狀態(tài)改成已預(yù)訂、可能要更新客戶的聯(lián)系方式。這些操作要么全部成功要么全部失敗不能出現(xiàn)訂單插入成功但房間狀態(tài)沒改的情況。Connection conn null; try { conn DBUtil.getConnection(); conn.setAutoCommit(false); // 開啟事務(wù) OrderDao orderDao new OrderDao(); RoomDao roomDao new RoomDao(); int orderId orderDao.insertOrder(conn, order); roomDao.updateRoomStatus(conn, roomId, 1); conn.commit(); // 全部成功提交事務(wù) } catch (Exception e) { if (conn ! null) { conn.rollback(); // 任一失敗回滾全部操作 } e.printStackTrace(); } finally { if (conn ! null) { conn.setAutoCommit(true); // 恢復(fù)自動提交 conn.close(); } }注意一點(diǎn)DAO層的方法要接收Connection參數(shù)由Service或Servlet層來控制事務(wù)的開啟、提交和回滾而不能每個DAO方法內(nèi)部自己打開連接、自己提交否則無法保證同一個事務(wù)用的都是同一個連接。這個點(diǎn)很多課設(shè)代碼都處理得不到位你在文檔里如果寫明白了老師會很認(rèn)可。5. 常見運(yùn)行報(bào)錯與期末答辯避坑指南把源碼跑起來的過程中絕大多數(shù)同學(xué)遇到的問題其實(shí)高度集中。我整理了這套系統(tǒng)運(yùn)行期間最高頻的幾類報(bào)錯和對應(yīng)的解決方案直接對照排查即可。5.1 環(huán)境配置類問題速查表報(bào)錯信息原因分析解決方案ClassNotFoundException: com.mysql.jdbc.Driver驅(qū)動類名寫錯或jar包沒導(dǎo)入MySQL 5.x用com.mysql.jdbc.Driver8.x用com.mysql.cj.jdbc.Driver確認(rèn)mysql-connector-java的jar在WEB-INF/lib下The type java.io.IOException cannot be resolvedJDK版本與Tomcat版本不兼容Tomcat 10以上是Jakarta EE需要jakarta.servlet不再支持javax代碼課設(shè)建議用Tomcat 8.5/9.0Port 8080 required by Tomcat v9.0 was already in useTomcat端口被占用找到占用程序結(jié)束進(jìn)程或修改server.xml里的端口Access denied for user rootlocalhost數(shù)據(jù)庫賬號密碼錯誤檢查db.properties里的username和password是否MySQL實(shí)際值Unknown database hotel_db數(shù)據(jù)庫沒創(chuàng)建成功手動CREATE DATABASE再重新導(dǎo)入sql腳本java.sql.SQLException: The server time zone value is unrecognizedMySQL 8.x時區(qū)問題URL末尾加serverTimezoneAsia/Shanghai5.2 中文亂碼問題中文亂碼是JavaWeb課設(shè)里的“保留項(xiàng)目”。處理亂碼要貫徹三個環(huán)節(jié)少一個都會出問題JSP頁面頂部設(shè)置% page contentTypetext/html;charsetUTF-8 %。Servlet接收POST請求參數(shù)前執(zhí)行request.setCharacterEncoding(UTF-8)這行代碼必須寫在第一次調(diào)用getParameter()之前否則取到的參數(shù)已經(jīng)按默認(rèn)編碼解析了再設(shè)置就晚了。寫入數(shù)據(jù)庫的連接URL加上useUnicodetruecharacterEncodingUTF-8。另外MySQL數(shù)據(jù)庫本身的字符集在導(dǎo)入sql腳本時就要確認(rèn)是utf8mb4而不是latin1不然頁面上存進(jìn)去的是中文數(shù)據(jù)庫查出亂碼代碼查一天也查不出問題。提示排查亂碼問題時建議分層排查——先看頁面源碼再看瀏覽器Network面板的Form Data如果這里就亂說明請求階段出問題然后看數(shù)據(jù)庫里的原始存儲值最后看查詢返回的數(shù)據(jù)。從前到后按鏈路定位不要瞎試。5.3 答辯前必過的五個演示用例課設(shè)答辯不是代碼Review而是“功能演示現(xiàn)場提問”。老師通常會用幾分鐘時間快速過一遍系統(tǒng)你提前把下面的場景跑熟現(xiàn)場就不會手忙腳亂登錄成功和登錄失敗的完整流程。失敗時頁面要出現(xiàn)錯誤提示不能只是地址欄變了但頁面沒反應(yīng)。從“查看房間列表”到“預(yù)訂房間”再到“確認(rèn)訂單”的完整業(yè)務(wù)鏈每個中間步驟要能說清楚當(dāng)前操作改動了哪張表。退出登錄后點(diǎn)擊瀏覽器的“后退”按鈕看看能不能重新看到后臺頁面。如果能看到說明Filter攔截沒做好這算比較大的功能漏洞。輸入非法參數(shù)比如直接在地址欄傳一個不存在的訂單id頁面應(yīng)該友好提示而不是拋出一長串500異常堆棧。連續(xù)新增兩條完全相同的記錄比如重復(fù)手機(jī)號的客戶系統(tǒng)是否做了業(yè)務(wù)校驗(yàn)。5.4 答辯老師最容易追問的十個技術(shù)問題這個清單我每年都跟學(xué)生強(qiáng)調(diào)覆蓋面已經(jīng)比較全了說說Servlet的生命周期。Session和Cookie的區(qū)別是什么登錄用的Session存在服務(wù)器還是客戶端過濾器Filter和監(jiān)聽器Listener分別能做什么JSP的轉(zhuǎn)發(fā)和重定向有什么區(qū)別路徑什么時候帶ContextPath你的數(shù)據(jù)庫連接為什么用配置文件而不是直接寫在代碼里SQL注入是什么你的代碼怎么防止的PreparedStatement和Statement有什么區(qū)別酒店房間預(yù)訂時如果兩個管理員同時操作同一間房怎么辦并發(fā)超賣事務(wù)的ACID特性是什么你的退房結(jié)賬流程里哪里用到了事務(wù)如果訂單表數(shù)據(jù)量越來越大你怎么優(yōu)化查詢性能其中第8個問題最容易被問住。簡單有效的一個預(yù)防方案更新房間狀態(tài)時加一個條件判斷UPDATE t_room SET status1 WHERE id? AND status0這樣只有狀態(tài)還是空閑的房間才能被預(yù)訂成功。第二個管理員執(zhí)行同樣SQL時影響行數(shù)為0表示搶房失敗。這段邏輯雖然簡單但體現(xiàn)出的并發(fā)控制意識在課設(shè)里屬于明顯加分項(xiàng)。6. 項(xiàng)目二次開發(fā)建議把網(wǎng)上的源碼變成你的作品最后聊聊所有拿現(xiàn)成源碼做課設(shè)的同學(xué)都繞不開的問題怎么讓它看起來像你自己的東西而不只是下載下來的。核心思路不是改個博客名字就交差而是真正去做至少一兩處“自己的代碼”然后能講清楚思路。6.1 低成本高回報(bào)的改造點(diǎn)如果你不想大動干戈推薦從這個列表里選一個或兩個改造性價(jià)比很高加一個客流統(tǒng)計(jì)圖表用ECharts讀取訂單數(shù)據(jù)按月份生成柱狀圖。前端引入一個echarts.min.js后端提供一個返回JSON數(shù)據(jù)的Servlet改造量不大但演示時視覺沖擊力強(qiáng)。訂單數(shù)據(jù)導(dǎo)出Excel用POI庫把通過條件篩選的訂單導(dǎo)出成.xls文件答辯時現(xiàn)場點(diǎn)一下“導(dǎo)出”按鈕比純頁面展示更有企業(yè)級的感覺。登錄驗(yàn)證碼用Java生成簡單的圖片驗(yàn)證碼不需要太復(fù)雜一個Servlet畫幾個扭曲數(shù)字就行能擋住一部分自動化登錄嘗試體現(xiàn)安全意識。密碼加鹽存儲把t_admin表的password從明文改成MD5加鹽哈希登錄校驗(yàn)改成先算哈希再對比。這個改造會讓老師對你的印象分明顯提升。6.2 文檔說明怎么寫得像個高分作業(yè)期末大作業(yè)通常還需要提交一份文檔說明很多同學(xué)把網(wǎng)上下載的文檔直接改個名字就交上去了封面上的博主昵稱都沒刪干凈這屬于非常低級的扣分點(diǎn)。建議至少把下面的章節(jié)親自過一遍需求分析用一段話描述系統(tǒng)要解決什么問題按角色列出管理員、客戶各自能做什么。系統(tǒng)設(shè)計(jì)畫系統(tǒng)的架構(gòu)圖和功能模塊圖核心表結(jié)構(gòu)列出字段說明寫清楚表之間的關(guān)系。核心代碼說明挑3到5個核心功能登錄驗(yàn)證、房間預(yù)訂、權(quán)限攔截、分頁查詢、事務(wù)處理每個配一段核心代碼重點(diǎn)寫清楚“這段代碼完成了什么邏輯”不要大段貼代碼然后一個字的解釋都沒有。測試說明列出測試用例和結(jié)果覆蓋正常流程、異常流程、邊界條件??偨Y(jié)與心得寫你自己實(shí)際遇到的問題和解決方式。比如“導(dǎo)入數(shù)據(jù)庫時遇到MySQL時區(qū)報(bào)錯通過在URL中加入serverTimezone參數(shù)解決”這類內(nèi)容老師一眼就能看出是真實(shí)做過的。6.3 判斷一套源碼能不能用得下去的三條標(biāo)準(zhǔn)經(jīng)過這次幫學(xué)弟調(diào)試我自己總結(jié)出三條判斷標(biāo)準(zhǔn)你們下載任何JavaWeb課設(shè)源碼時都可以參考源碼包里的數(shù)據(jù)庫腳本能不能在干凈的環(huán)境里順利導(dǎo)入。腳本文件結(jié)構(gòu)混亂、沒有INSERT初始數(shù)據(jù)的直接跳過。項(xiàng)目里是否帶jar包或者至少有清晰的依賴清單。很多源碼包在網(wǎng)盤里不帶lib目錄下載下來還要自己找jar版本這是坑。文檔說明里的部署步驟是否和源碼目錄一致。如果文檔寫著“把xx.sql導(dǎo)入MySQL”結(jié)果包里根本沒有這個文件那大概率是從別處搬運(yùn)的后續(xù)溝通成本會很高。6.4 最終上線前自己過一遍檢查清單無論你是要用這套源碼交作業(yè)還是改造之后展示最后提交前建議把下面這張檢查清單過一遍數(shù)據(jù)庫腳本能從頭到尾執(zhí)行一遍不報(bào)錯。默認(rèn)賬號可以登錄且管理員密碼不是弱口令如果你改了密碼文檔里同步更新。所有JSP頁面在未登錄狀態(tài)下都不能直接通過URL訪問。頁面里的示例數(shù)據(jù)、測試數(shù)據(jù)清理干凈不要?dú)埩魟e人的客戶信息。所有中文顯示沒有亂碼Tomcat控制臺沒有多余的異常堆棧。代碼里凡是出現(xiàn)博主個人信息的地方全部替換掉。文檔說明與源碼一致尤其是數(shù)據(jù)庫賬號密碼、環(huán)境版本號。我在實(shí)際操作中發(fā)現(xiàn)大多數(shù)人下載源碼之后死磕代碼反而忽略了一個最基本的事實(shí)課設(shè)老師最看重的是你能否把系統(tǒng)完整演示清楚、對核心代碼的來龍去脈講明白。代碼是不是你一行行敲的其實(shí)很容易被看出來但如果你能把上面這些表結(jié)構(gòu)和事務(wù)邏輯解釋透徹老師基本不會為難你。把整套系統(tǒng)的表設(shè)計(jì)、會話機(jī)制、事務(wù)邊界、分頁思路全部吃透哪怕你是第二次上手這套代碼也能在答辯現(xiàn)場從容應(yīng)對。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
午夜九九| 婷婷五月激情综合| 精品中文一区二区| 中文字幕丝袜人妻| 99热这里都是精品| 加勒比久久综合网高清| 成人国产视频在线观看| 欧美一区二区三熟女剧情| 久久乐| 涩综合导航| 欧美色图欧美| 人妻精品一区二区三区| 日本人妻中文字幕| 亚洲资源站| 久欲AV| 美国久久一二三四| 欧美伦乱爱| 亚洲 欧美 中文 日韩超碰| 韩国一级婬片A片AAAAA| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 岛国免费视频在线| 日韩中文字幕视频| 国产精品成人久久一区二区三区| 17c嫩草51久久91嫩草| 9I1性色影院| 尤物AV免费网站| 综合网亚洲1| 久久人体一区二区| 亚洲性高潮| 96麻豆精品一区二区三区| 97超碰伊人| 国产91 丝袜在线播放 | 国产精品乱人伊人网| 日本久久久久久久久| 色综合一区二区三巨| 丁香五月综合| 伊人青青草久久| 一区,二区,三区视频| 午夜福利在线合集| 狠日欧美| 精品国产人成在线| 婷婷六月色| 欧洲Au麻豆| 日韩久久艹| 天天操天天7| 国产精品在线免费| 亚洲天堂一区二区久久| 夜夜爽33333| 亚洲蜜臀懂色| 欧美亚洲首页| 福利在线观看一区二区| 欧美嗯啊……在线观看视频免费| 操逼视频国产无套| 美日韩男女操屄视频| 婷婷六月色开| 久久直播国产| 久久一二三四五六七八九区区| 国产盗摄美女如厕大神作品在线观看| 屁屁影院一区二区三区国产| 成人怡红院| 无码人妻精品一区二区三区九九 | 首页亚洲国产高跟丝袜诱惑视频| 日本影视久久免费| 国产熟女精品区| 乱伦熟妇一区二区| 国产精品久久久久9999小说| 1二区9| 国产suv精品一区二区四| 920日本午夜免费| 亚洲αv一区二区三区| 亚洲影视第一页| 丁香六月婷婷| 搡老女人老91妇女熟女| 精品一啪| 亚洲熟女人妻中文字幕一区二区| 免费成人自拍视频在线| 调教熟妇 久久久久久| 欧美日韩性爱视屏免费看了| 亚洲图片激情小说| 婷婷六月色| 久久久久久无码人妻中文字幕| 性色AV蜜色av色欲av| 亚欧精品久久久久久久久久久| 亚洲美女黄色| 久操热| 亚洲天堂男| 色色色网站| 1024精品在线| 人人摸人人干| 无码人妻丰满热妇又大又粗| 久久精品无码熟妇一区二区三区视频导航 | 97视频在线免费看| 九月激情婷婷| 久热精品在线| 亚洲蜜臀懂色| 久99热| 亚洲成人ab| 日本不卡码黄色 | 色综合美国| 成全动漫视频观看免费下载| 中亚黄色三级大片| 中文字幕 码 自拍 视频 区| 久久受www免费人成| 天天草AV| 91精品人妻一区二区三区蜜桃臀 | 欧美精品人妻视频| 久久精品亚洲成a人天堂| 99999亚洲另类| 亚洲熟妇熟在线电影视频| 日韩性爱毛片操骚逼| 欧美草草| 桃色人妻在线视频| 116美女午夜| 欧美人妻精品一区二区| 久操免费在线| 日日骚一区二区三区| 67194无码不卡| 久99热| 久久中文字幕一区不卡| 午夜小电影在线插入淫高潮| 国产精品毛片| 久久噜| 亚洲码和欧洲精品激情系列| 97天堂| 手机在线看片免费人成视频| 中文字幕乱在线伦视频中文字幕乱码在线 | 久久人妻精品| 久久综合九九| 亚州宗合另类| 国产精品久久发布| 久草精品热视| 精品无人区麻豆乱码久久久| 人妻久热在线| 一区二区三区日韩欧美| 色婷婷综合久久久久中文一区二区 | 欧美亚洲影视| 欧美在线55555| 97天天操天天干| 亚洲射综合网| 亚州色图欧美| 中文字幕精品久久久久人妻红杏ⅰ| 江都AV在线| ,国产乱人伦精品一区二区三区| 天天干少妇| 99热超碰| 毛片久久| 亚洲全色网| 鸥美插入视频| 亚州图片第一页| 欧美性五月| 日韩欧美中文字| 日曰骚久久精品| 色情成人五月天| 大香蕉伊人75| 麻豆AV一区二区| 亚洲精品毛片在线观看| 91路www| 日韩性爱播放| 97色碰| 亚洲 欧美 小说| 中文字幕精品一区二区精| 98福利在线视频| 久久婷婷五月综合| 91久久九九精品国产综合| 少妇500双飞99| 综合自拍| 91久久久亚洲| 国产情色在线| 久久大香蕉手机高清视频| 超碰97人人cao| 熟女露脸激情自拍视频| 在线观看一卡二卡| 日本www操操操| 97超碰碰| 亚洲色图片区| 999综合色| 欧美亚洲日韩人妻在线观看| 可以在线观看的黄色网址| 无码人妻一区二区三区四区老鸭窝| 人人摸人人干| 婷婷五月天网| 殴美在线AⅤ| 亚洲欧美九九| 日韩综合97P| 久久久久久性爱片| 久久久精品,3| 久久天堂| 国产视频一区二区三区在线免费观看 | 淫荡熟女乱伦网| 欧美 亚洲 偷拍自拍| 日本污ww视频网站| 超碰资源亚洲97| 躁躁日曰躁2020| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 久久、1234| 色综合久久夜色精品国产天堂| 色爽——AV| 亚洲精品xxx| 天天爽夜夜欢视| 久久久久网站-538在线视频-欧美永久乱码 | 欧美成人性爱视频在线播放| 五月天综合网| 久婷婷一区| 3p国产色噜噜一区| 懂色av色欲av蜜臀av| 午夜精品久久久99热蜜桃的功能特点| 日本天天操| 日韩三A大片在线观看| 久久久久深夜无码| 综合天天网| 五月天婷婷久久| 国产亚洲精品美女久久久m| 精品九区| 精品久久久一本一道| 内射中出日韩在线观看视频| 岛国艾薇凹凸视频天堂| 中文字幕二区日韩天堂| 一级人妻性爱视频| 国产后入式在线观看| 欧美综合色站| 67194国产| 欧美黑人精品在线播放| 超碰97人妻在线| 色狠狠一区二区三区香蕉| 欧美日韩国产电影| 久久熟妇五十路一区| 人妻天天夜夜爽一区二区| 欧美色天堂网在线视频| 午夜亚洲| 九九久久一区二区伦理| 色色色网站| 色哟哟-国产专区| 久久久蜜桃一区二区三区| 欧美专区第一页| 中文字幕视频2区| 97超碰精品成| 亚州男人天堂| 亚洲另类小说卡通动漫| 美女黄页| 亚洲日本激情| 青娱乐黄色录像| 在线有码中文字幕| 欧美激情综合| 激情小说亚洲| 日本免费中文字幕在线| 一区操逼| 黄色网址在线免费观看| 欧美一区二区亚洲天堂| 五月天婷婷基地| 五月婷婷啪啪| 九九九九九用不成了| 熟女少妇一区二区三区| www.yw尤物| 中美日韩毛片| 加勒比99999| 亚洲天堂人妻熟妇视频| 亚洲色宗合| 中文字幕二区日韩天堂| 青青久久艹| 人人搡人人肉久久精品| 青娱乐手机日韩在线视频| 一级毛片电影免费看| 女欧美一区二三区| 久夜操| 蜜乳AV.COM| 制服少妇欧美| 国产熟女完整版中字| 中出后入| 国产高清成人传媒影视| 韩日欧亚a级| 丝袜美腿欧美| 波多野结衣之双飞调教在线播放| www.男人天堂| 2019天天干天天操| 97色网| 国产又操| 在线观看亚洲成人精品| 另类TS人妖一区二区三区 | 婷婷色网| 久久超碰天天| 婷婷五月色| 久久成人东京热人妻| 久久东京国产精品视频| 韩日欧亚a级| 国产 日韩 欧美高清| 亚洲欧美爆| 人妻啊啊人妻啊| 精品女同一区| 亚洲国产97在线精品一区| 欧日韩一二三f区| 91丝袜在线观看| 蜜臀Av一区二区三区| 久久久久久久久久黄色网 | 九九超碰综合网| 日日A∨| 青青草原人妻| 日日日啊啊啊| 伊人久久亚洲中文字幕不卡| 欧美色图下一页| 尤物av网站| 特级大荫道BBwBBwBBW| ′ !γ}丶。。久久精品欧美一区二区三区 | 台湾佬中文娱乐网久久久久久久久久com | 亚洲污污网站| 中文精品少妇天堂| 97综合激情| 欧美性夜| 丁香五月影院| 天天日少妇逼AV| 亚洲天堂男人在线| 国产精品视频电影| 亚洲区限制级| 亚洲精品久久久久久| 久99在线免费观看视频| 亚洲色天| 国产成年女人免费视频播放a| 亚洲一区在线观看欧洲| 国产高清视频无码在线| 很黄很色的视频在线观看| 国产熟女免费观看久久| 久久亚洲不卡| 青娱乐大香蕉| 亚州色图片在线色| rion磁力链接| 6080YYY午夜理论片在线观看| 天堂俺去俺来也www久久婷婷| 午夜福利精品| 超碰在线91| 毛片17S| 欧美成人综合| 九九九九九精品十六| 91n.欧美| 亚洲国产美女久久久久| 啪啪资源网| 中出91| 东北老女人的激情视频| 久久蜜桃一区二区| 成人五级久久| 97在线视频观看| 蜜桃久久久久久| 色在线69堂| 亚洲AV无码天美传媒一区| 麻豆久久久久久久久丝袜| 蘋果手機免費看成人Av| 欧美亚洲丝袜人妻制服中文99| 大香蕉欧美| 强奸乱伦大香蕉网| 久久久久日本视| 免费草草草草草视频| 中文字幕在线免费观看 | 男人天堂网站| 在线观看国产黄色| 亚洲天堂另类美腿| 国产一区二区精品在线视频| 亚洲av噜噜噜噜噜噜| 青青伊人这里只有精品| 亚洲天堂中文字幕无码男同| 国产精品69久久久久久久 | 超碰中文字幕人妻草一区| 天天看高清麻豆| 国际精品久久久| 五十路六十路素人熟女| 97干在线视频| 激情久久日韩精品中文字幕麻豆| 欧洲性爱无码区| 亚洲综合中文字幕有码| 暖暖精品二区三区观看| 漂亮人妻被强中文字幕hd| 99久久久无码国产精品性啊聊 | 啊啊啊啊好多水| av在线观看不卡网站| 激情99| 欧美日韩国内不卡| 中文一区二区| 精品国产av一区二区三区四区入口| 欧美久久伊人| 亚洲少妇色| 久久久久久无码人妻中文字幕| 中文字幕美女91| 在线播放成人网站| 亚洲玖玖爱| 久久久久亚洲av综合波多野制衣| 91超碰人人| 欧美狠狠| 国产怡红院| 好爽视频在线观看| 爱我干综合| 男人的天堂激情| 欧美色亚洲色| 日韩性爱电影一区| 97免费视频在线观看视频| 久久蜜桃一区二区| 日本日皮视频逼| 久久精品成人一区二区三区蜜臀| 久久精品国产亚洲妲己影视| 超碰97色色| 精品国模无码| 精品176精品2| 91影库| 欧美精品第四五页中文字幕在线观看| 欧美一级黄色免费专区| 超碰亚洲97| 亚洲无码日韩电影| 国产激情久久久| 欧洲亚洲少妇| 天美传媒av 在线| 97色亚洲| 国产精品熟女AV中文字幕在线播放| 黄页大片在线观看| 日本一级特级毛片视频| 久久久久久久久久久久久久久性生活视频 | 亚洲最新av无码成人精品区| 国产第二页| 国产乱伦亚洲| 中文字幕无码不卡啪啪| 97天堂| 精品十八在线观看| 人人人人人人少妇| 亚欧性爱无码| 四虎影视国产精品| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久久久啊啊| 葡萄牙性视频一二区| 亚洲精品丝袜-不卡成人免费……| 78操B| 日韩一999精品| 一级日本牲交大片好爽在线看| 日本三级大片| 嫩草美女久久| 欧美人妻一区二区| 人妻天堂综合网| 性饥渴少妇av无码毛片| 9ⅰ久久久天天| 亚洲精品99| 18禁看网站一区| 欧美激色| 国产欧美日韩在线观看麻豆传媒公司| 美腿丝袜高跟网免费视频免费视频| www.yeyecao| 亚洲欧美另类少妇精品| 极品美女福利在线观看| 我要色综合网| 欧美亚洲国产日本在线,久久精品国产| 国产树林里野战在线看| 国产91福利小视频在线观看| 97中文综合| 伊人网在线观看| 免費黃色視頻觀看一| 凹凸视频在线一区二区| 蘋果手機免費看成人Av| 日本有码久久| 国产福利小视频高清在线观看| 易易A毛视频| 中文字幕一区二区三四五区日日骚| 久久激情网| 免费av在线播放二区| 国产美女91| 97这里只精品| 亚洲精品一二三四区| 久久久精品视频免费观看| 你懂的在线观看区国产| 97超级久久| 99精品久久久久久| 亚洲欧洲另类| 乱色视频中文字幕| 国产女人极品高潮毛片| 久久大| 欧美一级二级三级| 熟女91网| 五十路二区在线| 国产自偷自拍一区| 亚洲古典另类欧美在线| 翔田千里无码中出中文字幕| 97免费视频在线观看| 欧美性色欧美| 亚洲精品日韩国产欧美| 亚洲蜜乳av| 自拍偷拍草一草| 国产精品女aA片爽爽视频| 999久久久久久久久| 97在线观看免费视频l| 97国伦国色| 淫色网综合| 女优免费一区二区永久| 婷婷五月天综合网| 婷婷激情五月| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 中国黑人三级片网站上区| 婷婷伊人一区| 91色鬼| 91是天天| 2025亚洲男人天堂| 亚洲aw毛茸茸在线| 午夜性| 大香蕉天天看妹子| 老熟妇一区二区三区啪啪| 中 文字幕一区二区三四 五 区日 日 骚 | 亚洲av影音先锋| 亚洲精品xxx| 精品国产乱码| 亚洲欧美日韩精品久久久一区二区| 国产日韩区| 最新国内自拍av免费| 欧美性爱无码一区二区三区| 欧美日韩在线国产在线| 久操网线| 麻豆啪啪啪视频| 人妻22p| 99热综合| 日本熟女不卡视频| 亚洲最新av无码成人精品区| 欧美经典一区二区三区| 国产精品无码在线| 久久午夜伦| 欧美成人性爱视频大全| 任你艹| 男人的天堂.com| 综合网久久| 天美传媒在线一区| 日日日骚女人精品| 精品少妇高潮久久| 青草精品视频日本久久久久网站在线| 亚洲九九九九| 国产亚洲女v在线观看| 日本性爱不卡视频| 五月丁香六月| 青娱乐手机日韩在线视频| 久操av在线| 欧美精品黑人猛交高潮| 亚洲一区二区久久久久| 超碰99在线观看| 国产九九久久久精品| 91性| 天美传媒婬乱在| 欧美传媒| 可以免费观看的av| www亚洲免费| av2014 日韩在线中文字幕| 熟妇人妻精品一区二区| 久久这里只精品免费福利| 中文字幕精品日韩中文字幕| 色999亚洲人成色| 在线女人91| 色狠人在线99| 蜜桃久久一区| 911av网站免费观看| 大香蕉97久久| 中文子幕一二三| 秋霞 色色| 日韩成人精品视频自拍| 欧美一级美片在线观看免费| 人妻日日干| 中文高清一区二区的| 色香欲天天天天综合色| 日本一二三免费久久| 一级特黄aaa大片在线观看成人一级片在线观看 | 日韩国产中文字幕| 色香伊人| 日韩成人私密一级精品av| 亚洲操人| 高清肉丝中文无码| 农村女一级毛卡片| 一区二区激情国产熟女| 中出在线视频| 国产美女高潮| 成人贴图日韩欧美| 欧美亚州综合网图片| 亚洲美女自拍偷拍视频| 中文幕97| 亚洲黄色视频在线观看视频| 色欧美天天| 丝袜美腿丝袜| www.激情| com 首页 18岁 禁区 女优 免费 精选 同城 | 国产男人又猛又粗又爽| 久久伊人青青草| 国产精品美女视频诱惑| 五月丁香影视| 精品人妻一区二区三区鲁大师| 黄色网址在线免费观看| 久久999久| 热久久国产| 日韩人妻少妇中文字幕| 上特色A在线| 六月激情网| 国产青青综合伊人| 日本3级一区二区免费| 9997se| 国产熟女完整版中字| 四虎在线播放| 国产高清26uuu| 狠狠躁天天躁日日躁97| 日韩卡一卡二卡三在线| 2003天天干夜夜操| 国产免费久久久久| 一本一道久久综合久久| 日本岛国黄色网址| 91操熟妇| 久久久久夜夜夜夜| 久久久久久久少妇| 福利视频香蕉免费一区二区在线| 久久侵犯人妻爽爽爽| 2019天天干| 国产夫妻一区二区| www.99色| 人妻熟女一区二区| 欧美性爱精品一区二区| 日本一线产区和二线产区伦理片| 久久香蕉国产传媒一区剧情天美| 亚洲高清综合网| 国产亚洲精品自在线亚洲情侣| 亚洲丝袜在线观看| 美女啊啊啊啊啊啊啊| 综合激情二| 久久久久久久久久久久九| 日本性爱不卡视频| 91亚洲欧美激情| 久久不卡一区二区 | 亚州男人天堂| 少妇国产不卡| 肏逼视频日本| 韩国嫰模上门援交视频| 一区二区三区精品黑丝白丝酒店对鸡| 九九综合九九综合| 四虎在线播放| 先锋精品av色鲁| 亚洲一区二区三区春色| 亚洲精品蜜桃久久久久久久| 激情综合久久| 亚洲网站一区二区在线| 观看视频图片一区二区三区| 青青伊人这里只有精品| 亚洲一区二区av| 搞中出视频在线观看| 国产av美女被艹的乱叫| 国产综合久久久麻桃个| 美女干逼2| 五月综合激情| 亚洲国产av中文字幕久久 | 麻豆影音天美视频| 欧美日韩性爱视屏免费看了| 久久亚洲不卡| 国产一级不卡在线观看| 日本大香蕉综合网| 色娱乐色呦呦夜夜夜夜av| 国产 码在线成人网站| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 日韩精品国产一区二区| 天美传媒婬乱在| 精品久久大胆人体| 麻豆天美国美国产| 天天色综合天天操| 亚洲天天做日日做天天谢日日| 欧美青青视频| 国产欧美一区二区| 97人人操人人摸人人爱| 欧美乱伦专区| 91 天天综合| 91精品国产乱码| 色女99一级片在线观看| 亚洲激情网一二三四区| 播播亚洲小说亚洲| 日韩性爱啪啪视频| 亚洲欧美另类小说| 搡老熟女国产1000部| 动漫区日韩区欧美区| 久久久久久人妻| 日韩免费看黄片| 国产亚洲一黄| 3d成人精品一区二区| 97色碰| 久九色| aV中文麻| 很很很很操| 夜草欧美| 区一二区日韩亚洲乱码av电影| 婷婷在线精品| 亚洲精品成人| 人人干人人操人人..com| 日韩人妻播放| 日本1区2区不卡视频| 蜜臀久久99精品久久久久| 天天92av| 欧美精品一二三| 久久久一二三四区| 欧美综合中文| 激情九月婷婷| 激情视屏国产乱伦强奸| 欧美性爱中文字幕无线码| 日韩有码 一区二区三区| 超碰在线人人射| 啊v在线观看视频| 久久久久久999| 2020中文字幕在线观看| 一区二区三区看视频| 91国产丝袜白虎| 九九热只有精品| 欧洲一区二区| 亚洲久9| 操逼操2| 韩国手机不卡无码三级视频| 国产精品爱欲| 欧美日韩不卡a片| 强歼乱伦资源网| 综合欧美日本三级| 欧美一区二区三区互相| 芊芊操逼视频无码| 69精品久久久久中文字幕| 狠狠色综合网| 91校园春色长篇| 男人的天堂网免费| 国产精品网站免费| 色综合久久夜色精品国产天堂| 成人一级二级| 午夜美女诱惑电源网| 99热销国产这里有精品| 国内毛片欧美香蕉精品| 久久久久久69国产一区二区| 91精品人妻电影| 偷窥自拍亚洲天堂网爆| 发朗少妇买婬全视频中文| 第四色亚洲色图| 超碰免费欧美7| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 男人天堂新| 蜜乳视频网站| 免费啪啪啪网站18岁| 欧美男人一区| 极品五月天噜噜| 日韩电影天堂视频二区三区| 久久人妻一区二区三区高清| 国产精品99999| 日韩在线性爱免费视频| 婷婷色中文字幕| 日本不卡码黄色 | 九九色热| 伊人国产视频| 香蕉久久国产AV一区二区| 九九久久久久久爱| 欧美日韩亚洲国产中文永久天天看| 九九九九九九九九九国产精品 | av2014 日韩在线中文字幕| 亚洲色图欧美色图另类图片| 奇米四色网| 91Chinese在线| 操人妻逼91| 9丨久久九九九| 先锋色眉乱伦资源| 江都AV在线| 超碰97人人乐| 精品国产三级av韩国在线| 日韩啪啪视频| 午夜精品久久久久久久99热影院| 精品免费囯产一区二区三区| 一级日本牲交大片好爽在线看| 日本中文字幕在线视频 | 中文字幕一二区二三区人妻专区| 婷婷91| 亚州高清av| 国产精品久久久吖| 久久综合九九| 无码人妻丰满熟妇区毛片| 不卡av免费在线网址| 激情五月综合网| 精人妻无码一区二区三区伊人直播| 在线αⅴ| 女优免费一区二区永久| 久久久久久久综合,国产| 国产日韩区| 强上我不卡卡| 麻豆久久精品亚洲精品88| 天天干天天操天天干天天操| 中文字幕78| 超碰97人妻免费在线| 思思热在线| 日韩精品亚洲一二三| 乱伦图一区| 色超碰综合| 婷婷激情四射| 激情深爱五月天| 欧美另类天堂| 激情视屏国产乱伦强奸| 九九九九九九视频| 国产熟女完整版中字| 伊人青青草久久| 欧美岛国精品在线观看| 99久久这里只有精品| 精品一级| 亚洲一区二区三区久久 亚洲一区二区| 日本不卡免费二区| 色五月综合网| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 超碰免费人妻人人| 97色爱| 无码一区免费在线不卡| 国产精品对白内射| 9色国产精品一区粉嫩| 久久婷婷国产一区二区色| 亚州综合在线| 99热97| 精品久久久久久AV无码| 国产天天骚| 国产主播福利| 99久久综合| 久草网站免费在线观看| 午夜视频久久久| 免费在线观看国内色片网站网址| 97av,com| 色婷婷影视| 久久久久久97| m欧洲一级午老| 综合欧美激情网| 九九九久久久久| 强免费黄色网址| 9久久精品| 97超碰天天爱天天爱| 亚洲小电影免费涩涩成人在线高清| 日本久久综合| 在线观看国产黄色| 97在线视频免费| 9 7超碰在线免费观看| 超碰97中文| 玖玖爱一区在线| 国语av最新自产拍在线观看| 一本久道久久综合狠狠爱一密臀精| 亚洲午夜免费狠狠干| 97人人夜| 女一区二区| 嫩草一区二区在线观看| 日韩啪啪视频| 国产五码丝袜屁眼| 99热精品在线观看| a片在线播放| 久热99999| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 欧美成人性爱视频大全| 精品福利| 91影视亚洲| 久操99| 国模吧 一区二区三区| 女人综合网| 九九九九免费视频| 日韩偷拍色图| 日欧亚洲二三区大片不卡| 欧美性性性| 综合九九| 荡小穴在线观看| 亚洲AV永久无码一区仙野| 超碰在线人妻中文字幕| 另类欧美| 欧美三级免费伊人| 超碰免费在线| 亚洲暴力强奸AV| 色综合加勒比| 97超碰色屌| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 91亚洲色人| 久久97视频| 亚洲图片 激情小说| 久久黄黄| 欧美精品日韩一区二区| 91丨九色丨国产丨人妻在线| 亚洲熟女综合网| 美熟女逼导航AV操逼| 亚洲精品 超碰| 国内外色色色色色成人视频| 浪人综合网| 老熟女乱伦一区| 久欲AV| 日本高清加勒比| 中文字幕加勒比海高清无码免费视频 | 色综合1991| 九九英色视频| 男人的天堂激情| 亚洲激情网一二三四区| 久草视频分类在线| 欧美另类精品xxxx| 久久久久免费看少妇A片特黄| 日日爱99| 97超碰色色| 久久久久久久唑| 婷婷10月天青娱乐| 四虎影视国产精品| 91N综合网在线| 精吧天堂| 粉嫩久久久久| 久久婷婷欧美| 1区2区3区中文字幕日韩| 韩国轻伦国内自拍一区| 麻豆久久视频在线地址| 玖玖人人爱| 欧美九9 9 9| 蜜桃色色网站视频三区| 992这里有精品| 97资源制服丝袜| 婷婷五月天av| 麻豆天美久久91| 嗯嗯啊中文字幕| 日韩97视频!在线| 天天爽爽爽爽| 人妻在线中出视频| 人妻日日夜夜精品| 自拍二页| 青青草啪啪网| 破处bbq| 日韩BBN| 久久人妻熟女一区二区| 96久久久久久久| 淫荡网址| 日本一级特级毛片视频| 奇米四色网| 1级午夜影院费免区| 3P乱轮视频| 美女国产一区二区久久| 日韩午夜啪啪视频| 99久久99久久综合| 91狠狠综合久久久| 天天爽爽爽爽| 日韩二三区| 韩日精品福利视频一区不卡在线免| 国产AV人人夜夜澡人人爽麻豆| 二级毛片| 男人久久天堂| a片在线播放| 久久久无码av精| 久久xxxx| 色女综合| 久久熟女久| 久久精品久久久久久久| 亚洲无 码A片在线观看麻豆| 亚洲国产精品无码AV久久久| 岛国毛片在线观看免费| 午夜精品视频777| 亚洲欧美激情另类色图| 国产青视频| 后入式五六区| 天天日天天干天天操| 日韩一级性爱无码| 美女黄频a美女大全免费皮| 九九热精品| 久久激情五月| 超碰97色色| 中文字幕福利视频一区二区三区在线观看| 精品对白久久不卡| 亚洲欧美日韩免费电影| 色欲天天综合网| 四虎国产成人精品免费一女五男| 日本加勒比无码专区一二三| 加勒比伊人| 欧美日韩操操操| 中日无幕一二三四区| 成人色女网| 97网址97| 超碰97久久| 性爱视频免费网址| 九九AV| www.男人天堂| 色悠久| 久久九九网| 国产av热热色| a亚洲欧美色欲| 国产成人久久久精品免费AV| 日韩精品9999| 天堂性色| 亚洲精品国产精品乱码不99| 日本一区二区三区精品| 花花AV导航| 成人八戒网站| AV在线资源| 欧美日韩在线视频网站| 伦理片秋霞免费影院| 嗯嗯啊好大| 蜜臀久久99精品久久久电影| 91干熟女| 性交一区二区在线播放| 欧美日韩国产一区二区小黄片大全| 九九无码视频| 日韩二区三四区五区六区在线看| 麻豆三极片| 午夜精品久久久久久久男人的天堂 | 亚洲精品视频在线播放| 狠狠躁日日躁夜夜躁A| 日本国产欧美一区三区二区| 另类图片五月| 亚洲国产97在线精品一区| 中文字幕91页| 97伪v| 強姦亂倫a| 密臀在线免费观看| 亚洲国产天堂| 香蕉久久国产AV一区二区| 啊啊啊啊好大好硬啊啊啊啊啊| 亚洲AV秘无码一区..| 99少妇精品视频| 91老熟女| 国内自拍 日韩激情 99| 啊啊啊 在线| 中文字幕一区日韩精| 懂色av中文字幕一区二区三区天美| 日本 色 导航| 亚洲免费97免费| 亚洲综合另类小说色区亚洲成av人片在www | 激情小说图片亚洲首页| 欧美黑人与女人91~| 日韩性爱长视频免费| 久操视频免费在线观看| 日本天天干天天操一区| 2020视频1区2区3区| 久久久久久九九九九九| 夜夜一区二区| 蜜臀Av一区二区三区| 2010男人的天堂| 综合网亚洲| 91扒丝袜综合在线| 国产又黄又粗的视频| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 超碰色综合| 亚洲国产剧情少妇激情| 99这里只有精品国产| 老鸭窝日丰县女人| 日韩成人综合网| 亚洲天堂男人天堂| 真实高潮91| 国产精品干干干| 另类图片五月天| 日本一区三级韩国| A级在线视频| 中文字幕文字幕无码一区二区三区电影99| 中日韩久久久| 欧美啪啪天堂| 人妻少妇蜜桃视频欧美一区| 以及麻豆国产入口在线观看免费| 欧美精品 - 91爱爱| 久久三| 男人的天堂99| 97久久精品国产| 国产精品视频白浆免费| 四虎av在线| 午夜欧美J进J出白浆流出久久久| 国产a片操逼| 黑白配性爱AV成| 亚洲激情av| 国产亚洲深夜激情| 熟妇无码视频三区| 欧美亚洲日韩人妻在线观看| 亚洲成人黄色在线观看| 日韩美女高潮喷水视频| 日本肉体xxxx裸交| 天天射天天操天天干天天吃2018| 人人妻人人操人人乐| 日本Xx性爱| 国产日韩久久| 亚洲吊色| 综合网欧美在线| 久久精品久久九九精品| 999精品女人| 综合网97| 人人摸人人干| 少妇干B| 在线亚洲欧美| 99在线精品观看视频中文| a人欧美综合天堂麻豆| 色香色欲天天综合网天天来吧| 日韩欧美亚洲自拍偷拍| 蜜臀无码一区二区| 78p欧美| av日韩在线观看电影| 久久超碰日韩精品| 97少妇人妻中文字幕久久| 欧美乱色| 久久HD| 九九综合九九综合| 东北女人高潮视频| 天天操美美| 97香焦色区| 国产亚洲色婷婷久久99精品91| 蜜臀久久99精品久久久久久酒店| 男人天堂免费| 国产极品久久久| 超碰国产在线| 人人操人人操草草| 三男一女不戴套的A片| 99热销国产这里有精品| 尤物视频网 刘玥| 青青草吊丝| 嗯嗯嗯啊啊啊在线免费观看| 国产中文字幕在线点播| 日本人妻最新在线中| 校园春色AV天堂| 亚洲日本天堂| 综合97亚洲| 夂久色| www.99视频| 免费毛片在线播放| 五月婷婷六月丁香网址| 国产一区二区成人av在线播放| 97亚洲在线| 91亚洲最新在线| 91 亚欧| 亚洲诱惑天堂| 大香蕉色欲AV| 国产女人9999| 99蜜桃臀亚洲成人在线观看| 欧美在线伊人色| 国产欧美日韩在线观看麻豆传媒公司| 色五月综合网| 99操| 亚洲天堂99| 99久在线精品99re8热| 亚洲一区日韩| 五月天玖玖资源站| 久久精品亚洲成a人天堂| 新亚洲无码| 一级做a爰片性色毛片久久| 玖玖爱影院| 亚洲各类熟们中文字幕| 国产精品一级片在线看| 日韩中文字幕精品一区在线| 麻豆国产视频精品观看| 91国产操逼视频| 岛国黄片网站| 黑人美精品 A片| 中文字幕精品一区二| 97在线视频观看网站| 日韩啪啪视频| 91在线视频国产网站| 一级做受视频免费是看美女| 亲子敌伦对白在线播放| 国产精品不卡av免费在线观看| 蜜乳中文字幕a在线| 摸奶性爱视频网站在线免费播放| 日本操逼视频不卡直接放| 99热在线播放| 高清国产无码av| 欧美一区二区三区蜜桃| 一区二区三区免费岛国片| 996热| 大稥蕉免费视频这里只有精品| 欧美午夜精品久久久久久3D | 超碰95| 激情五月综合开心五月| 午夜福利av电影在线| 欧美经典一区二区三区| 欧美性爱五月天| 在线观看十八禁| 天天综合影院91| 天天影视网色欲色香| 一级免费啪啪片| 中文久久爆乳| 欧插网站| 粉嫩久久久久| 中文字幕av一区二区三区人妻少妇 | 思思热在线| 九九热超碰97亚洲最新香蕉| 91国产伊人大香蕉| 伊人91| 国产91啪| 久久极品一区二区| 亚洲人妻熟妇三十三区| 日韩欧美~中文字|