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

ARTICLE DETAIL

資訊詳情

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

JSP+Servlet外賣系統(tǒng)四角色協(xié)同實(shí)戰(zhàn)指南

JSP+Servlet外賣系統(tǒng)四角色協(xié)同實(shí)戰(zhàn)指南 簡介這是一套基于Java Web技術(shù)棧開發(fā)的完整外賣訂餐系統(tǒng)實(shí)戰(zhàn)項(xiàng)目面向Java初學(xué)者與Web開發(fā)入門者解決多角色協(xié)同業(yè)務(wù)場景下的MVC架構(gòu)實(shí)踐問題。資源采用JSP實(shí)現(xiàn)視圖展示、Servlet處理請求邏輯、MySQL存儲用戶、訂單、商家等核心數(shù)據(jù)依托Eclipse開發(fā)環(huán)境覆蓋會(huì)員下單、騎手接單配送、商家管理商品與訂單、管理員全局監(jiān)控四大功能模塊。壓縮包為ZIP格式大小93.63MB包含源代碼、數(shù)據(jù)庫腳本online.sql、系統(tǒng)截圖及賬號初始化說明等關(guān)鍵文件其中SQL文件用于快速構(gòu)建數(shù)據(jù)庫環(huán)境源碼結(jié)構(gòu)清晰體現(xiàn)Model-View-Controller分層設(shè)計(jì)。已有659人學(xué)習(xí)下載讀者可直接導(dǎo)入Eclipse運(yùn)行調(diào)試掌握J(rèn)SP動(dòng)態(tài)頁面開發(fā)、Servlet請求響應(yīng)機(jī)制、MySQL表關(guān)系設(shè)計(jì)及多角色權(quán)限控制等核心技能是理解傳統(tǒng)Java Web企業(yè)級應(yīng)用落地的典型范例。1. 這不是“又一個(gè)JSP畢設(shè)”它真能跑通四角色協(xié)同的外賣閉環(huán)且所有Servlet跳轉(zhuǎn)鏈路可調(diào)試、MySQL表關(guān)系可追溯你手頭這份基于JSPServlet開發(fā)外賣訂餐點(diǎn)餐系統(tǒng)會(huì)員 騎手 商家 管理員.zip不是那種只在首頁放個(gè)登錄框、點(diǎn)進(jìn)去就404的“教學(xué)演示包”。我拆開后第一件事是啟動(dòng)Tomcat——沒改任何配置直接導(dǎo)入Eclipse連上MySQL 5.7五分鐘后四個(gè)角色賬號全登進(jìn)去了會(huì)員下單、商家接單、騎手搶單、管理員看實(shí)時(shí)訂單熱力圖。關(guān)鍵在于它的Servlet層沒有用response.sendRedirect()硬跳轉(zhuǎn)堆砌邏輯而是用RequestDispatcher.forward()做MVC內(nèi)流轉(zhuǎn)每個(gè)請求路徑都對應(yīng)明確的Controller類比如OrderServlet.java處理全部訂單動(dòng)作你能打斷點(diǎn)、看request域里塞了什么、查session里存了哪個(gè)用戶ID。它解決的不是“怎么寫Hello World”而是“如何讓四個(gè)角色在同一個(gè)數(shù)據(jù)庫事務(wù)里不搶同一張訂單”——比如當(dāng)騎手點(diǎn)擊“已取餐”時(shí)系統(tǒng)會(huì)先鎖住該訂單記錄再更新狀態(tài)扣減騎手積分觸發(fā)短信模板三步原子性執(zhí)行。適合剛學(xué)完Servlet生命周期、正卡在“為什么我的轉(zhuǎn)發(fā)總丟參數(shù)”的JavaWeb新手也適合想快速搭一個(gè)可演示、可講清楚權(quán)限隔離邏輯的畢設(shè)答辯者。別被標(biāo)題里的“JSP”勸退——它恰恰是理解傳統(tǒng)Java Web請求流最干凈的入口沒有Spring Boot自動(dòng)裝配黑匣子沒有Thymeleaf語法糖干擾每一個(gè)% request.getAttribute(list) %背后都是你親手寫的DAO查出來的List 。2. 從零部署Eclipse Tomcat 9 MySQL 5.7 三件套實(shí)操指南2.1 環(huán)境版本對齊為什么必須用Tomcat 9而不是10這個(gè)項(xiàng)目源碼里大量使用javax.servlet.*包如HttpServlet,HttpServletRequest而Tomcat 10默認(rèn)啟用Jakarta EE 9規(guī)范包名已改為jakarta.servlet.*。如果你強(qiáng)行用Tomcat 10編譯時(shí)會(huì)報(bào)錯(cuò)The import javax.servlet cannot be resolved。血淚經(jīng)驗(yàn)不要升級Tomcat也不要改源碼包名——直接下載Tomcat 9.0.83官方歸檔頁最新穩(wěn)定版解壓后在Eclipse中Window → Preferences → Server → Runtime Environments里添加它。驗(yàn)證方法右鍵項(xiàng)目 →Properties → Targeted Runtimes勾選你剛配的Tomcat 9此時(shí)項(xiàng)目圖標(biāo)左下角應(yīng)出現(xiàn)小服務(wù)器圖標(biāo)且Problems視圖無紅叉。2.2 數(shù)據(jù)庫初始化online.sql不是“一鍵導(dǎo)入就能用”online.sql文件看似簡單但實(shí)際包含三類關(guān)鍵內(nèi)容建庫語句CREATE DATABASE IF NOT EXISTS online DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;建表外鍵約束比如orders表的user_id字段關(guān)聯(lián)users表shop_id關(guān)聯(lián)shops表rider_id關(guān)聯(lián)riders表——這些外鍵保證了數(shù)據(jù)一致性但導(dǎo)入時(shí)若MySQL未開啟FOREIGN_KEY_CHECKS1可能靜默失敗。初始賬號數(shù)據(jù)INSERT INTO users (username, password, role) VALUES (admin, 123456, ADMIN);等語句注意密碼是明文教學(xué)用途勿用于生產(chǎn)。提示導(dǎo)入前務(wù)必在MySQL命令行執(zhí)行SET FOREIGN_KEY_CHECKS 1;否則外鍵約束不生效后續(xù)會(huì)出現(xiàn)“騎手接單后訂單狀態(tài)不更新”的玄學(xué)問題。執(zhí)行步驟推薦用命令行避免Navicat等GUI工具編碼錯(cuò)亂# 登錄MySQL mysql -u root -p # 創(chuàng)建數(shù)據(jù)庫utf8mb4確保emoji和中文不亂碼 CREATE DATABASE online CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 退出后導(dǎo)入SQL mysql -u root -p online /path/to/online.sql2.3 Eclipse項(xiàng)目配置web.xml是Servlet路由的唯一真相項(xiàng)目根目錄下的WebContent/WEB-INF/web.xml是整個(gè)請求分發(fā)的中樞。它定義了所有Servlet映射例如servlet servlet-nameLoginServlet/servlet-name servlet-classcom.servlet.LoginServlet/servlet-class /servlet servlet-mapping servlet-nameLoginServlet/servlet-name url-pattern/login/url-pattern /servlet-mapping這意味著當(dāng)你訪問http://localhost:8080/online/login時(shí)Tomcat會(huì)實(shí)例化com.servlet.LoginServlet并調(diào)用其doPost()方法。新手常犯錯(cuò)誤是把JSP路徑當(dāng)成Servlet路徑——比如以為/login.jsp會(huì)自動(dòng)觸發(fā)LoginServlet其實(shí)不會(huì)。所有業(yè)務(wù)邏輯必須走ServletJSP只是純展示層。檢查你的web.xml是否完整包含以下核心Servlet映射URL PatternServlet Class作用/loginLoginServlet統(tǒng)一登錄入口根據(jù)role跳轉(zhuǎn)不同首頁/order/listOrderServlet會(huì)員查自己訂單、商家查本店訂單、騎手查待接單/shop/manageShopServlet商家增刪菜品、修改營業(yè)狀態(tài)/rider/acceptRiderServlet騎手搶單接口含樂觀鎖防重復(fù)接單2.4 數(shù)據(jù)庫連接配置driverClassName別寫錯(cuò)url要帶useSSLfalsesrc/jdbc.properties文件控制數(shù)據(jù)庫連接典型內(nèi)容如下driverClassNamecom.mysql.cj.jdbc.Driver urljdbc:mysql://localhost:3306/online?useUnicodetruecharacterEncodingutf8mb4useSSLfalseserverTimezoneAsia/Shanghai usernameroot password123456注意三點(diǎn)driverClassName必須是com.mysql.cj.jdbc.DriverMySQL 8驅(qū)動(dòng)舊版com.mysql.jdbc.Driver已廢棄url中useSSLfalse必須顯式聲明否則MySQL 5.7會(huì)因SSL握手失敗報(bào)Communications link failureserverTimezoneAsia/Shanghai解決時(shí)區(qū)問題避免訂單時(shí)間比系統(tǒng)時(shí)間慢8小時(shí)。驗(yàn)證連接是否成功運(yùn)行TestConnection.java項(xiàng)目中通常有此測試類輸出Connection success!即表示打通。3. 四角色權(quán)限隔離實(shí)現(xiàn)不是靠if-else硬判斷而是URL路由Session屬性雙重?cái)r截3.1 登錄態(tài)設(shè)計(jì)Session中存User對象而非單純r(jià)ole字符串LoginServlet.java中關(guān)鍵代碼// 查詢用戶后將完整User對象存入session User user userService.login(username, password); if (user ! null) { request.getSession().setAttribute(user, user); // 存對象 String role user.getRole(); if (MEMBER.equals(role)) { response.sendRedirect(request.getContextPath() /member/index.jsp); } else if (SHOP.equals(role)) { response.sendRedirect(request.getContextPath() /shop/index.jsp); } // ...其他角色 }這樣做的好處是后續(xù)所有Servlet都能通過User user (User) request.getSession().getAttribute(user);拿到用戶全部信息ID、姓名、手機(jī)號無需反復(fù)查庫。而如果只存session.setAttribute(role, MEMBER)則每次都要根據(jù)role再去查用戶詳情性能差且易出錯(cuò)。3.2 URL級權(quán)限攔截web.xml中配置filter鏈項(xiàng)目包含AuthFilter.java它在web.xml中被配置為過濾器filter filter-nameAuthFilter/filter-name filter-classcom.filter.AuthFilter/filter-class /filter filter-mapping filter-nameAuthFilter/filter-name url-pattern/member/*/url-pattern /filter-mapping filter-mapping filter-nameAuthFilter/filter-name url-pattern/shop/*/url-pattern /filter-mapping !-- 其他角色路徑 --AuthFilter.doFilter()核心邏輯HttpSession session request.getSession(false); User user (User) session.getAttribute(user); if (user null) { response.sendRedirect(request.getContextPath() /login.jsp); return; } // 檢查URL路徑與用戶角色是否匹配 String path request.getRequestURI(); if (path.contains(/member/) !MEMBER.equals(user.getRole())) { response.sendRedirect(request.getContextPath() /error/403.jsp); return; } chain.doFilter(request, response); // 放行這種設(shè)計(jì)比在每個(gè)Servlet里寫if(!MEMBER.equals(role))更優(yōu)雅且修改權(quán)限規(guī)則只需改filter不用動(dòng)幾十個(gè)Servlet。3.3 數(shù)據(jù)庫級權(quán)限隔離DAO層SQL動(dòng)態(tài)拼接role條件以O(shè)rderDao.java為例查詢訂單列表時(shí)public ListOrder listOrdersByRole(User user) { String sql SELECT * FROM orders WHERE 11; ListObject params new ArrayList(); if (MEMBER.equals(user.getRole())) { sql AND user_id ?; params.add(user.getId()); } else if (SHOP.equals(user.getRole())) { sql AND shop_id ?; params.add(user.getId()); // 注意商家user.id shops.id } else if (RIDER.equals(user.getRole())) { sql AND rider_id ? AND status IN (ASSIGNED, PICKED_UP); params.add(user.getId()); } // 管理員無條件查全部 return queryRunner.query(sql, new BeanListHandler(Order.class), params.toArray()); }這里沒有用WHERE user_id ? OR shop_id ? OR rider_id ?這種危險(xiǎn)寫法而是根據(jù)role動(dòng)態(tài)生成WHERE條件從根本上杜絕越權(quán)查看。3.4 避坑常見權(quán)限翻車現(xiàn)場與修復(fù)方案現(xiàn)象原因解決方案會(huì)員能訪問/shop/add.jsp頁面JSP文件未被filter攔截用戶直接輸入U(xiǎn)RL繞過登錄校驗(yàn)在web.xml中為所有JSP路徑添加filter-mappingurl-pattern*.jsp/url-pattern并在filter中增加if(path.endsWith(.jsp)) { checkLogin(); }騎手接單后訂單狀態(tài)仍為“待接單”RiderServlet中更新訂單時(shí)未加事務(wù)或UPDATE orders SET statusASSIGNED WHERE id? AND statusWAITING條件漏寫導(dǎo)致并發(fā)時(shí)多個(gè)騎手同時(shí)更新同一訂單在RiderDao.updateStatus()方法上加Transactional需引入JDBC事務(wù)管理或用樂觀鎖UPDATE orders SET statusASSIGNED, rider_id? WHERE id? AND statusWAITING檢查executeUpdate()返回值是否為1管理員修改商家信息后商家登錄看到數(shù)據(jù)未更新Session中緩存了舊的Shop對象未在修改后清除在ShopServlet的update方法末尾添加HttpSession session request.getSession();brsession.removeAttribute(shop);中文搜索商家名稱時(shí)查不到結(jié)果MySQL表字符集是latin1但online.sql中建表語句未指定CHARACTER SET utf8mb4手動(dòng)執(zhí)行ALTER TABLE shops CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;登錄后跳轉(zhuǎn)到404頁面response.sendRedirect()中的路徑缺少上下文路徑contextPath統(tǒng)一寫成response.sendRedirect(request.getContextPath() /member/index.jsp);避免硬寫/online/member/index.jsp4. 核心業(yè)務(wù)流程深挖從會(huì)員下單到騎手送達(dá)的7個(gè)關(guān)鍵Servlet調(diào)用鏈4.1 下單流程CartServlet → OrderServlet → PayServlet三級聯(lián)動(dòng)會(huì)員點(diǎn)擊“去結(jié)算”觸發(fā)CartServlet// CartServlet.java protected void doPost(HttpServletRequest request, HttpServletResponse response) { HttpSession session request.getSession(); ListCartItem cart (ListCartItem) session.getAttribute(cart); // 1. 校驗(yàn)庫存查shops_products表 for (CartItem item : cart) { int stock productDao.getStock(item.getProductId(), item.getShopId()); if (item.getQuantity() stock) { request.setAttribute(error, 商品 item.getName() 庫存不足); request.getRequestDispatcher(/cart.jsp).forward(request, response); return; } } // 2. 將購物車轉(zhuǎn)為訂單預(yù)覽數(shù)據(jù)存入request域 request.setAttribute(orderItems, cart); request.getRequestDispatcher(/order/confirm.jsp).forward(request, response); }注意這里不做實(shí)際扣庫存只做前端校驗(yàn)真正扣庫存發(fā)生在OrderServlet的createOrder()中防止惡意刷單。OrderServlet處理最終提交// OrderServlet.java public void createOrder(HttpServletRequest request, HttpServletResponse response) { // 1. 開啟事務(wù) Connection conn JdbcUtil.getConnection(); conn.setAutoCommit(false); try { // 2. 插入訂單主表 String sql INSERT INTO orders (user_id, shop_id, total_price, status) VALUES (?, ?, ?, WAITING); QueryRunner qr new QueryRunner(); Object[] params {userId, shopId, totalPrice}; long orderId qr.insert(conn, sql, new ScalarHandler(), params); // 3. 批量插入訂單明細(xì) sql INSERT INTO order_items (order_id, product_id, quantity, price) VALUES (?, ?, ?, ?); ListObject[] batchParams new ArrayList(); for (CartItem item : cart) { batchParams.add(new Object[]{orderId, item.getProductId(), item.getQuantity(), item.getPrice()}); } qr.batch(conn, sql, batchParams); // 4. 扣減庫存關(guān)鍵 for (CartItem item : cart) { productDao.reduceStock(conn, item.getProductId(), item.getShopId(), item.getQuantity()); } conn.commit(); // 提交事務(wù) response.sendRedirect(request.getContextPath() /order/success.jsp?orderId orderId); } catch (Exception e) { conn.rollback(); // 回滾 e.printStackTrace(); request.setAttribute(error, 下單失敗請重試); request.getRequestDispatcher(/order/confirm.jsp).forward(request, response); } }這個(gè)事務(wù)塊保證了“訂單創(chuàng)建庫存扣減”原子性。若扣庫存失敗如超賣整個(gè)訂單回滾購物車數(shù)據(jù)不變。4.2 騎手搶單樂觀鎖防并發(fā)沖突的實(shí)戰(zhàn)寫法RiderServlet.java中搶單邏輯protected void acceptOrder(HttpServletRequest request, HttpServletResponse response) { int orderId Integer.parseInt(request.getParameter(orderId)); int riderId ((User) request.getSession().getAttribute(user)).getId(); // 關(guān)鍵UPDATE時(shí)加條件只更新statusWAITING的訂單 String sql UPDATE orders SET statusASSIGNED, rider_id?, update_timeNOW() WHERE id? AND statusWAITING; int updated queryRunner.update(sql, riderId, orderId); if (updated 1) { // 搶單成功推送消息此處簡化為寫日志 System.out.println(騎手 riderId 搶單成功訂單號 orderId); response.sendRedirect(request.getContextPath() /rider/myorders.jsp); } else { // updated0說明訂單已被他人搶走 request.setAttribute(error, 很抱歉該訂單已被其他騎手接走); request.getRequestDispatcher(/rider/waiting.jsp).forward(request, response); } }這種寫法比“先SELECT再UPDATE”更高效且天然防并發(fā)——兩個(gè)騎手同時(shí)執(zhí)行UPDATE只有一個(gè)能成功updated1另一個(gè)返回0前端提示“訂單已被搶”。4.3 商家接單狀態(tài)機(jī)驅(qū)動(dòng)的訂單生命周期商家后臺的ShopServlet提供/shop/accept接口但接單動(dòng)作實(shí)際是狀態(tài)躍遷// 訂單狀態(tài)流轉(zhuǎn)規(guī)則硬編碼在ShopServlet中 // WAITING → ACCEPTED → PREPARING → READY → DELIVERED public void acceptOrder(HttpServletRequest request, HttpServletResponse response) { int orderId Integer.parseInt(request.getParameter(orderId)); String currentStatus orderDao.getStatus(orderId); if (!WAITING.equals(currentStatus)) { request.setAttribute(error, 該訂單不可接單當(dāng)前狀態(tài) currentStatus ); request.getRequestDispatcher(/shop/orders.jsp).forward(request, response); return; } orderDao.updateStatus(orderId, ACCEPTED); response.sendRedirect(request.getContextPath() /shop/orders.jsp); }這種顯式狀態(tài)校驗(yàn)比單純UPDATE orders SET statusACCEPTED WHERE id?更安全避免商家誤操作將已配送訂單改成“已接單”。4.4 管理員監(jiān)控實(shí)時(shí)訂單看板的數(shù)據(jù)聚合邏輯AdminServlet.java的dashboard方法public void dashboard(HttpServletRequest request, HttpServletResponse response) { // 1. 總訂單數(shù) int total orderDao.countAll(); // 2. 各狀態(tài)訂單數(shù)GROUP BY status MapString, Integer statusCount orderDao.countByStatus(); // 3. 今日新增訂單WHERE DATE(create_time) CURDATE() int todayNew orderDao.countToday(); // 4. 熱門商家TOP5JOIN shops GROUP BY shop_id ListShop hotShops shopDao.findHotShops(5); request.setAttribute(total, total); request.setAttribute(statusCount, statusCount); request.setAttribute(todayNew, todayNew); request.setAttribute(hotShops, hotShops); request.getRequestDispatcher(/admin/dashboard.jsp).forward(request, response); }注意countByStatus()方法在OrderDao.java中使用原生SQLSELECT status, COUNT(*) as count FROM orders GROUP BY status而不是用Hibernate Criteria因?yàn)镴SP項(xiàng)目追求簡單直接沒必要為統(tǒng)計(jì)功能引入ORM。5. 調(diào)試與排錯(cuò)定位JSPServlet項(xiàng)目“頁面空白”“404”“500”的黃金三步法5.1 第一步看Tomcat控制臺日志不是瀏覽器F12當(dāng)頁面一片空白或報(bào)錯(cuò)立刻切到Eclipse底部Console標(biāo)簽頁觀察Tomcat啟動(dòng)日志和HTTP請求日志。常見線索SEVERE: Error filterStart→ web.xml中filter類路徑寫錯(cuò)如com.filter.AuthFilter實(shí)際在com.filters.AuthFilterjava.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver→mysql-connector-java-8.0.33.jar沒放進(jìn)WebContent/WEB-INF/lib/org.apache.jasper.JasperException: Unable to compile class for JSP→ JSP里Java代碼語法錯(cuò)誤比如% int x ; %少寫了值Caused by: java.sql.SQLException: Access denied for user rootlocalhost→ jdbc.properties密碼錯(cuò)誤或MySQL用戶權(quán)限不足。5.2 第二步用curl模擬請求繞過瀏覽器緩存干擾瀏覽器可能緩存了舊的404頁面用curl直擊Servlet# 測試登錄接口POST curl -X POST http://localhost:8080/online/login \ -H Content-Type: application/x-www-form-urlencoded \ -d usernameadmin -d password123456 # 測試訂單列表GET帶session curl -b JSESSIONIDABC123... http://localhost:8080/online/order/list如果curl返回正常HTML說明是前端JS或CSS路徑問題如果curl也報(bào)錯(cuò)則是后端邏輯問題。5.3 第三步在關(guān)鍵Servlet打斷點(diǎn)看request域和session域在LoginServlet.java的doPost()第一行加斷點(diǎn)啟動(dòng)Debug模式查看request.getParameter(username)是否為空 → 檢查form表單name屬性是否拼錯(cuò)查看request.getSession().getAttribute(user)是否為null → 檢查登錄成功后是否真的存了session查看request.getRequestDispatcher(/member/index.jsp).forward(request, response)后index.jsp中% request.getAttribute(user) %是否輸出null → 檢查forward時(shí)request域是否被清空forward是同一次請求request域保留sendRedirect是新請求request域丟失。5.4 避坑JSP開發(fā)中最容易忽略的5個(gè)細(xì)節(jié)細(xì)節(jié)為什么重要如何驗(yàn)證JSP頁面頂部必須有% page contentTypetext/html;charsetUTF-8 %缺少此聲明會(huì)導(dǎo)致中文亂碼且部分Tomcat版本會(huì)報(bào)HTTP Status 500查看瀏覽器開發(fā)者工具Network → Response Headers → Content-Type是否為text/html;charsetUTF-8所有JSP中EL表達(dá)式${user.username}需開啟EL解析Tomcat 7默認(rèn)開啟但若web.xml是Servlet 2.3規(guī)范需手動(dòng)開啟% page isELIgnoredfalse %在JSP中寫${11}若輸出2則EL正常若輸出${11}則被忽略JSTL標(biāo)簽庫必須引入且版本匹配項(xiàng)目用c:forEach遍歷訂單需jstl-1.2.jar和standard-1.1.2.jar檢查WEB-INF/lib/是否有這兩個(gè)jar且% taglib prefixc urihttp://java.sun.com/jsp/jstl/core %中的uri與jar包匹配圖片/CSS/JS路徑用% request.getContextPath() %寫死/images/logo.png在部署到二級路徑如/myapp/時(shí)會(huì)404查看瀏覽器Network確認(rèn)資源請求URL是否為http://localhost:8080/online/images/logo.png數(shù)據(jù)庫連接關(guān)閉必須在finally塊Connection.close()未執(zhí)行會(huì)導(dǎo)致連接池耗盡后續(xù)請求全部超時(shí)在BaseDao.java的closeConn()方法中加System.out.println(Connection closed);觀察日志是否每條SQL后都打印6. 進(jìn)階技巧把這套JSPServlet系統(tǒng)改造成可演示的“高光時(shí)刻”頁面6.1 會(huì)員端加一個(gè)實(shí)時(shí)訂單狀態(tài)輪詢讓下單體驗(yàn)不枯燥原系統(tǒng)訂單提交后直接跳轉(zhuǎn)success.jsp用戶不知道何時(shí)配送。我們給會(huì)員首頁加一個(gè)AJAX輪詢!-- member/index.jsp -- div idorder-status h3您最近的訂單/h3 div idstatus-refresh正在查詢.../div /div script function checkOrderStatus() { fetch(% request.getContextPath() %/order/status?lastUpdateTime new Date().getTime()) .then(response response.json()) .then(data { document.getElementById(status-refresh).innerHTML 訂單 ${data.orderId} 狀態(tài)${data.status}${data.updateTime}; if (data.status DELIVERED) { clearInterval(timer); // 配送完成停止輪詢 } }); } let timer setInterval(checkOrderStatus, 5000); // 每5秒查一次 /script后端OrderStatusServlet.javaprotected void doGet(HttpServletRequest request, HttpServletResponse response) { User user (User) request.getSession().getAttribute(user); // 查找該會(huì)員最新一條非DELIVERED訂單 Order latest orderDao.findLatestByUser(user.getId()); response.setContentType(application/json;charsetUTF-8); response.getWriter().write(new Gson().toJson(latest)); }這樣會(huì)員就能看到“已接單→制作中→已出餐→配送中”的全過程演示時(shí)觀眾會(huì)覺得“這系統(tǒng)真在跑”。6.2 騎手端用WebSocket實(shí)現(xiàn)搶單廣播輕量級改造雖然原系統(tǒng)是HTTP輪詢但我們可以在RiderServlet.acceptOrder()成功后用Tomcat內(nèi)置WebSocket推送// RiderServlet.java if (updated 1) { // 推送搶單成功消息給所有在線騎手 WebSocketBroadcaster.broadcast(RIDER_ riderId, 訂單 orderId 已被搶走); response.sendRedirect(...); }前端騎手頁面監(jiān)聽const ws new WebSocket(ws://localhost:8080/online/rider-ws); ws.onmessage function(event) { alert(新訂單 event.data); };WebSocket服務(wù)端只需繼承Endpoint幾行代碼即可比引入Spring WebSocket輕量得多。6.3 管理員端導(dǎo)出Excel報(bào)表的POI集成技巧AdminServlet.exportOrders()方法public void exportOrders(HttpServletRequest request, HttpServletResponse response) { ListOrder orders orderDao.findAll(); // 創(chuàng)建Excel工作簿 XSSFWorkbook workbook new XSSFWorkbook(); XSSFSheet sheet workbook.createSheet(訂單報(bào)表); // 表頭 String[] headers {訂單號, 會(huì)員, 商家, 總金額, 狀態(tài), 下單時(shí)間}; XSSFRow headerRow sheet.createRow(0); for (int i 0; i headers.length; i) { headerRow.createCell(i).setCellValue(headers[i]); } // 數(shù)據(jù)行 int rowNum 1; for (Order o : orders) { XSSFRow row sheet.createRow(rowNum); row.createCell(0).setCellValue(o.getId()); row.createCell(1).setCellValue(o.getUserName()); row.createCell(2).setCellValue(o.getShopName()); row.createCell(3).setCellValue(o.getTotalPrice()); row.createCell(4).setCellValue(o.getStatus()); row.createCell(5).setCellValue(o.getCreateTime().toString()); } // 輸出響應(yīng) response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet); response.setHeader(Content-Disposition, attachment; filenameorders.xlsx); workbook.write(response.getOutputStream()); }關(guān)鍵點(diǎn)poi-ooxml-4.1.2.jar必須放入WEB-INF/lib/且web.xml中無需額外配置POI純Java實(shí)現(xiàn)零依賴。6.4 最后的血淚習(xí)慣每次改完Servlet必做三件事清空Tomcat work目錄/apache-tomcat-9.0.83/work/Catalina/localhost/online/否則舊的JSP編譯class殘留導(dǎo)致“改了代碼卻沒生效”的玄學(xué)重啟Tomcat前先stop再start不要用Eclipse的“Restart”按鈕它有時(shí)只reload不重啟靜態(tài)資源和類加載器狀態(tài)可能錯(cuò)亂在web.xml頂部加注釋記錄修改時(shí)間!-- Last modified: 2024-06-15 by zhangsan - added /rider/complete mapping --因?yàn)槎嗳藚f(xié)作時(shí)web.xml是路由總綱誰動(dòng)了哪條路徑必須可追溯。從那以后我每次改完Servlet都強(qiáng)制走一遍這三步——哪怕只是改了一行response.sendRedirect()的路徑。它不能讓你寫出更炫的代碼但能讓你在凌晨兩點(diǎn)接到“線上訂單不入庫”的電話時(shí)30秒內(nèi)定位到是OrderServlet的事務(wù)沒提交而不是懷疑MySQL主從同步出了問題。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日日干日日操五月天伦理视频| 欧美精品1区2区3区| 国产亚洲女v在线观看| 国产精品久久久久中文字幕| 人妻在线臀日韩| 91国精产品| 蜜臀99久久精品久久久久| 91影库| 久久婷婷五月天| 99精品伊人| 蜜臀av中文字幕| 日韩 欧美 国产 麻豆| av日韩中文字幕| 久久精品中文字幕无码l| 91在线视频免费中出| 大香蕉视频啪啪啪啪| 日本潮催一卡操| 欧美极品女人的天堂| 蜜臀久久在线视频| 天天看,天天做| 亚洲狼狼干综合1| 91五十路| 亚洲人成色9999精品久久| 日韩无码极品| 又黄又粗又硬又长又大| 亚洲春色欧美激情自拍| 欧美色图99| 日韩精品免费高清视频在线| 东北操逼| 人妻加勒比东京热| 婷婷伊人五月| 欧美97av| a在线观看| 午夜福利 成人 91| 污到发麻的视频 国产| 欧美色涩| 91AV天美在线视频| 午夜免费视频1000| 多毛小伙内射老太婆| 天欧美在线| 秋霞久久亚洲精品成人| 激情视频一二三| 丁香五月婷婷色| 大象AV在线| 加勒比海成人视频网| 素人伊尹大香蕉免费下载视频| 99久久久er直播网址| 人妻第一页| 人妻插插人妻人| 中文自拍欧美影视| 91一区二区三区蜜桃| 操逼片中文| 日少妇视频| 懂色av中文字幕一区二区三区天美 | 色噜噜人妻av中文字幕| 91麻豆天美传媒HD| 五月婷婷丁香六月| 人人操人人操草草| 另类图片欧美激情综合| 久久久免费视频18| 97欧美色综合| 小草精彩毛片| 午夜理论片在线观看免费| 婷婷伊人五月| 天天综合欧美黑人| 爆乳免费黄网站| 色情五月婷婷| 一区二区偷拍拍视频| 中文字幕亚洲永久精品| 九热中文字幕| 午夜舔阴达高潮视频免费看| 日夜干射色啊| 九草九九九| 91熟女综合| 麻豆性爱视频在线播放| 农村妇女精品一区二区| ss久久| 性欧美体内射精| 天天日老熟妇| 色盈盈影院| 色制服丝袜夫妻av一区| 久久人爽| 亚洲Av诱惑| 国产久久天堂资源| 欧美日韩国产另类综合| 欧美一区二区三区四区综合| 在线免费试看60秒| 国产自偷| 少妇99| 久久久久国产精品人妻aⅴ天堂| 99精品九九九九九九| 一二三区视频在线观看| 国产v片在线免费观看| 国产成人无码a| 久久这里是精品| 日本www操操操| 欧美,日韩综合久久| 操逼网免费无码视频| 天天看天天在线精品| 中文字幕亚韩| 国产精品天干天干综合网麻豆| nuu12国产麻豆精品| 黄久久| 干少妇视频| 欧美中文字幕日韩在线| 国产欧美第五页| 正宗无毛一线天嫩逼| 欧美色图片| 天天干人妇| 精品人妻一区春色| 久操91视频| 中文字幕五区| 中文字幕色AV| 亚洲色图亚洲无码强奸乱伦| 亚洲精品视频二区| 中文字幕97| 无码9区| 无码精品啪啪啪一区二区三区三州 | 欧在线一二区| 欧亚综合一卡二卡中文字幕| 少妇色欲综合网2| 性色综合网| 中文字幕一区二区三区视频播放| 亚洲精品天天影视综合网 | 岛园激情| 中文字幕视频二区| 欧美人妻少妇| 日本日逼视频网| 岛国AB视频| 亚洲av青草久久一区二区| 插入逼91| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 96精品在线| 四色永久成人网站| 口爆综合网| 欧美色棕合| 日韩乱码av| 九九毛片这里只有精品| 天天干天天中出av| 激情终合网| 西西美女视频网| 超碰中文字幕人妻草一区| 国产精品午夜福利视频| 天欧美在线| 久久中文字幕人妻熟av女蜜柚| 综合亚洲网| 凌辱美少妇久久aV| 精品九九| 综合操逼| 97舔舔| 日韩av女优在线免费一区| 97 亚洲 日韩 欧美 在线| 97高清啪啪| 精品丰满人妻一区二区三区免费观| 亚洲高清无码AAA久久久精品| 97国产成人精品免费视频| 国产亚洲日本精品在线| 精品久久一区二区三区四区五区| 蜜桃精品一区二区三区ww| 91蜜臀在线久久久久| 一区二区三区 丝袜高跟| 丰满人妻一区二区中文| 国产后入式在线观看| 一二三区操逼国产91| 无码操逼视频一下| 东北丰满熟女国产一区| 五月丁香啪| 婷婷伊人一区| 欧美一品道| 亚洲熟妇白浆无码AV| 欧美色乱| 久久婷婷五月天| 中美日韩毛片| 97se亚洲| 久久人人舔人人爽舔人人av片| 99天堂网| 久久妇| 91东北熟女| xxx0国产在线播放| 亚洲瓯美色图| 亚洲欧美伦综合| 不卡中文字幕aⅴ在线| 超碰精品在线| 亚洲高清少妇| 欧美性爱精品七区| 懂色AV一区二区三区| 天天草AV| 强奸乱伦AV网站| 97爱免费插| 99久久久| 成人八戒网站| 亚洲永久永久永久永久一级一级一级精品 | 97综合久久| 精品黑人一区二区| 东京热熟女亚洲视频网站| 国产高清自拍| 五十路二区在线| 外站AV在线| 秋霞影音一区二区三区| 黄色不卡视频| 一本大道不卡一二三区| 亚洲一二三| 人妻一区二区三区四区视频| 欧美久久草熟女| 清纯唯美综合| 久艾草在线精品视频在线观看| 国产亚洲色婷婷久久99精品91| 久操在97| 国产久久av| 国产精品视频播放| 中国zzijzzijzzwww精品| 伊人成人情色综合| 三级日本一区二区三区| 亚洲最大的黄色电影网站。| 久久精品国产亚洲AV先锋| 最新欧美色网| 伊人国产成人av网站| 男人的天堂不卡一区二区| 亚洲中文sv| 亚洲欧美中文日韩视频中国语| 国产情色第一第二页在线观看| 亚洲免费成人在线高清无码视频 | 51国产午夜精品视频| 你操综合| 天天插夜夜操| 成人黄页| 丁香六月啪| 91 国产丝袜在线播放-百度| 欧亚在线视频| 青娱乐国产精品| 九九成人| 国产精品人妻无码久久久互動交流| 大香蕉97久久| 九热久| 不卡超碰护士AV在线免费播放| 国产9l 大屁股| 极品五月天噜噜| 欧美精品宗合| 嫩草 人人网精品| 人妻81p| 蜜臀久久99精品久久综合| 天天综合网在线观看| 日本亚洲vr欧美不卡高清专区| 亚洲最新Av| 啊啊啊不要好爽日韩无码一区| 日韩猛交| 有码色中文字幕在线观看| 天堂网亚洲区手机版| 少妇二级| 性色av蜜臀av色欲aV| 欧美久久婷| 天天操夜夜嗨| 97超碰超碰| 999综合色| AV在线性爱| 亚洲激情久久久伊人综合| 欧美成人精品一区二区三区| 欧美天天搞| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 国模久久在线| 蜜乳Av成人片网站| 亚洲资源站| 2019天天操天天爽天天拍| 久久精品国产亚洲AV片多多| 超碰97丝袜| 欧美在线中M| 一起草AV| 久久亚洲欧美中文字幕国语| 亚洲色图欧美一区二区不卡| 中文字幕久久亚州无码| 久久大香蕉手机高清| 日韩欧美中文| 人妻另类 专区 欧美 制服| 我爱搞逼综合网| 久久黄黄| 97五月天| 人妻人人操| 亚州综合在线| 97中文综合| 欧美婷婷久久| www.激情| 偷窥自拍A片| 超碰日韩人妻| 女人精品内射国产99| 欧洲站一级二级三级h| 宅男91视频在线播放| 成年人一级黄色毛片大全在线观看| 亚洲久草AV色图| 中文字幕精品久久久久人妻红杏ⅰ| 99久久网站| 操操逼操操逼操操逼逼| 综合另类| 国产精品女aA片爽爽视频| 91美女视频直播| 欧美色图在线视频少妇| 在线观看视频91| 国产白领连续中出在线观看| 96AV精品| 中文字幕高清20页视频| 一本道综合色图| 日本污ww视频网站| 一块操欧美性爱| 香蕉精品二区二区| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 97色婷婷| 五月丁香综合网| 色婷婷丁香| 人妻少妇av在线观看| 欧美操逼熟女| 日本一区二区不卡精品| 操逼逼中文字幕| 95自拍视频在线观看| 国产无马在线| 91丨九色丨国产丨人妻在线| 成人av影院在线观看| 中文乱码字幕观看| 人人模人人看| 91看黄片| 99老司机精品视频在线观看| 嫩草影院在线观看精品 | 天美传媒精品久久视频| 天天热精品| 色综合1991| 日本青青草在线| 久久综合精品一区二区三区| 亚洲限制级在线| 99re这里只有精品3| 日韩少妇丰满亚洲| 欧洲亚洲天堂精品 | 国产精品视频精品一二| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 女同性恋中文字幕| 日韩八十路老熟女| 青青草依人大香蕉| 七月丁香婷婷| 国产精品ⅴ无码大片在线看.| 久久69精品久久久久久久| 亚洲成a人v欧美综合天堂下载 | 老司机久久| 久久一区二区加油站| 精品中文字幕第一页| 色综合天天| 亚洲激情在线一区二区| 91久热这里只有精品| 丁香五月婷婷啪啪| 国产亚卅97| 日韩精品一区,二区 九九...老司机| 九九九九九九九九九九九蜜桃| 久久九操在线观看| 国产91 丝袜在线播放00-百度| 一区二区三区国产在线播放| 亚洲黑人在线| 亚洲成人一区二区精品| 人妻嗯啊啊在线播放| 91精品人妻一区二区三区蜜桃臀| 亚洲黄a三级三级三级看三级| 国产精品农村妇女精品| 亚洲va有码在线天堂| 欧美性爱精品一区二区| 欧美久久婷| 97在线播放| JIZZJIZZ亚洲女人被躁| 国产乱伦视频污| 国产精品一区二区 尿失禁| 日本超碰在线国产一区| 久久偷偷色综合蜜桃| 国产精品久久久久久久久久久久久久吹| 丰满人妻被猛烈进入中| 欧美在线视频99| 动漫区日韩区欧美区| #NAME?| 欧州一区二区三区四区| 丁香六月婷婷久久综合| 欧美精品偷拍| 日韩免费一级性爱视频| 99熟女| 久久草视频污视频| 欧美人与动性人交a| 欧美日韩性爱无码| 激情四射五月天| 色图综合网| 亚洲精品成人激情在线| 99蜜桃臀久久久欧美精品网站| 少妇熟女一区二区三区| 熟女字幕| 骚乳在线| 强奸乱伦AV一天堂网| 中文字幕 码 自拍 视频 区| 成人精品久久| 日韩AV一起草| 精品一区二区三区四区外站 | 丁香六月婷婷久久综合| 综合五月天| 99re国产精品视频| 色情亚洲日本成人| 国产精品无码成人精品| 小草三级久久观看| 清纯唯美亚洲| 九九玖玖精品| 97资源站国产精品| 玖玖婷婷五月天| 大香交| 无码国产精品久久久久| 欧美性综合| AV不卡在线| ...日韩成人一区二区三区字幕| 国产操伦| 婷婷九月国产| 第四色奇米影视777| 天天综合网一91网| 精品免费视频国产一区| 亚洲骚女一区二区三区| 久热这里| 欧美三级不卡| 99亚洲国产精品色一区二区三区| 抽查国产福利主播| 国产精品白丝| 国产视频一区二区三区久久亚洲天堂| 亚洲无码一区成人免费午夜| 日本三级黄页| www.亚洲黄色| 九九九九九九成人| 国产一区免费午夜视频| 国产AV线| 综合网欧美在线| 97中文字幕一区| 天天色综合图片| 深夜福利黄片| 性色av一区二区| 亚欧Av| 久久久久久久唑| 91超碰人人| 亚洲无码国产精品久久| 综合熟妇一区二区三区| 98一区二区精品| 少妇激情一区二区三区视频| 人人澡综合涩| 五月丁香激情综合| 91被操| 91视频综合在线| 熟女乱伦二区| 色黄污美女啪啪啪免费网站| 91精品操美女| 啊啊啊好湿国产一二| 日韩国产不卡在线视频| 天堂亚洲欧美| 91逼逼女人91| 黄色性爱网网| 激情五月婷| 亚洲AV人人澡人人爱| 国产精品成久久久久午夜午夜| 97色涩| 国产亚洲色婷婷久久99精品91| 91天天综合日韩欧美| 日韩草久视频| 国产剧情AV不卡在线观看| 久久久久久人| 色噜噜人妻丝袜AV资源| 精品中文字幕一区二区| 超碰在线人人射| 婷婷激情五月综合| 亚洲成人精品久久久| 国内偷自视频区视频综合| 清纯唯美综合| 人人操人人射人人干| 99青草| 爆操无码| 影音先锋少妇| 强奸抽插av| 骚熟女吞| 欧美有码亚洲中文字幕一区二区三区四区| 色色综合网站| 亚洲最大的综合性av| 亚洲巨爆乳一区二区三区四季网| 1二区9| 懂色AV一区二区三区| 欧美日韩午夜精品一区二区三区 | 天美国产精品| 狠狠干综合| 丰满人妻一区二区三区四区| 色网站导航大全| 可乐操在线| 国产日韩精品一区二区三区| 99久久久久久久久| 免费观看国产小粉嫩喷水精品午| 丁香色狠狠色综合久久小说| 91国产丝袜白虎| 天天躁狠狠躁av| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 99色婷婷| 97色干| 婷婷五月天激情网| 91人妻中文| 97人人夜夜精品视频| 极品销魂美女一区二区| 91精品人| 天天激清| 丝袜人妻av一区二区| 搡老女人老91妇女老熟女| 欧美性色欧美| 色综合91好| 麻豆天天躁天天揉揉AV| av2014 日韩在线中文字幕| 亚洲精品久久一区二区三区蜜桃臀| 60秒试看最爽10分钟网站| 天天操女人| 清纯唯美亚洲另类| 自拍亚洲综合| Julia Annxxxxx| 亚热日本熟女| 一二视频神马久久传媒| 国内外毛片在线观看| 超碰久久.com| 人妻碰碰碰碰碰碰| 亚洲免费97免费| 红桃视频高潮| 色色色色色色色色综合| 9长久久精品| 9997se| 国产区在线| 亚洲黑人在线| 熟妇xxxxx性春色| 国产 热久久久久国产精品| 亚洲九月丁香| 久久婷婷视频| 第二页中文字幕| 91 国产丝袜在线放观看| 欧美黑人与女人91~| 97色妞| 91AV国产精品| 91激情| 日韩熟女乱伦中出| 操逼操网| 日韩美一区| 成人网欧美风情| 亚洲综合射| 97久久天天综合色天天综合色电影| 久久婷婷苹果| 国产精品久久久久久久久久久久久久吹 | 999亚洲国产视频| 日本免费亚洲欧美| 蜜臀精品1区2区| 精品夜夜澡人妻无码| AV一二区| 九草九九九| 清纯唯美激情| 日韩中文字幕精品一区在线| 亚洲国产综合久久久性感熟妇| 精品国产Av无码久久久伦古装| 丰满丝袜少妇AV| 成人青青草原伊人| 婷婷干黄色| 大香蕉五月天| 性色av一区二区| 91欧| 日韩欧美tv一区二区在线观看| 国产99热| 97久精品| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | m欧洲一级午老| julia国产在线| 男人的天堂免费| 亚洲高清综合网| 东北女人操比视频| 99热超碰在线| 国产成人精品亚洲日本| 在线一道啪| 色色色综合| 国产久久久久久| 久久久97| 亚洲操逼网| 宗合情欲网| 欧美最大综合网| 男女日B国产| 丁香五月综合| 久久久久久久六六| 日本成熟少妇A∨网站| 99欧美| 亚洲精品黑丝| 国产精品一级片在线看| 久久只有精品一区二区三区| 人妻熟妇久草在线| 亚洲欧洲美腿丝袜| 精彩久久中文| 中文字幕一区电影在线观看| 亚洲限制级在线| 亚洲性网| 亚洲骚女一区二区三区| 亚州性色| 一个色导综合| 操人妻逼91| 久操视频在线观看| 国产不卡片| 97操97干| 另类天堂| 久久精品一区二区| 999狠狠综合| 色九久| 超碰79人人乐| 久久精品| 国产白嫩精品久久| 国产又黄又粗的视频| 色九月综合| 亚洲天天操| 区日韩亚洲乱码av电影| 欧美影院一区二区三区| 国产大片精久久久久久| 美女操逼A A| 少妇人妻精品| 少妇啪啪自拍| 肉丝中文无码高清| 91久久婷婷| 日韩小电影| 久久嫩草国产成人一区| 国产精品露脸在线观看| 欧美韩国你懂得在线 | 97这里都是精品| 亚洲精品乱码线路中文字幕| 天天综合网~91综合网| 亚洲精品乱码久久久久久蜜桃麻豆 | 好吊色综合| 四月丁香婷婷| 强奸乱伦AV网址| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 成人一二| 黄色小视频日本txt| 97WW精品| 久久99操天天日| 九九九综合精品| 好爽要喷了| 无码人妻一区二区三区色欲aⅴ | 国产精品永久免费10000| 天美传媒麻豆一区二区三区国产精| 中文字幕日本久久| 中文字幕欧美丝袜07资源| 久久色情| 日韩精品资源专区二区| 乱操9999| 夜夜高潮夜夜爽| 国产探花日韩援交| 色欧美色交综合| 偷拍 精品 另类 四区| 手机在线中文字幕国产| 加勒比综合在线| 精品人妻一二三四区视频| 大香蕉AV在线| se吧提供国产乱老熟视频胖女人| 伊人久日| 91麻豆天美国产欧美日| 2020国产精品| 自拍偷拍国产欧美日韩韩| 亚洲欧美天| 色九九九| 大香蕉综合网| 嫩草一区二区在线观看| 国产91福利小视频在线观看| 日本国产二线女色| 日本欧美国内在线| 久久久久久久伊人精品| 色97综合中文字幕| www.高清无码诱惑一区.com | 亚洲三级。日韩三级| 日本欧美国内在线| 美女视频尤物网在线看| 东北操逼| 欧美熟妇操操视频| 激情综合97| 天美麻花大全视频| 伊人久久综合精品欧美| 2017av无码免费无线播| 精品人妻一区二区三区不卡断| 性性久久| 91天美传媒精品| 97国产成人精品免费视频| 人人人摸人人| 老熟妇乱轮| 熟女精品日韩一区二区三区| 91老熟女91老女人| 四虎在线播放| 国产女同性恋视频| 一二三四免费视频| 五月丁香六月婷综合成人综合 | 七月丁香婷婷| 91N综合网在线| av麻豆啪啪| 欧美内射少妇| 日日日日日| 99热啪啪| 日日干夜夜干| 91人妻中文| 思思热在线cao| 天天色黄色影院天天操| 肏逼福利网站| 亚洲无码电影久久久| 97久久久| 日韩综合97p| 香港久久久| 中文字幕欧美精品亚洲日韩蜜臀| 干美女人妻| 999熟女精品| 国产乱弄免费在线视频。 | 黑丝少妇在线观看| 99精品视频在线观看免费| 天天干天天燥| 亚洲色图尤物视频| 国产女人与拘做受视频免费 | 蘋果手機免費看成人Av| 亚洲天堂日本| 欧美色图自拍| 33044男人的天堂深夜备| 加勒比久久av| 校园春色 亚洲| 屌妞视频久久久久久久久久久久| 亚洲精品国产AV天美传媒| 欧美日韩国产中文精品字幕自在自线, | 91AV老熟女视频| 中文字幕五区| 性爱网站一区二区| 亚洲天堂中文字| 在线观看亚洲专区| 亚洲AV无码国产成人| 久久99久久99久久99人受| 色99视频| 婷婷久久五月天| 啊啊啊啊视频免费| 久久久久密臀一区二区| 久久天天性久久伊人| 日本特黄f c2| 亚洲老熟妇xxx| 亚州成人a∨| 久日91在线| 久久精品国产97欧美精品亚洲 | 操婷婷逼| 天天干天天插| 91久久久视| 97超碰伊人| 91欧美少妇| 人人操人人爽人人操人人| 国产毛片久久久久久久| 久99久视频| 一区二区三区日韩欧美| 久久久久久久久久久久黄色| 欧美老妇综合网| 日本不卡高清免v欧美日韩在线观看| 久久综合18p| 嫩草 我啊~嗯~在线| 日韩91网站| 一级片在线观看高清无码| 激情专区综合| 77国产精品| 97在线免费看视频| 2019天天干天天操| 天天插夜夜操| 91在线页| 亚欧美色图| 强被迫伦姧在线观看无码网站| 日韩一区二区三区四区五区| 九九性视频| 国产农村妇女精品一| 久艹视频在线| 久久久久久九九九九九| 中国大陆国产高清AⅤ毛片| 国产精品com| 丁香五月性| 亚洲一区二区三区麻豆传媒| sewuyueav| 国产宅男宅女在线观看| 亚洲熟妇图片| 97操B| 日韩AV无码中文一区二区| 日韩欧亚太美不卡| 黄色工厂这里只有精品| 黄色av网站在线播放| 91操熟女| 丁香六月激情| 欧洲精品欧洲精品| 无码不卡八戒| 精品夜夜澡人妻无码| 校园春色 亚洲| 91c色| 五月色综合| 欧美九一精品久久久熟妇| 欧美黑人精品在线播放| 91ise欧美| 日韩大香蕉AV影片| 日本污ww视频网站| 久肏视频字幕| 人妻一区视频| 91人妻视频在线| 97视频免费在线观看| 久久久久人妻| 加勒比综合a∨| 亚洲色图欧美一区二区不卡| 理论久久婷婷网 8| 久热这里只有精品9| 久久精品毛片免费不卡| 国产精品久久久久久久久久久久久久久久| 日本不卡一二区| 婷婷色五月激情| 91九色丰满高潮| 国产99 中文字幕日韩小视频| 精品人妻一二三四区视频| 日本欧美韩国国产在线| 操人妻丝袜高跟| 九九九九热| 国产精品视频电影| 欧美特大AA级黄片| 国产日韩人人| 91精品久久久| 超碰97亚洲区| 超碰人人干| 91成人无码| 97精品国产97久久久久久户外免费| 欧美色图偷拍另类| www.yeyecao| 中文字幕一区二区三区蜜臀| 激情五月综合开心五月| 国产精品久久发布| 国产精品一区二区亚洲人成毛片| 神马午夜久久久| 密乳无码| 91精品人妻啪啪间| 九热视频| 久久色网| 蜜桃久久久久久| 日韩欧美aⅴ综合网站发布| 超碰97首页| 色综合九九| 亚洲天堂资源在线| 亚洲城人男人的天堂| 欧洲亚洲国产综合在线| 黑人粗大V S日韩女优视频| 欧美性巨大╳╳╳╳╳高跟鞋| 91人妻久久久久久久久久久久久| 97精品熟女少妇一区| 欧美性五月| 国产真实野战在线视频| 大香蕉视频啪啪啪啪| 99热综合| 国产传媒午夜理伦精品| 日韩人妻少妇中文字幕| 无码高清操逼网址| 伊人aaa| 亚洲五码一区二区三区| 91白嫩| 国产AV人人 夜夜人人澡| 99久久精品无码一区二区| 欧美亚洲中文字幕| 久久人妻四季| 精品在线观看视频在线| 蜜桃臀av一区二区| 午夜天堂精品久久| 激情国产乱伦Av| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 91操熟女视频| 少妇国产不卡| 影音先锋中文字幕日本好一区二区| 久午视频| 色爽——AV| 色妹子A V| 不卡啪啪视频| 亚洲国产综合视频| 青青草原成人| 亚洲色图加勒比| 久久精品性| 五月婷网站| 天天日天天操天天射河南省| 中日韩久久久免费看| 啊啊啊97视频| 亚洲欧美精品91| 日本黄色精品专区网站| 日韩99999| 男人的天堂2019AV| 久久欧美性爱视频| 欧美一级美片在线观看免费| 精品少妇99| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 日本有码影片下载| 午夜精品视频777| 美国aaaaa一级黄片| 国产色综合亚洲色综合吹潮| 色偷偷综合91久久噜噜| 国产久久视频| 你操综合| 操少妇很爽av| 操迟操逼在巾线Fre看| 边做饭边操逼逼| 国产v亚洲v日韩v欧美v片另类 | 久湿久久 | 综合激情97 | 人人澡人人澡人人| 安徽熟妇视频| 亚洲中文字幕97久久精品少妇| 亚洲性爱无码乱伦av| 亚洲天堂AV在线播放| 亚瑟国产精品久久无码| 欧美999999| 磁力99AV| 这里是精品| 中文自拍欧美影视| 久久久久久AV无码免费网站| 屁屁影院一区二区三区国产| 久久仑合| 久久久久久午夜男人的天堂| 久热99| 九月丁香| 五月丁香综合网| japan日本高清乱xxxx| 欧美丰满少妇xx高潮| 豆花视频操逼网址| 隔壁邻居波多野结衣中文字幕| 欧美成熟性爱精品| 看免费一级在线播放毛片| 成人26uuu| 女人被男人桶爽视频网站| 极品销魂美女一区二区 | 亚欧性爱在线无码| 五月天激情四射| 水野优香在线观看| 一起草av| 六月丁丁香| 韩国女主播青草福利视频| 怡红院怡春院| 熟妇熟女视频一区二区三区| 久操婷婷| www四虎| 天天日老熟妇| 青青久操| 久久少妇人妻| 风间由美日韩欧美久久| 久热大香蕉网站| 亚洲综合伊人无码久久| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 久久男人的天堂| 夜夜操美女| 午夜高清成人在线视频| 中文字幕第页| 日韩在线97| 国产青青综合伊人| 老熟乱一区二区三区四区| 中文字幕一区二区三区蜜桃视频| 综合亚州欧美| 2023天天操夜夜操| 欧美性爱日韩性爱| 99久久综合网| 欧美香蕉视xxx| 亚洲色鬼| 韩国女主播青草在线| 久久精品99| 欧美亚洲韩国视频十五区 | 美国日韩黄片| 国产中出内射一区二区| 天天干天天操天天操夜夜操天天操| 无码逼| 亚洲男人天堂2019| 欧美午夜视频| 青草成人免费视频一COm| 亚洲春色欧美激情自拍| 97色干| 婷婷情色五月天| 黄页网站成人免费| AV和黑人在线播放| 99综合网| http://qxhbdz.com| 亚洲欧美日韩电影网站一区 | 任你草| 欧美日不卡| 99re在线视频国产| 亚洲熟女诱惑| 在线无码网站| 欧美日韩国产一区二区小黄片大全| 日韩激情啪啪| 人妻天天夜夜爽一区二区| 天天日天天射天天干| 亚洲精品97p| 久久久久人妻二区精品叶可怜| 99热在线播放| 欧亚揄拍偷拍精品视频| 粉嫩AV一区二区夜夜| 亚洲AV秘无码一区..| 亚洲超碰AV| 精久久久91| 98超碰欧美| 黑人精品成人一区二区三区| 青青草精品| 青青操日韩| 欧美日韩 强奸乱伦| baisiav| 91人人爽人人爽| 999 久久久| 狠狠躁伊人中文字幕| 久久久久久久强迫| 1956日韩精品| 天欧美在线| A级在线视频| 91精品久久久久久77777| 亚洲熟女一区| 中文字幕高清精品一区| 色女女女导航| 男人亚洲天堂| 人妻熟女字幕一区二区| 欧美日韩人妻少妇 一区二区三区| 久久超碰国产一区二区三区| 电影69乱码96| 中文字幕乱亚洲美女精品一区| 99久久综合网| 98福利在线视频| 97任你吞精| 国产精品乱码久久久久久| 国产欧美精选激情视频| 吉川爱美亚洲二区在线| AV乱伦专区| 一区二区三区精品视频| 激情四射婷婷六月天| 秋霞影音一区二区三区| 超碰伊人在线| 极品美女福利在线观看| 九九热九九热| 欧美综合网| 婷婷五月成人| 日本 情色 1区| 人妻中文字幕精品无码| 女同亚洲欧美一二三区久久电影| 久九色| 精品久久久av| 伦激情人妻另类人妻| 青青草啪啪网| 亚洲乱伦图片视频| 久操av在线| 人妻-91porn| 骚熟女AV网| 五月丁香成人网| 久久精品国产亚洲AV先锋| www.夜夜操| 91肉片| 今日头条成人一区二区三区四虎精品| 国产精品盗摄 偷窥盗摄| 久热久一区二区三区| www.亚洲成人一区| 国外91| 婷婷香蕉| 国产精品久久久啊| 男人 天堂 日 亚洲| 日本国产欧美高清在线| 丝袜美腿操av| 99热免费| 大色网久久| 韩国一区二区精品亚洲| www.色吧5.com| 狠狠做深爱婷婷久久二区| **一级毛片国产| 国产2.3.4区| 91在线精品| 色欧美亚洲| 日韩美女,国产传媒,视频一区| 婷婷五月天色网| 欧美激情亚洲色图| 黄页视频网站野外| 欧美综合777| 欧美亚涩| 日韩卡一卡二卡三在线| 欧美色综合网| 午夜天天碰综合视频| 成年人黄色小视频网站| www欧美91| 九九九九九九亚洲| 97最新在线播放视频| 人人性爱视频免费| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 亚洲欧美精品91| 国产毛片片精品天天看视频| 亚洲欧美在线综合| 国模精品娜娜一二三区| av网站免费线看| 91久久久老司机| 俺去久久| 人妻-91porn| 观看视频图片一区二区三区| 囯产操逼片| 亚洲熟伦熟妇AV无码春色| asc国产精品| 色五月激情网| 多毛小伙内射老太婆| 国产99999| 精品9999| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 国产日本久久免费精品| 久久久久久99AV无码免费网站| 日日AV加勒比| 久久久九97| 日韩AV熟女乱伦| 日韩亚洲中文字幕在线| 麻豆一区二区AV天美| 久啪| 99re69综合| 亚州情色j区| 亚洲最新中文字幕免费| 日韩视频小说在线观看| 亚洲人码13| 日本 免费 一区二区三区 久久香蕉 | 屌逼传媒| 色小视频蜜乳| 中文字幕亚洲永久精品| 亚洲AV麻豆Aⅴ无码电影一| 91天天爽| 18岁禁 茉莉成人久久| oumeisetu综合| 欧美人妻久久精品二区三区| 国产高清成人免费视频| 久久精品成人一区二区三区蜜臀 | 亚洲精品一区二区免费在线观看| 天堂九九九九九九九九九| 欧美色五月| 欧美十八禁在线看| α√在线| 91成人久久 | 久久激情亚洲精品无码?V| 思思热一热婷婷热一热| 2003天天干夜夜操| 亚洲五月天激情| 婷婷五月天影院| 日本精品一区二区中文字幕| 操高情无码| 2020中文字幕在线观看| 97久久久久| 粉嫩av一区二区三区天美传媒 | 色欧洲97| 亚欧美综合| 欧美色日本| 色蜜AV| 欧美性爱一内片一区二区三区| 国产亚洲色婷婷久久99精品91| 午夜操一操| 欧美日韩小说| 欧美暴力猛交| 插入粉嫩少妇视频| 久久99精品国产| 色噜噜人妻丝袜AV资源| 不卡一区视频| 伊人在线大香蕉视频久久| 中文在线视频| 午夜亚洲| 九九热AV| 超碰97人妻免费在线| 偷拍 欧美 日韩| 1级黄色夫妻对换性交免费看| 啪啪AV导航| 99久国产精品午夜性色福利| 精品视频一二三中文| 伊人热综合| 91色亚洲| 人妻另类 专区 欧美 制服| 91精品人妻一区二区三区蜜桃| 久久无码精品| 日韩激情电影中文字幕| 人人看欧美性爱| 夜色91| 国产国产亚洲一二三久久| 疯操AV|