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

ARTICLE DETAIL

資訊詳情

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

JSP+Servlet賓館管理系統(tǒng):JavaWeb期末作業(yè)實(shí)現(xiàn)與避坑指南

JSP+Servlet賓館管理系統(tǒng):JavaWeb期末作業(yè)實(shí)現(xiàn)與避坑指南 簡(jiǎn)介這是一款采用JavaWeb技術(shù)棧開發(fā)的賓館管理系統(tǒng)源碼運(yùn)行環(huán)境包括MySQL數(shù)據(jù)庫(kù)、IDEA開發(fā)工具、Tomcat服務(wù)器頁(yè)面與邏輯分別基于JSP和Servlet技術(shù)實(shí)現(xiàn)。項(xiàng)目面向計(jì)算機(jī)相關(guān)專業(yè)學(xué)生的期末作業(yè)與課程設(shè)計(jì)適合需要快速搭建管理系統(tǒng)或完成實(shí)訓(xùn)任務(wù)的在校學(xué)生。壓縮包大小22.34MB包含1370個(gè)文件其中主要文件類型有JSP視圖頁(yè)面、Java業(yè)務(wù)源碼、Servlet控制類、編譯后的class字節(jié)碼、前端樣式與交互腳本、數(shù)據(jù)庫(kù)建表腳本以及XML配置文件完整覆蓋了表示層、業(yè)務(wù)層與數(shù)據(jù)層目錄結(jié)構(gòu)清晰便于按模塊研讀與二次開發(fā)。系統(tǒng)已實(shí)現(xiàn)客房信息管理、預(yù)訂訂單處理、會(huì)員檔案維護(hù)等核心功能界面簡(jiǎn)潔美觀操作流程直觀代碼包含詳細(xì)注釋新手可以理解關(guān)鍵邏輯附帶的文檔說(shuō)明也能幫助讀者快速完成部署并運(yùn)行到Tomcat上省去從零搭建的麻煩。資源已有375人學(xué)習(xí)下載可作為期末大作業(yè)、課程設(shè)計(jì)的高分參考實(shí)用性強(qiáng)也方便按照自身需求擴(kuò)展改造。1. JSPServlet 賓館管理系統(tǒng)JavaWeb 期末作業(yè)最快落地的那一套做 JavaWeb 期末作業(yè)最怕的不是不會(huì)寫代碼而是選錯(cuò)技術(shù)棧、裝錯(cuò)環(huán)境、交上去一個(gè)跑不起來(lái)的半成品。這套基于 MySQL IDEA Tomcat JSP Servlet 的賓館管理系統(tǒng)我拆完之后最大的感受是它把課程設(shè)計(jì)里最容易扣分的那幾塊——登錄鑒權(quán)、房間狀態(tài)流轉(zhuǎn)、訂單日期計(jì)算、后臺(tái)管理——全部用最經(jīng)典的原生 Servlet 實(shí)現(xiàn)了沒有花哨框架每一行都能在答辯現(xiàn)場(chǎng)講清楚。源碼里帶完整注釋和文檔說(shuō)明新手不用猜每個(gè)類是干什么的打開就知道哪段對(duì)應(yīng)哪個(gè)功能。適合拿去做期末大作業(yè)、課程設(shè)計(jì)或者只是想搞明白 JSP Servlet 到底怎么協(xié)作的人。2. 項(xiàng)目結(jié)構(gòu)與技術(shù)選型五個(gè)核心類如何撐起前臺(tái)到后臺(tái)2.1 為什么這個(gè)項(xiàng)目適合課程設(shè)計(jì)很多同學(xué)一上來(lái)就想用 Spring Boot但期末作業(yè)的評(píng)分標(biāo)準(zhǔn)往往不是你用了多新的框架而是你能不能講清楚請(qǐng)求怎么進(jìn)來(lái)、數(shù)據(jù)怎么查、頁(yè)面怎么渲染。Servlet JSP 這套組合雖然老卻是 JavaWeb 的根基老師最熟悉也最容易在答辯時(shí)給出高分。這套賓館管理系統(tǒng)的類文件集中在幾個(gè)關(guān)鍵類上LoginServlet、TraverseDate、Query、ServiceManage、OrderView從名字就能看出它的職責(zé)劃分——登錄驗(yàn)證、日期遍歷、數(shù)據(jù)查詢、服務(wù)管理、訂單視圖每個(gè)類對(duì)應(yīng)一個(gè)明確的功能模塊代碼量適中注釋齊全新手照著讀就能理清 MVC 的脈絡(luò)。技術(shù)選型上MySQL 負(fù)責(zé)數(shù)據(jù)持久化Tomcat 負(fù)責(zé)運(yùn)行環(huán)境IDEA 負(fù)責(zé)開發(fā)調(diào)試JSP 負(fù)責(zé)頁(yè)面展示Servlet 負(fù)責(zé)請(qǐng)求處理。這套組合的好處是沒有太多隱性的依賴配置只要版本匹配跑起來(lái)非常穩(wěn)。我見過(guò)太多期末項(xiàng)目死在框架版本沖突上而這個(gè)項(xiàng)目用的全是 JavaWeb 最基礎(chǔ)的組件任何一本教材里的環(huán)境配置步驟都能適用排查起來(lái)也容易。2.2 核心類文件與功能模塊映射拿到資源后先別急著啟動(dòng)花十分鐘把類文件對(duì)應(yīng)到功能模塊后面調(diào)試會(huì)省很多事。我拆解后的對(duì)應(yīng)關(guān)系如下類文件對(duì)應(yīng)的功能模塊關(guān)鍵職責(zé)LoginServlet管理員登錄接收賬號(hào)密碼、校驗(yàn)數(shù)據(jù)庫(kù)、寫入 SessionTraverseDate日期計(jì)算引擎遍歷入住到退房日期、計(jì)算住宿天數(shù)與房費(fèi)Query數(shù)據(jù)查詢門戶房間信息查詢、訂單狀態(tài)查詢、客戶信息檢索ServiceManage后臺(tái)服務(wù)管理服務(wù)項(xiàng)目增刪改、價(jià)格調(diào)整OrderView訂單視圖層訂單展示、狀態(tài)流轉(zhuǎn)、明細(xì)查看這個(gè)結(jié)構(gòu)的巧妙之處在于每一層都只做一件事。LoginServlet 只負(fù)責(zé)登錄不摻業(yè)務(wù)邏輯TraverseDate 只算日期不碰數(shù)據(jù)庫(kù)Query 只做查詢不做修改。這樣的拆分讓答辯時(shí)可以非常清晰地回答老師的問(wèn)題「你這個(gè)訂單金額是怎么算出來(lái)的」——打開 TraverseDate邏輯一目了然。2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)的四張核心表項(xiàng)目對(duì)應(yīng)的數(shù)據(jù)庫(kù)設(shè)計(jì)也是課程設(shè)計(jì)標(biāo)準(zhǔn)答案級(jí)別的。表結(jié)構(gòu)大致分為四張管理員表t_admin、房間表t_room、訂單表t_order、服務(wù)表t_service。房間表和訂單表通過(guò)房間號(hào)關(guān)聯(lián)訂單表記錄了入住時(shí)間和退房時(shí)間服務(wù)表記錄額外的消費(fèi)項(xiàng)目。表結(jié)構(gòu)的設(shè)計(jì)思路很實(shí)用管理員表只存賬號(hào)密碼房間表存房間號(hào)、類型、價(jià)格、狀態(tài)訂單表存客戶姓名、房間號(hào)、入住日、退房日、總金額服務(wù)表存服務(wù)項(xiàng)目名稱和價(jià)格。四張表沒有任何冗余字段外鍵關(guān)系簡(jiǎn)單SQL 查詢不會(huì)出現(xiàn)復(fù)雜的多表關(guān)聯(lián)對(duì)剛接觸數(shù)據(jù)庫(kù)的初學(xué)者來(lái)說(shuō)非常友好。-- 訂單表核心字段示例 CREATE TABLE t_order ( order_id INT PRIMARY KEY AUTO_INCREMENT, customer_name VARCHAR(50) NOT NULL, room_id INT NOT NULL, checkin_date DATE NOT NULL, checkout_date DATE NOT NULL, total_amount DECIMAL(10,2) DEFAULT 0, order_status VARCHAR(20) DEFAULT 已入住, create_time DATETIME DEFAULT CURRENT_TIMESTAMP );這段建表 SQL 里有兩個(gè)字段值得注意total_amount 默認(rèn)值為 0原因是訂單創(chuàng)建時(shí)可能還沒退房金額需要根據(jù)實(shí)際住宿天數(shù)計(jì)算后更新order_status 用字符串而不是數(shù)字是為了讓 JSP 頁(yè)面直接展示「已入住」「已退房」這樣的中文狀態(tài)省去前端再做一次狀態(tài)映射。這種設(shè)計(jì)很貼合課程設(shè)計(jì)場(chǎng)景——簡(jiǎn)單、直觀、答辯時(shí)不用繞彎子解釋狀態(tài)碼含義。3. 從零部署IDEA Tomcat MySQL 的三件套配置與運(yùn)行驗(yàn)證3.1 MySQL 版本與編碼設(shè)置的第一個(gè)坑部署的第一件事是準(zhǔn)備數(shù)據(jù)庫(kù)。項(xiàng)目是圍繞 MySQL 設(shè)計(jì)的建議直接用 MySQL 5.7 或 8.0 版本。裝好之后不要急著導(dǎo)入數(shù)據(jù)先把字符集設(shè)置好否則 JSP 頁(yè)面顯示中文會(huì)變成問(wèn)號(hào)。我一般會(huì)在 MySQL 配置文件里加上默認(rèn)字符集配置然后重啟服務(wù)再創(chuàng)建數(shù)據(jù)庫(kù)。# 創(chuàng)建數(shù)據(jù)庫(kù)時(shí)強(qiáng)制指定字符集 CREATE DATABASE hotel_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;這里用 utf8mb4 而不是 utf8是因?yàn)樵?MySQL 8.0 里 utf8 實(shí)際上是 utf8mb3遇到一些特殊符號(hào)存不進(jìn)去。課程設(shè)計(jì)項(xiàng)目雖然大概率用不到 emoji但統(tǒng)一用 utf8mb4 可以避免一個(gè)隱藏的中文亂碼問(wèn)題——尤其是 JSP 頁(yè)面提交表單后往數(shù)據(jù)庫(kù)寫入中文編碼鏈路差了任何一環(huán)都會(huì)亂。字符集設(shè)置好后再導(dǎo)入項(xiàng)目附帶的 SQL 文件順序不能反。Tomcat 版本建議用 Tomcat 9對(duì)應(yīng) Servlet 4.0 規(guī)范和項(xiàng)目里的 Servlet 代碼兼容性最好。我遇到過(guò)不少同學(xué)裝 Tomcat 10 跑老項(xiàng)目結(jié)果所有 javax.servlet 包名全部報(bào)錯(cuò)因?yàn)?Tomcat 10 換成了 jakarta.servlet這是版本換代引起的包名遷移問(wèn)題。項(xiàng)目源碼里用的是 javax.servlet配 Tomcat 9 就能完美避開。3.2 IDEA 中配置 Tomcat 的運(yùn)行三步走在 IDEA 里跑這個(gè)項(xiàng)目關(guān)鍵是把 Tomcat 和 Web 項(xiàng)目正確關(guān)聯(lián)。很多同學(xué)在這里翻車是因?yàn)闆]有把項(xiàng)目打成 Artifact 部署到 Tomcat 的 webapps 目錄導(dǎo)致啟動(dòng) Tomcat 后訪問(wèn) 404。# 第一步確保項(xiàng)目結(jié)構(gòu)里有 src/main/webapp 目錄 # IDEA 中右鍵項(xiàng)目 - Add Framework Support - 勾選 Web Application # 第二步配置 Artifact # File - Project Structure - Artifacts - 點(diǎn)擊 - Web Application: Exploded # 第三步配置 Tomcat # Run - Edit Configurations - 點(diǎn)擊 - Tomcat Server - Local # 在 Deployment 標(biāo)簽頁(yè)添加 ArtifactApplication context 填 /hotel這里我詳細(xì)解釋一下第二步和第三步背后的邏輯。IDEA 運(yùn)行 Tomcat 時(shí)并不是直接把項(xiàng)目文件夾丟給 Tomcat而是先打包成一個(gè) Artifact可以理解為編譯后的 Web 項(xiàng)目快照再放到 Tomcat 的容器里執(zhí)行。所以 Artifact 配置錯(cuò)了即使 Tomcat 正常啟動(dòng)頁(yè)面依然訪問(wèn)不到。Application context 填 /hotel意味著訪問(wèn)路徑是 http://localhost:8080/hotel/如果留空則是根路徑。我習(xí)慣填上項(xiàng)目名因?yàn)榇疝q演示時(shí) URL 更直觀。3.3 JDBC 連接的敏感參數(shù)配置項(xiàng)目里的數(shù)據(jù)庫(kù)連接方式是 JDBC通常在 db.properties 文件或工具類里配置連接參數(shù)。打開配置重點(diǎn)檢查四個(gè)參數(shù)驅(qū)動(dòng)類、連接地址、用戶名、密碼。// 數(shù)據(jù)庫(kù)連接工具類核心代碼 public class DBUtil { private static final String DRIVER com.mysql.cj.jdbc.Driver; private static final String URL jdbc:mysql://localhost:3306/hotel_db ?useSSLfalseserverTimezoneAsia/Shanghai; private static final String USER root; private static final String PASSWORD 123456; public static Connection getConnection() throws SQLException { try { Class.forName(DRIVER); } catch (ClassNotFoundException e) { e.printStackTrace(); } return DriverManager.getConnection(URL, USER, PASSWORD); } }注意 URL 里的兩個(gè)參數(shù)useSSLfalse 是必須加的因?yàn)?MySQL 8.0 默認(rèn)開啟 SSL 連接而 Tomcat 本地調(diào)試時(shí)的 SSL 握手經(jīng)常出問(wèn)題報(bào)錯(cuò)信息很迷惑實(shí)際原因就是證書校驗(yàn)失敗serverTimezoneAsia/Shanghai 則是解決日期時(shí)間類的時(shí)區(qū)偏移問(wèn)題不加這個(gè)參數(shù)從數(shù)據(jù)庫(kù)取出 Date 類型時(shí)會(huì)出現(xiàn) 8 小時(shí)誤差導(dǎo)致入住日期和退房日期的天數(shù)計(jì)算全部錯(cuò)位。密碼部分如果你是本地 root 用戶且沒改過(guò)密碼保持 123456 或電腦上實(shí)際的 root 密碼即可。數(shù)據(jù)庫(kù)連接的成功驗(yàn)證方式很簡(jiǎn)單——運(yùn)行一個(gè) main 方法調(diào)用 getConnection()不拋異常就說(shuō)明通了。4. 核心代碼逐段拆解登錄、日期遍歷與訂單查詢的實(shí)現(xiàn)細(xì)節(jié)4.1 LoginServlet 的登錄校驗(yàn)與 Session 管理登錄功能是每個(gè)期末作業(yè)的標(biāo)配但細(xì)節(jié)差異很大。這個(gè)項(xiàng)目的 LoginServlet 寫法非常規(guī)范接收前端 JSP 表單提交的 username 和 password調(diào)用 Query 類去數(shù)據(jù)庫(kù)比對(duì)成功后把用戶信息存入 Session再跳轉(zhuǎn)到主頁(yè)面失敗則返回登錄頁(yè)并附帶錯(cuò)誤提示。WebServlet(/login) public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding(UTF-8); String username request.getParameter(username); String password request.getParameter(password); // 調(diào)用查詢層驗(yàn)證賬號(hào)密碼 Query query new Query(); Admin admin query.findAdminByUsernameAndPassword(username, password); if (admin ! null) { HttpSession session request.getSession(); session.setAttribute(currentAdmin, admin); response.sendRedirect(request.getContextPath() /index.jsp); } else { request.setAttribute(errorMsg, 賬號(hào)或密碼錯(cuò)誤); request.getRequestDispatcher(/login.jsp).forward(request, response); } } }兩個(gè)關(guān)鍵細(xì)節(jié)doPost 里的 setCharacterEncoding(UTF-8) 必須放在讀取參數(shù)之前否則表單提交的中文用戶名會(huì)亂碼登錄成功用 sendRedirect 而不是 forward 跳轉(zhuǎn)是為了避免用戶按下 F5 刷新時(shí)重復(fù)提交登錄請(qǐng)求。Session 中存的是 Admin 對(duì)象而不是用戶名這樣主頁(yè)面可以直接從 session 里取出管理員詳細(xì)信息進(jìn)行展示不用再次查詢數(shù)據(jù)庫(kù)。實(shí)際測(cè)試中發(fā)現(xiàn)如果登錄失敗用 forward 返回 login.jsp頁(yè)面上給出的錯(cuò)誤提示能正常顯示這個(gè)設(shè)計(jì)我很喜歡——錯(cuò)誤提示通過(guò) request 域傳遞跳轉(zhuǎn)一次就能看到。// 查詢層方法注意密碼比對(duì)方式 public Admin findAdminByUsernameAndPassword(String username, String password) { Connection conn null; PreparedStatement ps null; ResultSet rs null; try { conn DBUtil.getConnection(); String sql SELECT * FROM t_admin WHERE username? AND password?; ps conn.prepareStatement(sql); ps.setString(1, username); ps.setString(2, password); rs ps.executeQuery(); if (rs.next()) { Admin admin new Admin(); admin.setId(rs.getInt(id)); admin.setUsername(rs.getString(username)); return admin; } } catch (SQLException e) { e.printStackTrace(); } finally { closeResources(rs, ps, conn); } return null; }這里強(qiáng)烈建議使用 PreparedStatement 而不是拼接 SQL 字符串——傳入的用戶名如果包含單引號(hào)拼接 SQL 會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤甚至注入風(fēng)險(xiǎn)。PreparedStatement 的預(yù)編譯機(jī)制自動(dòng)處理了引號(hào)轉(zhuǎn)義是課程設(shè)計(jì)答辯時(shí)老師一定會(huì)問(wèn)的考點(diǎn)。finally 塊里的資源關(guān)閉是另一道加分項(xiàng)很多沒經(jīng)驗(yàn)的代碼會(huì)漏掉連接關(guān)閉長(zhǎng)時(shí)間運(yùn)行后連接池耗盡整個(gè)系統(tǒng)卡死。4.2 TraverseDate 的日期遍歷與房費(fèi)計(jì)算邏輯住宿天數(shù)的計(jì)算是賓館管理系統(tǒng)的核心算法。這個(gè)項(xiàng)目的 TraverseDate 類把邏輯封裝得非常干凈輸入入住日期和退房日期遍歷每一天統(tǒng)計(jì)天數(shù)并計(jì)算總房費(fèi)。// 日期計(jì)算核心邏輯簡(jiǎn)化版 public class TraverseDate { private static final long DAY_IN_MILLIS 24 * 60 * 60 * 1000; public int calculateDays(Date checkinDate, Date checkoutDate) { // 注意日期需要?dú)w一化到零點(diǎn)否則時(shí)間差可能丟失一天 Calendar checkin Calendar.getInstance(); checkin.setTime(checkinDate); checkin.set(Calendar.HOUR_OF_DAY, 0); checkin.set(Calendar.MINUTE, 0); checkin.set(Calendar.SECOND, 0); Calendar checkout Calendar.getInstance(); checkout.setTime(checkoutDate); checkout.set(Calendar.HOUR_OF_DAY, 0); checkout.set(Calendar.MINUTE, 0); checkout.set(Calendar.SECOND, 0); long diff checkout.getTimeInMillis() - checkin.getTimeInMillis(); return (int) (diff / DAY_IN_MILLIS); } public BigDecimal calculateAmount(Date checkin, Date checkout, BigDecimal pricePerDay) { int days calculateDays(checkin, checkout); return pricePerDay.multiply(BigDecimal.valueOf(days)); } }這個(gè)類實(shí)現(xiàn)里有三個(gè)細(xì)節(jié)值得關(guān)注。第一為什么用 Calendar 歸一化時(shí)間因?yàn)閺臄?shù)據(jù)庫(kù)讀出的 Timestamp 可能帶有時(shí)分秒如果入住是 2023-12-01 10:30退房是 2023-12-03 14:00直接算毫秒差是 48 小時(shí)加 3.5 小時(shí)除以 24 小時(shí)后得到 2 天還多強(qiáng)轉(zhuǎn) int 得到 2看起來(lái)沒問(wèn)題但如果退房是 2023-12-03 09:30毫秒差是 47 小時(shí)除以 24 得到 1.958轉(zhuǎn) int 變成 1 天——這就錯(cuò)了。歸一化到零點(diǎn)后再算差邏輯就穩(wěn)了。第二金額用 BigDecimal 而不是 double因?yàn)榉抠M(fèi)涉及小數(shù)計(jì)算double 的精度損失會(huì)在多天累加時(shí)放大。第三這個(gè)方法故意只算了房費(fèi)不包含服務(wù)費(fèi)服務(wù)費(fèi)用由 ServiceManage 單獨(dú)統(tǒng)計(jì)后與房費(fèi)合并——這一設(shè)計(jì)讓每個(gè)類的職責(zé)更聚焦排查問(wèn)題時(shí)不會(huì)一頭霧水。4.3 Query 與 OrderView 的訂單狀態(tài)流轉(zhuǎn)Query 類承擔(dān)了絕大部分?jǐn)?shù)據(jù)庫(kù)查詢工作而 OrderView 負(fù)責(zé)把查詢結(jié)果封裝成視圖對(duì)象供 JSP 渲染。兩者的分工是Query 查原始數(shù)據(jù)OrderView 做數(shù)據(jù)組裝。查詢訂單時(shí)需要關(guān)聯(lián)房間表獲取房間類型和價(jià)格。// 查詢訂單列表關(guān)聯(lián)房間表 public ListOrderView findOrdersWithRoomInfo(String keyword) { ListOrderView orderViews new ArrayList(); Connection conn null; PreparedStatement ps null; ResultSet rs null; try { conn DBUtil.getConnection(); String sql SELECT o.order_id, o.customer_name, o.checkin_date, o.checkout_date, o.total_amount, o.order_status, r.room_type, r.price FROM t_order o LEFT JOIN t_room r ON o.room_id r.room_id ; if (keyword ! null !keyword.isEmpty()) { sql WHERE o.customer_name LIKE ? OR o.order_id ?; } ps conn.prepareStatement(sql); if (keyword ! null !keyword.isEmpty()) { ps.setString(1, % keyword %); ps.setString(2, keyword); } rs ps.executeQuery(); while (rs.next()) { OrderView view new OrderView(); view.setOrderId(rs.getInt(order_id)); view.setCustomerName(rs.getString(customer_name)); view.setRoomType(rs.getString(room_type)); view.setPrice(rs.getBigDecimal(price)); view.setTotalAmount(rs.getBigDecimal(total_amount)); view.setOrderStatus(rs.getString(order_status)); orderViews.add(view); } } catch (SQLException e) { e.printStackTrace(); } finally { closeResources(rs, ps, conn); } return orderViews; }這段查詢的看點(diǎn)在于條件拼接方式先寫基礎(chǔ) SQL再根據(jù)關(guān)鍵字是否為空決定是否拼接 WHERE 子句。注意 WHERE 后面的 AND 問(wèn)題——如果在 WHERE 后面直接寫 AND而當(dāng)關(guān)鍵字為空時(shí) SQL 變成純粹的基礎(chǔ)查詢多出的 AND 就會(huì)語(yǔ)法報(bào)錯(cuò)。這里的處理是先拼 WHERE 再拼接條件用 LIKE 模糊查詢客戶名稱訂單號(hào)用精確匹配參數(shù)均為動(dòng)態(tài)綁定。不要把用戶輸入直接拼進(jìn) SQL 字符串一是安全二是 LIKE 語(yǔ)句里的百分號(hào)和引號(hào)需要轉(zhuǎn)義PreparedStatement 自動(dòng)處理這些。訂單狀態(tài)流轉(zhuǎn)的邏輯在 ServiceManage 里配合使用——退房操作會(huì)將 order_status 從「已入住」改為「已退房」同時(shí)把房間狀態(tài)改為「空閑」。數(shù)據(jù)庫(kù)里 status 字段的更新邏輯很簡(jiǎn)單就是一條 UPDATE 語(yǔ)句但要注意事務(wù)邊界退房操作需要同時(shí)更新訂單表和房間表兩張表的更新必須在一個(gè)事務(wù)中完成否則會(huì)出現(xiàn)訂單已退房但房間仍顯示占用的情況。代碼里通過(guò) Connection 的 setAutoCommit(false) 配合 commit/rollback 實(shí)現(xiàn)事務(wù)控制這是一個(gè)高級(jí)加分點(diǎn)答辯時(shí)可以主動(dòng)提。5. 部署避坑實(shí)錄5 個(gè)讓課程設(shè)計(jì)翻車的常見問(wèn)題與排查5.1 頁(yè)面 404Tomcat 找不到項(xiàng)目資源現(xiàn)象Tomcat 啟動(dòng)成功瀏覽器訪問(wèn) http://localhost:8080/hotel/index.jsp 卻顯示 404。 原因最常見的是 Artifact 沒有正確部署到 Tomcat或者 Application context 配置的和訪問(wèn)路徑不一致。還有一種是 webapp 目錄結(jié)構(gòu)不對(duì)IDEA 新建項(xiàng)目時(shí)如果沒有正確標(biāo)記 webapp 目錄JSP 文件根本不會(huì)被打進(jìn) Artifact。 解決打開 File - Project Structure - Artifacts檢查 Output Layout 里是否包含了 webapp 目錄下的全部文件再打開 Run/Debug Configurations確認(rèn) Deployment 里添加了 Artifact 且 Application context 是 /hotel。如果都沒問(wèn)題清掉 out 目錄和 target 目錄后重啟 Tomcat。5.2 中文亂碼從表單到數(shù)據(jù)庫(kù)全鏈路編碼不一致現(xiàn)象JSP 頁(yè)面輸入中文「張三」存入 MySQL 后變成「?? ??‰」。 原因三處編碼不一致——JSP 頁(yè)面編碼、Servlet 請(qǐng)求編碼、數(shù)據(jù)庫(kù)表字符集。任何一個(gè)環(huán)節(jié)不是 UTF-8中文就保不住。 解決JSP 文件頂部設(shè)置 pageEncoding 為 UTF-8每個(gè) Servlet 的 doPost 開頭寫 request.setCharacterEncoding(UTF-8)連接數(shù)據(jù)庫(kù) URL 加 useUnicodetruecharacterEncodingUTF-8。我遇到過(guò)一個(gè)奇怪場(chǎng)景數(shù)據(jù)庫(kù)表已經(jīng)建好了服了navicat 客戶端顯示正常但程序?qū)懭雭y碼——最后發(fā)現(xiàn)是 MySQL 連接配置沒加 characterEncoding 參數(shù)。從那以后建任何項(xiàng)目我都會(huì)先驗(yàn)證中文寫入再往下走。5.3 MySQL 驅(qū)動(dòng)連接報(bào)錯(cuò)Communications link failure現(xiàn)象Tomcat 啟動(dòng)后訪問(wèn)查詢功能報(bào) Communications link failure 或者 SSL 異常。 原因MySQL 8.0 默認(rèn)開啟 SSL且驅(qū)動(dòng)版本和數(shù)據(jù)庫(kù)版本不匹配。很多人從網(wǎng)上下載的 mysql-connector-java 是舊版 5.x連 8.0 數(shù)據(jù)庫(kù)時(shí)協(xié)議不兼容。 解決使用 mysql-connector-j 8.x 版本驅(qū)動(dòng)連接 URL 加上 useSSLfalse 和 serverTimezoneAsia/Shanghai。檢查驅(qū)動(dòng) JAR 是否放在 WEB-INF/lib 目錄而不是僅加到 IDEA 的依賴列表——運(yùn)行時(shí) Tomcat 只認(rèn) WEB-INF/lib 里的 JARIDEA 編譯通過(guò)不代表 Tomcat 運(yùn)行時(shí)不報(bào)錯(cuò)。5.4 訂單日期計(jì)算差一天時(shí)區(qū)導(dǎo)致的 Date 陷阱現(xiàn)象入住 2024-06-01退房 2024-06-03頁(yè)面顯示住宿 1 天而不是 2 天。 原因數(shù)據(jù)庫(kù)取出的 Date 類型對(duì)象經(jīng)過(guò) JDBC 轉(zhuǎn)換后帶了當(dāng)前虛擬機(jī)的時(shí)區(qū)信息如果 MySQL 連接 URL 沒指定 serverTimezoneJDBC 用默認(rèn)時(shí)區(qū)解析 DATETIME導(dǎo)致時(shí)分秒偏移歸一化失敗后日期差計(jì)算錯(cuò)誤。 解決連接 URL 必須加 serverTimezoneAsia/Shanghai計(jì)算天數(shù)前用 Calendar 歸一化到零點(diǎn)如果時(shí)間緊張最簡(jiǎn)單的驗(yàn)證方式是寫一段測(cè)試代碼故意設(shè)置為 00:00 和 23:59 的時(shí)間看計(jì)算結(jié)果是否符合預(yù)期。這個(gè)坑最容易在答辯前夜爆發(fā)因?yàn)檠菔緯r(shí)日期往往是當(dāng)天的而計(jì)算邏輯對(duì)跨天場(chǎng)景敏感。5.5 SQL 語(yǔ)法異常漏掉空格或者字段名打錯(cuò)現(xiàn)象運(yùn)行時(shí)日志打印 SQLException提示 Unknown column xx in field list 或 You have an error in your SQL syntax。 原因拼接 SQL 字符串時(shí)變量沒有加空格比如 WHERE customer_name LIKE ? AND o.room_id 前后拼接處缺少空格SQL 變成了 WHERE customer_name LIKE ?AND o.room_id。還有一種情況是字段名寫錯(cuò)尤其是有下劃線的字段如 order_status 容易寫成 orderstatus數(shù)據(jù)庫(kù)根本不存在這個(gè)字段報(bào)錯(cuò)信息比較直觀但容易被忽略。 解決用 IDEA 的 SQL 方言檢查功能或者在本地用 Navicat 預(yù)執(zhí)行一遍 SQL 確認(rèn)語(yǔ)法拼接字符串時(shí)每行結(jié)尾保留空格字段名從建表語(yǔ)句里復(fù)制而不是手敲。如果你在 Query 類里用了 StringBuilder 拼 SQL養(yǎng)成習(xí)慣每行結(jié)尾加空格不要依賴下一行的開頭空格。6. 答辯前必做的本地驗(yàn)收用一張檢查清單驗(yàn)證系統(tǒng)完整性期末作業(yè)最慘的不是寫完而是答辯現(xiàn)場(chǎng)演示時(shí)鼠標(biāo)一點(diǎn)就崩。我在這類項(xiàng)目上交過(guò)太多次學(xué)費(fèi)后來(lái)總結(jié)了一個(gè)強(qiáng)制驗(yàn)收流程每次演示前一天必須完整走一遍。先把 Tomcat 啟動(dòng)起來(lái)然后按以下順序逐項(xiàng)驗(yàn)證不要跳步。序號(hào)驗(yàn)證項(xiàng)操作與預(yù)期結(jié)果相關(guān)類1數(shù)據(jù)庫(kù)連接啟動(dòng)后首頁(yè)打開無(wú)報(bào)錯(cuò)DBUtil2錯(cuò)誤密碼登錄提示「賬號(hào)或密碼錯(cuò)誤」并留在登錄頁(yè)LoginServlet3正確密碼登錄跳轉(zhuǎn) index.jsp頁(yè)面右上角顯示管理員名LoginServlet4日期計(jì)算開單選擇 6 月 1 日入住、6 月 3 日退房金額為 2 晚費(fèi)用TraverseDate5訂單查詢按客戶名模糊搜索結(jié)果列表正確展示Query/OrderView6退房操作訂單狀態(tài)變?yōu)橐淹朔糠块g狀態(tài)變?yōu)榭臻eServiceManage7數(shù)據(jù)持久化重啟 Tomcat記錄仍在MySQL這個(gè)清單的妙處在于每項(xiàng)都對(duì)應(yīng)一個(gè)核心類答辯時(shí)如果老師問(wèn)「這項(xiàng)目有哪些功能」你直接背這張表的第 2 到第 6 行每個(gè)功能都能說(shuō)清對(duì)應(yīng)代碼在哪個(gè)類里、核心邏輯是什么。我一般會(huì)在驗(yàn)收時(shí)把 Tomcat 的控制臺(tái)日志打開每一步操作看一眼有沒有報(bào)異常很多隱藏的 SQLException 頁(yè)面不顯示日志里早就有記錄了。關(guān)于文檔說(shuō)明資源里帶的文檔講清楚了建表語(yǔ)句、默認(rèn)賬號(hào)密碼和部署步驟。建議你拿到之后先按文檔跑一遍成功后再自己改功能加功能——比如給訂單表加一個(gè)備注字段練習(xí)從數(shù)據(jù)庫(kù)到 Servlet 到 JSP 的完整鏈路改造。這套項(xiàng)目最好的一點(diǎn)是可擴(kuò)展性極強(qiáng)房間表加一個(gè)床位字段訂單表加一個(gè)押金字段都能順著原有代碼結(jié)構(gòu)快速實(shí)現(xiàn)。從那以后我每次拿到類似項(xiàng)目都會(huì)強(qiáng)制走一遍「先跑基礎(chǔ)流程 → 再改一項(xiàng)小功能 → 最后驗(yàn)證舊功能不被破壞」的三步流程。這套方法論救過(guò)我很多次希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久久人妻| 欧美日韩久久精品爱爱| 欧美黄页在线| 激情专区综合| 久草国产在线视频| 一个国产在线综合网站| 亚洲丝袜综合| 亚洲图片欧美色| 久久爱超碰网| 久久久久久久少妇| 亚洲日本韩国极品一区二区| 婷婷导航| 欧美成人黄网色网站| 日韩成人性日韩成人性爱视频在线免费观看| 欧美高潮在线| 手机在线视频国内精品| 哈哈操 大香蕉| 97就爱干| Julia Annxxxxx| 久久久久久久国产| 亚洲色图第四色| 亚州综合色图| 大香蕉在线视频重口味毛片在线| 亚洲熟妇自偷自拍另欧美| 操高情无码| 嫩草美女久久| 国产高清午夜成人在线观看| 波多野结衣一级视频| 波多野结衣之双飞调教在线播放| 人人搞人人插人人操| 天天躁日日躁狠狠狠躁| 97久久久网站| 国产9区| 春色综合网| 人妻丰满熟妇av无码区蜜桃| 美女9118禁| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | http://qxhbdz.com| 久久久国产三级黄色片| 伊人黄色视频免费观看| 亚洲超碰在线| 999在线电影香蕉| 亚洲熟妇极品| 久久伊人网视频一区二区三区| 亚洲色图大香| 四月丁香婷婷| 九一综合网| 任我爽在线视频免费观看 | 日韩 欧美 视频 在线 一区| 99这里有精品| 色 婷97| 国产丰满少妇久久久精品影院| 97精品视频免费| 99久久综合| 久久一二三四不卡 | 亚洲诱惑| 91 亚洲情侣偷拍 久久| 国产av高清版| 少妇内射视频| 欧美色图 色综合图| 亚洲国产精品成人久久蜜臀| 天天操天天射天天日| 午夜福利免费精品视频| 成人网欧美风情| 蜜桃丰满熟妇av无码区不卡| 97鸡把在线视频| 色在线视频导航| 亚洲电影中字一区二区| 色婷婷色99国产综合精品| 亚洲激情久久| 97丝袜亚洲在线播放| 久9久9久9久9久9久9| 91亚洲影视| 乱伦av麻豆| 婷婷五月天成人| 日逼五月天| 日韩无码服务区| 国产精品白领在线观看 | 在线性黄高清免费视频| 欧美暴力猛交| 欧美性爱18观看| 亚洲欧美日韩综合在线尤物| 二对二中文字幕。| 日逼97| 欧美不卡二区| 白丝1区2区3区| 精品十三区| 欧美色乱| 久久欧美性爱视频| 欧美日韩亚洲电影| 另类小说综合网| 日韩精品国产精品五码一区二区| 色婷婷一区二区三区久久午夜成人不| 欧洲特黄毛片免费看欧洲毛片| 久久久中文| 97精品中文字幕| 黄色无码高清黄色无码网站| 午夜天堂精品久久久久91| 成人天天爽| 国产精品精品系列在线观看| 国产精品熟女AV中文字幕在线播放| 搡老女人老91妇女熟女| 人妻少妇被猛烈进入中| 色五月天AV| 日本操逼视频在线| 强上我不卡卡| 永久免费观看的毛片的网站| 男人天堂站| 97超碰9| 日本中文字幕在线电影| 人妻丰满熟妇av无码区蜜桃| 午夜影美女日鸡鸡天天视频国产| www.人人摸在线视频| 无码最新| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 综合网久久| 一区二区视频你懂的| 日韩成人性日韩成人性爱视频在线免费观看| 日本色婷婷| 大香交| 麻豆国产96在线| 福利在线视频一区二区| 国产麻豆福利av在线播放| 一级黄碟在线观看| 久久综合激情| 97国产精品一区二区传媒公司| 婷婷五月综合在线| 91超碰在线| 国产白嫩精品久久| 日本东京热加勒比久久| 在线五区| 加勒比无码一区二区三区| 超碰在线一区二区三区| 97精品久久久久久久| 五月天久久综合网| 操逼无毒无码免费视频| 日韩乱码Av| 午夜福利国产欧美日韩夜夜| 91 国产丝袜在线播放-百度| 色婷五月天| 精品免费一区| 亚洲综合图色在线| 性爱av网站| 台湾佬大香蕉| 乱码熟妇人妻久久久| 国产精品极品美女视频| 日本在线伊人啪啪| 99热在线不卡| 婷婷五月天激情网| 亚洲国产一区二区入口| 91亚洲网站| 国产人伦精品一区二区三区| 精品性爱一区二区| 吖在线不卡一区二区国产剧情| 日韩欧美蜜桃精品久久中文字幕久久| 久久精精区一区二区一蜜桃一区二区| 尹人免费观看视频在线| 91精品91久久久久77777| 在线 制服丝袜中出 人妻| 懂色Av| 豆1无夜无码| 色五月亚洲| 久久伊人亚洲AV无码网站| 夜夜骑日日| 台湾佬中文娱乐自偷自拍| 综合国产影视三级| 91 天天综合| 久久国产999| 久久av网| 午夜久久一区二区无码中出| 日韩国产成人自拍视频| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 天美传媒麻豆一区二区三区国产精| 美女大乳久久久久久久女人18| 欧美日韩性爱精品| 日本高清_区二区三区| 91视频综合网| 男人天堂2019| 亚洲熟女一区二区| 97亚洲国产| 97久久精品国产| 六月色婷婷| 99精品成人免费看| 免费亚洲黄色视频在线观看| 免费家庭乱伦视频| 久久午夜鲁丝片| 91制服丝袜中文字幕| 60秒免费视频| 一区二区三区色综合| 日韩久久超碰色| 久久久98网站免费视频| 99热最新网址| 秋霞视频一区二区| 新版天堂中文资源8在线| 浓厚中出中文字幕在线| 日韩啊V| 无码人妻1727| 91P0RNY大屁股人妻| 夜夜欢天天干| 日日摸天天爽夜夜欢| 99精品综合久久久久五月天| 亚洲男人天堂2| 日韩精品9区| 精品乱码久久久久| 综合97亚洲| 成人热久久精品| 东北女人的毛片| 国产农村妇女精品1区二区| 日本久操视频| 欧美成人精品一区二区三区| 日日A∨| 丝袜av一区二区三区| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 亚洲91射| 啊啊啊久久久视频| 免费99精品国产自在在线| 欧美78| 日韩欧美丝袜诱惑| 欧美亚洲厕所精品偷拍91 | 国产毛片在线| 国产97色在线| 天天综合精品| 丰满人妻一区二区中文| JuliaAnnXXX888| 国产欧美另类久久久精品课程| 老熟女91视频| gogogo免费高清看中国国语| 日韩欧美tv一区二区在线观看| 中文字幕一区二区韩| 日人妻视频91| 九九成人| 10000部十八禁看电影| 久久久男人的天堂| 中文操逼字幕| 久久久亚洲高清不打码| 欧美成人9797| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | av操操不卡| 亚熟hd视频在线| wuyechaopeng| 青娱乐二区免费| 国产精品呦一区二区三区| 婷婷啪啪| 亚洲熟女乱综合一区二区三区 | 91精品伊人久久久大香线蕉91| av九九| 久久水蜜臀亚洲AV无码精品| 91超碰在线观看| 日韩免费中文字幕视频| 日韩一级片在线看| 97AV在线免费观看| 久久区| 欧日a| ss久久| 超碰欧美97资源| 精品久久久av无码免费| 插欧洲美女欧美精品| 天天肏美女| 97久久国产精品| 中文字幕AV乱伦| 伊人久久婷婷| 加勒比av官网在线| 思思热在线cao| 欧美综合色站| 亚洲国产另类在线中文| 污啪啪啪视频| 欧美色亚洲色| 秋霞免费AV| 久久鲁夜| 日韩精品在线观看观看| 四虎视频在线观看| 亚洲欧洲av影音| 丁香五月激情啪啪| 久草成人影片| 国产亚洲精品美女久久久m| 伊人大香蕉在线| 大香蕉草草| 国产女人91精品嗷嗷嗷嗷| 狠狠2050在线观看| 超碰色男人操熟女| 青青国产在线拍揄自揄拍| 中文字幕后石码四区五区| 日本人人操人人操| 亚州欧美另类| 91在线页| 测评在线观看AV| 人妻天堂综合网| 91天堂丝袜美腿| 丝袜美腿制服人妻二区中文字幕| 欧美亚洲清纯| 夜夜爽77777| 欧美九九九| 99只有精品| 91精品国产91熟女| 91无码中出人妻视频| 中文字幕在线免费观看| 国产夫妻一区二区| 大屁股人妻女教师撅着屁股| 另类亚洲图色| 日本人妻中文字幕精品| av天天在线| 国产女人与拘做受视频免费| 欧美激情亚洲情色| 日韩有码一区三区| 欧美色www亚洲国产阿娇要播| 日本三级人妻a人妻一在线| 91无码西班牙视频在线| 久久精品中文| 精品亚洲国产成人AV制服丝袜| 一区二区三区在线日韩影院观看| 色色色综合网| 亚洲乱码精品一区二区| 麻豆一区二区三区精品| 在线观看综合精品亚洲| 丰满人妻一区二区三区四区| 欧美三级免费伊人| 亚洲αv一区二区三区| 99re在线视频这里只有精品| 久久精品视频久久久| 日本黄色精品专区网站| 中文字幕av片| 久久久影院| 逼操网站| 女生久久网| 日韩欧美成人大香蕉| 亚洲欧美综合区自拍另类| 91欧美少妇| 久久侵犯人妻爽爽爽| 色在线综合| 91国产丝袜美女| 五月天大香蕉| 日日日日做夜夜夜夜无码| 亚洲男人天堂视频| 免费成人在线熟妇网| 中文字幕 人妻不满 在线视频| 青青操网| 中文字幕三四区| jiujiujiujingpin| 日本淫色网| 国产亚州精品美女久久久免费| 亚洲丝袜少妇在线| 色网1| 秋霞男人网| 国产又操| 国产黄片在线免费观看| 国产无码成人无码| 人妻久久| 尤物视频偷拍免费| 大肉棒导航| 国产亚洲 中文欧美久久| 国产日韩欧美亚洲精品95| 欧美亚洲天天| 少妇精品久久久八区九区| 欧美少妇一区二区三区| 天天日夜夜爽| 国模一区二区三区| 亚洲国产第一页综合视频| 三级三级三级a级全黄三| 91av熟女人妻| 婷婷婷婷婷婷久久久久| 校园春色第一页| 天天天操天天天爱| 欧美综合网1| 亚州成人a∨| 嗯嗯嗯好爽| 九九性爱网| 久草网站免费在线观看| 国产久久成人| 美女熟妇色| 日韩一级欧美一级国产一级台湾| 91成人18| 日韩欧美加勒比| 久九九九九九九九热| 中文日韩欧美熟| 粉嫩久久久久| 97ai亚洲| 亚洲丝袜少妇在线| 97国产超碰| 超碰97亚洲| 人妻久久| 国产自制av蜜乳| 久久久久久久97| 日韩精品一区二区人人人| 九九九国产精品| 久久久久久久久国产| A一级色女| 国产人妻精品一区二区三区秋霞 | 26uuu最新| 久久久精品网站| 亚洲图片欧美| 日韩欧美午夜一区二区| 久思思热视频在线观看| 屁屁影院一区二区三区国产| 中文字幕av亚洲在线| 肉嘟嘟www视频在线观看高清| 亚洲天堂7777| 五月天激情小说| 黑人精品成人一区二区三区| 亚洲欧美国产va在线播放频| 国产操操日韩三级黄| 美女国产一区二区久久| 色色五月天激情| 亚洲欧洲小说图片视频| 新视频sss国产| 超碰碰小说97| 免费一二区| 黄色视频60分钟| 亚洲日韩成人性爱视频| 超碰97男人| 色拍偷亚洲| 老熟乱一区二区三区四区| 日本不卡在线二区三区| 日本色色视频网站| 欧美一级色| 欧洲中文字幕| 日日AAvv| 久久精品国内Av熟女高清| 日韩一级特黄av毛片| 色婷视频| 不卡一区视频| 欧美激情综合网| 亚洲精品影视老司机| 婷婷在线视频| #NAME?| 一区二区三| 日本www操操操| 久久久久久久少妇| 国产精品白丝AV| www.99色| 丁香五月天堂网| 97超碰久| AV麻豆免费一区| 国产成人在线观看综合| 久久超碰97中文字幕| 黄站在线免费观看| 色黄污美女啪啪啪免费网站| 色色热| 亚洲电影91| 日韩兔费看黄片| 国产福利精品最新在线| 校园春色中文字幕AV| 加勒比综合网| 人妻AV在线| 五月天欧美色图| 91被操| 国模一区二区三区| 999精品女人| 无码国产精品久久久久| 五十路二区在线| 在线日韩日本亚洲国产| 激情六月天| 久久久久久久久久久999| 免費人妻夜夜爽天天爽爽一区| 一卡二卡三卡| 色色婷婷丁香| 激情视频图片| 亚洲精品中文字幕一区在线视频| 国产十八禁视频| 性色av大全| 日韩一区二区熟女| aaa亚无码专区| 啊啊啊 在线观看| 精品亚洲天堂| 伊人影院中文字幕| 欧差乱伦二三| 国产精品午夜成人福利| 色黄污美女啪啪啪免费网站| 97人人爱人人做人人乐| 老司机深夜18禁污污网站| 蜜桃中文字日产乱幕4区| 超碰97亚洲| 欧美制服网站美腿丝袜| 国产无码精品成人| 久久综合女优| 探花在线免费观看视频国产一区| 久久久久久少妇| 国产亚州高清国产拍精| 老鸭窝在线视频播放| 久久婷婷色| 男人的天堂一区| 人妻啊啊人妻啊啊| 亚洲 小说 欧美 激情 另类| 成人五月天色网| 精品久久久久av影院| 国产精品久久久久久夜夜夜夜| 亚洲AV操| 国语少妇精| 97久久精品亚洲中六字幕| 国内偷自视频区视频综合| 久久同城AV| 日亚韩精品视频二区三| 亚洲色宗合| 亚洲AV资源| 欧美一级特黄淫片在线观看| 人妻喷水| 伊人大香蕉在线| 啪啪AV导航| 东京热,男人的天堂| 人人色97| 欧美系列在线一区二区| 色99999| 一二三四视频在线社区中文字幕| 丁香婷婷色五月| 91视频综合网| 九七毛片九九毛片| 伊人影院中文字幕| 黑人操一区二区| 伊人91| 欧美熟女丝袜| 殴美,日韩国产伦精品| 国产亚洲日韩在线三区黑人| 欧美性91| 亚洲中亚日激情视频| 日本不卡高清免v欧美日韩在线观看| 隔壁邻居波多野结衣中文字幕| 97中文字幕一区| 秋霞男人网| 亚洲人妻av| 激情 欧美 亚洲 小说| 天美麻豆一区二区三区| 天天天天天超碰| 五月激情天| 人人摸人人添人人操| 校园春色 亚洲| 色综合天天| 琪琪精品免费一区二区三区| 久久超碰日韩精品| 超碰97综合网| 欧美 熟女 日韩| 天天日日舔舔| 五月天伊人| 亚洲精品a人片在线观看视| 精品九九| 亚洲自拍97| 五十路成人在线视频二区三区| 国产高清不卡视频| 91在线美女| 色欧美天天| 色婷婷九月| 亚洲砖码砖专无区2023| xxxx网站亚洲精品| 免费一级性爱久久| av在线免费一区二区| 亚洲影院无码在线| 强奸乱伦 亚洲一区| 夜夜爽夜夜| 大香蕉懂9| 欧美日韩一二三| 99热这里只有精品1| 97超碰中文字幕| 夜夜骑操视频| 肉丝中文无码高清| 97超碰欧美手机在线| 蘋果手機免費看成人Av| 成熟熟女国产精品一区二区| 久久日本熟女精品一区| 久久人爽| 欧美日韩亚洲国产中文永久天天看| 久久久久密臀一区二区| 黑人与人妻| 欧美 亚洲 综合 制服 另类| 欧美亚州色的图| 成人久久久精品| 国产精品电| 情色大香蕉| 91高潮| 亚洲欧美综合| 亚洲国产成人精品999| 国产亚洲深夜激情| 日本丝袜人妻内射| 亚洲精品成人激情在线| 婷婷在线视频| 亚洲国产综合久久天堂| 97久久久精品| 狠狠干妹子| 青青草这里只有精品| 欧美色青| 日韩性爱1级片视频| 国产91精品福利在线| 无码伊人久久大杳蕉中文无码| 婷婷五月天AV| 欧美香蕉视xxx| 国产性爱欧美性爱在线| 99热在线只有精品| 1769一区| 欧美网站免费| 国产人伦精品一区二区三区| 久久少妇人妻| 日本女人久久久| 中文字幕日韩精品久久| 粉嫩在线一区二区懂色| 国模限制级电影| 91超碰碰在线| 97超碰欧美| 在线观看亚洲专区| 麻豆天美久久91| AV久日| 亚洲婷婷丁香在线| 亚洲国产高清福利视频| 中文字幕视频在线观看一区二区| 国产尤物AV尤物在线观看不卡| 成人国产精品三级A片| 日韩中字av一区| 欧美特黄视频网站| 欧美人与动性人交a| 国产懂色精品国产av| 久热久一区二区三区| 人妻无码一区二区三区久久99| 色色九区| 天天操夜夜嗨| 亚洲av夫妻操穴网| 激情四射熟女丝袜| 色哟哟 日韩精品| 伊人色综合网电影| 91艹逼精品| 91狠狠综合网| 国产精品久久久久综合| 欲射影视| 欧美不卡五十路| 婷婷在线精品| 亚洲AV人人澡人人爱| 国产日韩精品suv| 99综合网| 亚洲黄色电影| 色综合久| 中文字幕免费看| 精品视频免费在线一区| 久久av色| 久久国产在线一区二区| 2001天天操| 九九九九精品视频| 婷婷91| 久草毛片| 无码少妇精品一区二区60岁老人| 一区二区三区色综合| 翔田千里AⅤHD无码| 丝袜夫妻自拍| 少妇色| www.天天干| 少妇激情一区二区三区视频| 日本道久久综合色色| 亚洲欧美综合网站| 国产av美女被艹的乱叫| 欧美精品,四区。五区| 约操熟妇| 91热色| 无码少妇精品一区二区60岁老人| 九草九九九| 国产精选三级在线观看| 新91视频.cmp| 色性综合| JIZZJIZZ亚洲女人被躁| 97精品久久久久久久| 久久精品国产AV一区二区三区| 亚洲色图加勒比| 国产又黄又粗的视频| 亚洲AV不卡在线观看尤物| 岛国激情视频在线观看| 免费超碰97久久| 五月天黄色激情视频| 国产自偷| 中文啪啪视频| 日韩性爱视频在线免费观看| 91女优在线观看 | 岛国黄色短视频| 亚洲女人毛茸茸91| www.色婷婷.com| 最新亚洲黄色免费电影| 密臀视频一区二区三区| 国产92麻豆天美精品色欲5| 91天天综合在线| 丝袜夫妻自拍| 亚洲成人日韩小说| 99999久久精| 老女人日韩美91| 久久综合资源一区二区| 台湾佬大香蕉| 二对二中文字幕。| 大地资源在线观看中文第二页| 免费一级视频特黄色大片| 美女一区二区国产精品| 2025亚洲男人天堂| 久久精品操| 欧美一区二区福利在线| 亚洲欧美日韩电影网站一区 | 97免费免费视频网| 国产精品久久久久亚洲av| 一本色道久久综合狠狠操| 日韩天美| 熟女五十路一区二区三| 伊人九九九| 美女91在线观看| 欧美精品自慰系列寂寞少妇| 国产一区二区二区按摩精品啪视频| 欧美日本久久精品一区 | 久草毛片电影怡| 国产亚洲国产超碰| 免费一级视频特黄色大片| 91亚洲欧洲| 亚洲丝袜99| 韩国女主播青草福利视频| 日韩性爱毛片操骚逼| 蜜臀99久久国产| 美美91成人国产精品欧美精品久久久久久久| 久久九九国产精品| 午夜国产综合视频在线观看 | 韩日无码在线观看| 被操高清无码视频| 东京热av影院| 免费超碰97久久| 亚洲熟妇图片| 色婷婷五月天| 日本肏逼视频在线观看| 午夜操逼不卡| 福利视频香蕉免费一区二区在线| 欧美图片校园春色| 欧美色图在线视频少妇| 另类av天堂| 伊人影院中文字幕| 乱色视频中文字幕| 留下AⅤ黄色片| 色官网色综合| 中文字幕一区二区三区四区在线视频| 大香蕉中文在线| 亚洲成人AB| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 插老姨肥穴| 欧美不卡在线美女| 亚洲激情网一二三四区| 九九人人操| 国产高清成人传媒影视| 日本在线不卡v二区| 国产av又色又爽又黄| 亚洲国产一区二区日韩专区| 国产一区二区成人av在线播放| 97精品视频| 人妻夜夜爽天天爽三区麻豆AV网站| 精品人妻一区二区三区四区| 欧美97av| 麻豆AV一区二区天美传媒| 亚洲欧洲日韩中文字幕一区| 综合熟妇一区二区三区| 青青草原香蕉日本Ap| 亚洲熟女一区二区| 97在线视频观看免费| 日本2020一区二区| 91综合天天| 亚洲欧美黄| 91肉片| 亚洲国产综合视频| 日日干天天干夜夜爽| 无码高清操逼网址| 上海一级黄片| 日韩探花精品在线视频| 久久久精品成人国产| 99啪啪视频| 亚洲精品 大香蕉| 亚洲中文制服诱惑| 青青操在线亚洲视频观看欧美在线| 粉嫩少妇自慰在线| 色五月激情AV在线| 少妇精品| 日本成熟少妇A∨网站| 人妻一二三区| 无码日韩网站| 97天天爽| 狠狠色一区二区中文字幕| 久久精品99| 日韩少妇无码| 久久av一级av少妇av高潮| 五月天婷精品激情| 男人亚洲91首页在线| 欧美日韩电影一区二区| 天天综合网合集91| 欧美色图亚洲色| 日本黄色精品专区网站| 91小视频| 麻豆区99999| 91劲爆| 超碰97久久| 91爆操视频| 爽爽歪在线视频| av久日| 97欧美视频| 嫖老熟女A片一二三区| 97人肏| 国产欧洲精品亚洲午夜拍精品| 少妇淫妇久久久久久久| 隔壁邻居波多野结衣中文字幕| 女人高潮抽搐喷水视频网站| 亚洲综合在线高清| 丝袜视频网国产90| 伊人操你| 青青草中文-久久青草精品一区二区三| 亚洲日韩青青草色月| 欧美97se| 波多野结衣被操50分钟免费视频 | 欧美夜色| 亚洲欧美首页| 国产粉嫩出水在线播放| 亚洲综合在线高清| 91色亚洲| 黄色视频特级毛片| 99re69| 97超碰色| 99免费视频| 天天天堂影视日韩亚洲91| 日韩熟女操逼| 欧美性天天影视| 亚洲综人网| 三级特黄60分钟播放| 好淫网一二三视区| 夜夜爽夜夜操| 五月丁香婷婷综合| 亚洲日韩97| 凹凸视频在线观看伊人| 久热精品色情| 久久的免费性爱视频| 日韩人妻资源在线看| 欧洲自拍第一页| 青娱乐国产精品| 九九热精彩视频| 国内精品a| AV高清一区| 被操高清无码视频| 伊人久久亚洲中文字幕| 欧美少妇色图| 老鸭窝亚洲毛片| 女优大全 - 91n| 深爱激情五月天| 视频二区美腿制服人妻欧美| 亚卅熟女乱色| 国产中文字幕在线观看| 自慰白浆在线观看| 亚洲另类色综合网站| 睡产熟女乱伦| 久久有码视频| 99自拍视频在线观看| 久草综合网| 天天插天天射| 久久免费少妇| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 一区二区三区色综合| 国产熟女完整版中字| 天美欧美国产| 成人八戒网站| 中文字幕午夜精品久久久| 天天日天天干天天整| 97亚洲自在精品在线观看| 欧美色婷婷| 在线观看中文字幕| 亚洲色9| 国产精品人妻熟女aⅴ| 男人的天堂日本东京热| 手机看av网站在线看| 色欧美在线| 久久亚洲不卡| 色屁屁影院www国产| 一区二区不卡| 久久性爱城| 久久久久久久91| 日本不卡卡一区| 国产成人自拍视频视频| 天操天操夜操夜月月年年操操| 自拍大香蕉乱插| 一本色道综合久久欧美日韩精品| 67194无码不卡| 最好看的中文字幕在线2018| 色哟哟精品1精品2| 加勒比无码一区二区三区| 国内精品嫩模A∨私拍小视频| 蜜桃色院一区久久 | 人人操人人肉久久精品| 干b在线性社区| 乱伦日本色图AⅤ| 欧美啪啪色吧在线| 91美女在线视频| 91黑人无码激情在线| 超碰97欧美| 亚洲综合九| 67914亚洲精品| 欧美,日韩综合久久| 久久大香蕉97| 日本999精品视频| 亚洲欧洲综合视频在线| 日韩欧美操逼xxx| 欧美天天影院| 亚洲第一色页夜| 久久久久免费少妇| 福利在线观看一区二区| 国产h小视频在线观看免费| 超碰97首页| 999久久久久久久精| 黑人无码一区二区| 精品三级在线专区| 96超碰网| 男人的天堂日韩| 三上制服丝AV| 91oumei| 亚洲国产精品成人无码久久久| 电家庭影院午夜69久久夜色精品国产69乱| 亚洲宗合网| 欧美天天谢综合网| 99热| 在线观看av区| 思思热免费在线视频| 91丨人妻丨国产丨丝袜| 精品无av| 久久亚州大香蕉| 久久久久久波多野吉衣高潮| 9久综合网| 99久久网站| 色乱二区| 尤物网址| 手机看片日韩人妻| 96精品久久久久久久久| 天天欧美97| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 欧美午夜视频| 亚洲精品欧洲精品| 久久人妻97久久久久久久| 色婷婷影院| 色色色色综合网| 最新国产亚洲精品精品国产亚洲综合| 伊人久久在线视频观看| 中文字幕日韩精品久久| JIZZJIZZ亚洲女人被躁| 久久九色| 性色AV蜜色av色欲av| 亚洲婷婷丁香在线| 放黄片放3级黄片没穿衣服| 天堂成人网| 超碰碰97资源站| 精品久久97| 色综合91好| 久久无码精品| 精品人妻av区天天看片| 日本二三四区| 亚洲丝袜综合| dy888午夜老子影视达达兔| 97综合网| 人人操人人干xxx| 激情五月综合开心五月| 综合国产影视三级| av在线观看不卡网站| 欧美操逼熟女| 国产福利小视频高清在线观看| 亚洲无码免费看| 国产精品蜜乳AV| av凤凰久久久| 婷婷色网| 色性综合| 97超碰天天爱天天爱| 日日夜夜噜| 超碰在线第一页| 中文字幕1区2区| www.男人的天堂| 中文AV制服乱伦| 岛国毛片手机在线观看| 亚洲精品日日夜夜52| 国产这里只有精品| 老熟女91av| 色香在线| 97久久超碰日韩精品| 国产捆绑一区| 2019久久久久久久久福利| 亚洲操逼无码| 欧美日不卡| 神马久久69| 中文字幕丝袜| 亚洲日韩精品久久久久一区壹牛| 国产精品黄色三级av| 成人av免费观看| 日本不卡高清免v欧美日韩在线观看| 啊啊啊97视频| 99色热| 内射小黄片| 综合久久婷婷| 亚州人妻| 婷婷人妻激情| 国产精品盗摄 偷窥盗摄| 夜色AV无码手机在线影院 | 欧美一级黄色免费专区| 日韩AV无码中文一区二区| 插入综合网| 欧美天堂第二区| 九九九九九九九九九国产精品| 中文字幕美女91| 婷婷五月天av| laoshunv91| 伊人网高清| 国产精品黄色三级av| 午夜精品久久久久久久男人的天堂| 欲射影视| 国产熟妇 码视频户外直播 | 日韩特一级久久| 亚洲AV成人精品网站在AV| www.色操逼| 亚洲欧洲无码97久久精品| 99热这里都是精品| 黄片com.| 青青操少妇| 超碰在线一区二区| 不卡啪啪视频| 免费啊啊啊| 在线日韩日本亚洲国产| 亚洲各类熟们中文字幕| 中文97国产| 亚洲精品97| 九九激情网| 精品人妻视频一区二区在线播放| 妇女性内射冈站HDWWWCOM| 婷婷激情啪啪| 日韩射图| 最新精品久久蜜桃| 久久久久国产精品久久久| 3p国产欧美99热| 大香蕉青青9| 国产精品 久久久精品一牛| 国产精品小视频一区二区三区| 日韩精品午夜操呦呦不卡影院| 家庭乱伦性爱av| 亚洲色悠悠久久88| 日本黄色大片一级视频免费麻豆| 久久国产精品一级二级三级| 蜜臀99久久国产| 日本99热| 69久久| 99无码视频| 久久亚洲一区女同性恋中文字幕| 多乙久久久久久| 99re在线视频国产| 在线观看色视频| 亚洲精品不卡一二三区| 国产高清精品一区二区三区毛片| 插老姨肥穴| 国产午夜福利电影免费在线观看 | 国产精品一区二区校花| 美腿丝袜高跟网免费视频免费视频| 国产精品日本无码A片| 精品人妻二区三区| 日本人妻丰满熟妇久久久久久| 久久久亚洲精品电影免费看| 91处女在线观看| 无码人妻丰满熟妇奶水区毛片| 精品国产三级av韩国在线| AV高清一区| 九九精品99| 国产青青美女玩逼视频| 亚洲天堂7777| 亚洲第一视频 欧美风情 日韩| 伊人久久婷婷| 国产精品九九九| 青青草黑寡妇男人天堂| 1级午夜影院费免区| 69久久久久久久久久久久久| 国产男人又猛又粗又爽| 18禁久久| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 精品一区二区三区最新| 边做饭边操逼逼| 加勒比海成人视频网| 国产精品久久成人免费| 欧美日韩一二三| 久操视频免费在线观看| av在线播放国产一区| 97超碰色中文字幕| 日本狠狠干| A一区片| 欧美在线干| 天综合网| 亚洲国产ⅴ高清在线观看| 白嫩妹子国产骚| 久久久久性熟视频| av绯色| 亚洲熟女人妻中文字幕一区二区| 天操天操夜操夜月操月年年操| 日本丝袜人妻内射| 午夜传煤十二区精品| 麻豆福利视频导航| JULIA一区二区三区在线播放| 神马久久久久久| 国产久久久久影院老熟女| 91校园春色长篇| 一区二区三区高清天码| 67914在线兔费成人视频| 精品久久久久瑟瑟| 国产精品久久久久无码AV会牛| 九九九九九九视频免费| 超碰在线第一页| 青青青国产| 日本道久久综合色色| 亚洲男人综合| 97亚洲综合在线| 久久国产精品熟女人妻| 九九热精品视频在线观看| 日韩精品一区二区日韩| 亚洲超碰97| 99久在线精品99re8| 国产乱弄免费在线视频。| 国产这里只有精品| 欧美人与性动交a美精品| 一区二区高清视频| 老鸭窝在线视频播放| 操死我了嗯嗯嗯| 日韩人妻操B| 激情四射五月天| 午夜偷拍久久熟女| 大香蕉乱级| 丁香九月婷婷| 超碰人人干天天射| 啊啊啊好疼| 国产二区三区粉嫩在线| 亚洲天堂另类美腿| 五月天色图| 久久久久久久亚洲Av无码| 亚洲无码国产探花在线观看| 亚洲不雅视频1区二区| 超碰9 7女人 | 久久草在线综合视频| 韩日精品四区| 99r九九| 人人插人人搞人人操| 操www| 青娱乐淫乱1314| 亚洲97超碰| 久久女人| 男同专区一区二区三区在线| 97精品网站| 国模91| 四虎免费视频| 精品妇操一区二区三区| 男人的天堂日本东京热| 青女在线| 日本大香蕉| 日韩精品怡红院| 国产精品电影推荐| 日韩欧亚中文在线| 很很很很操| 久久大精品乱码视频人妻熟女| 热久日综合| 黑人与人妻| 国外91| 久久久精品九| 凹凸 69堂 在线播放| 密臀在线视频| 欧美亚洲首页| 天天cao在线| 亚洲国产精品无码AV久久| 中文字幕丰满子伦无码专区在线视频最新| 天天干嫩逼网| 97在线视频免费| 伊人热综合| 影音先锋少妇| 午夜偷拍久久熟女| 一级久久久久久久久久久| 午夜欧美女人操逼| 午夜一区| 男人的天堂2018东京热啪啪啪| 天天看天天综合成人网|