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

ARTICLE DETAIL

資訊詳情

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

二手交易系統(tǒng)JavaWeb課設(shè)完整實(shí)戰(zhàn):從需求分析到部署排錯(cuò)

二手交易系統(tǒng)JavaWeb課設(shè)完整實(shí)戰(zhàn):從需求分析到部署排錯(cuò) 簡(jiǎn)介這是廣東工業(yè)大學(xué)軟件工程專業(yè)課程設(shè)計(jì)的實(shí)戰(zhàn)成果實(shí)現(xiàn)了一個(gè)功能完整的基于Web的二手商品交易系統(tǒng)。系統(tǒng)采用B/S架構(gòu)前端使用HTML/CSS/JavaScript后端為PHP數(shù)據(jù)庫(kù)為MySQL涵蓋用戶注冊(cè)登錄、商品發(fā)布、瀏覽搜索、在線留言、交易狀態(tài)跟蹤等核心模塊。壓縮包共97個(gè)文件以46個(gè)PHP源碼、1個(gè)SQL建庫(kù)腳本、1個(gè)DOC設(shè)計(jì)報(bào)告、1個(gè)TXT使用說(shuō)明書(shū)為主另含大量JPEG/PNG/GIF圖片素材整體大小3.17MB目錄結(jié)構(gòu)清晰便于按需閱讀。配套文檔由3113006452陳聰撰寫(xiě)包含需求分析、UML用例圖與類圖、數(shù)據(jù)庫(kù)E-R圖及表結(jié)構(gòu)說(shuō)明并附軟件安裝配置與使用說(shuō)明書(shū)可指導(dǎo)Tomcat/Apache與MySQL環(huán)境搭建、項(xiàng)目導(dǎo)入及運(yùn)行。這份資源既適合課程設(shè)計(jì)參考也可作為畢業(yè)設(shè)計(jì)入門(mén)范例或Web開(kāi)發(fā)學(xué)習(xí)案例目前已有42人瀏覽學(xué)習(xí)。 做軟件工程課設(shè)接到“基于Web的二手商品交易系統(tǒng)”這個(gè)題目時(shí)我第一反應(yīng)是“這不是個(gè)老掉牙的商城系統(tǒng)嗎”但真正從零跑完一版帶完整源碼、數(shù)據(jù)庫(kù)和設(shè)計(jì)文檔的項(xiàng)目后我發(fā)現(xiàn)這個(gè)題目的水比我預(yù)想的深得多。它不像電商秒殺系統(tǒng)那樣拼高并發(fā)也不像人工智能項(xiàng)目那樣拼算法創(chuàng)新它比拼的是你對(duì)軟件工程全流程的理解對(duì)業(yè)務(wù)建模的把握以及對(duì)一套完整Web項(xiàng)目從設(shè)計(jì)到部署的掌控力。這篇文章我就以廣東工業(yè)大學(xué)軟件工程課設(shè)這個(gè)項(xiàng)目為藍(lán)本把選題思路、技術(shù)棧選型、數(shù)據(jù)庫(kù)設(shè)計(jì)、核心功能實(shí)現(xiàn)、文檔組織、部署排錯(cuò)整個(gè)過(guò)程拆開(kāi)講清楚希望給正在做類似課設(shè)或者想獨(dú)立練手Web開(kāi)發(fā)的朋友一份可以直接參考的實(shí)操指南。1. 項(xiàng)目定位與需求分析二手交易課設(shè)到底在練什么1.1 為什么這個(gè)選題適合做軟件工程課設(shè)軟件工程課設(shè)和普通編程作業(yè)最大的區(qū)別在于它考察的不只是“代碼能不能跑”而是“整個(gè)軟件生命周期你能不能駕馭住”。二手商品交易系統(tǒng)這個(gè)題目之所以經(jīng)典是因?yàn)樗臉I(yè)務(wù)復(fù)雜度剛剛好用戶、商品、訂單、交易這些核心概念非常直觀不需要深度行業(yè)知識(shí)也能快速理解但同時(shí)又足夠支撐起完整的需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、測(cè)試和部署流程。我當(dāng)時(shí)在需求分析階段就先畫(huà)了三張圖用戶用例圖、系統(tǒng)功能結(jié)構(gòu)圖、業(yè)務(wù)流程圖。用例圖定角色功能結(jié)構(gòu)圖定模塊業(yè)務(wù)流程圖定數(shù)據(jù)走向。這三張圖畫(huà)完整個(gè)項(xiàng)目的骨架基本就出來(lái)了后面寫(xiě)代碼只是往骨架里填肉。很多同學(xué)上來(lái)就寫(xiě)代碼寫(xiě)到一半發(fā)現(xiàn)功能混亂、表結(jié)構(gòu)對(duì)不上就是因?yàn)樘^(guò)了這一步。1.2 需求邊界劃定三角色模型與權(quán)限范圍二手交易系統(tǒng)和普通電商最大的區(qū)別在于“買(mǎi)家”和“賣(mài)家”是同一個(gè)人群里的兩個(gè)身份。我賣(mài)出一件閑置商品時(shí)我是賣(mài)家買(mǎi)一件別人的舊書(shū)時(shí)我是買(mǎi)家這意味著系統(tǒng)不能用兩個(gè)完全獨(dú)立的模塊去處理用戶體系必須在賬號(hào)體系上統(tǒng)一、在業(yè)務(wù)角色上分離。我把系統(tǒng)用戶劃分為三類角色角色核心功能關(guān)鍵權(quán)限游客瀏覽商品、搜索僅可查看注冊(cè)用戶買(mǎi)家/賣(mài)家一體發(fā)布商品、修改/下架商品、下單購(gòu)買(mǎi)、管理訂單、個(gè)人資料管理操作本人數(shù)據(jù)管理員用戶管理、商品審核/下架、分類管理、公告管理全表操作但需審計(jì)這里有一個(gè)容易被忽視的需求點(diǎn)加一個(gè)“管理員”角色。課設(shè)評(píng)審老師特別看重系統(tǒng)的完整性和安全性完全沒(méi)有后臺(tái)管理的網(wǎng)站在答辯時(shí)會(huì)被追問(wèn)“如果有惡意用戶發(fā)布違規(guī)商品怎么辦”。所以哪怕管理員功能做得簡(jiǎn)單一點(diǎn)也要有。1.3 核心業(yè)務(wù)閉環(huán)與用例拆解二手交易系統(tǒng)的核心閉環(huán)是注冊(cè)登錄 → 發(fā)布閑置 → 瀏覽搜索 → 下單購(gòu)買(mǎi) → 賣(mài)家處理訂單 → 確認(rèn)收貨 → 互相評(píng)價(jià)。評(píng)級(jí)功能如果時(shí)間緊迫可以不做但前面五個(gè)環(huán)節(jié)是閉環(huán)主干缺一個(gè)系統(tǒng)就不完整。在用例拆解階段我建議把每個(gè)用例的屬性寫(xiě)清楚用例名稱、參與者、前置條件、主流程、異常流、后置條件。比如“買(mǎi)家下單購(gòu)買(mǎi)”這個(gè)用例前置條件是“商品處于在售狀態(tài)且買(mǎi)家不擁有該商品”主流程是先提交訂單再生成訂單記錄異常流是“商品已下架”和“庫(kù)存不足”后置條件是“商品狀態(tài)變?yōu)橐驯慌南隆?。這些文字寫(xiě)起來(lái)有點(diǎn)枯燥但后面寫(xiě)接口時(shí)根本不用再想業(yè)務(wù)邏輯直接按用例翻譯成代碼就行。2. 技術(shù)選型與系統(tǒng)架構(gòu)被低估的“簡(jiǎn)單”技術(shù)棧2.1 課設(shè)場(chǎng)景下的技術(shù)棧取舍很多同學(xué)在做Web課設(shè)時(shí)會(huì)陷入技術(shù)選型的糾結(jié)用ServletJSP還是Spring Boot用不用前后端分離要不要加Redis我的建議是先問(wèn)自己這個(gè)項(xiàng)目的主要目標(biāo)是什么。軟件工程課設(shè)的核心目標(biāo)是展示“軟件工程過(guò)程”而不是展示你用了多少花哨的框架。我用的是經(jīng)典JavaWeb技術(shù)棧JSP Servlet MyBatis MySQL Tomcat。這套組合放在今天不算新潮但它有個(gè)天然優(yōu)勢(shì)——結(jié)構(gòu)足夠“樸素”老師一眼就能看清你的分層邏輯。Controller處理請(qǐng)求、Service處理業(yè)務(wù)、Mapper操作數(shù)據(jù)庫(kù)每一層職責(zé)單一打分的時(shí)候老師看到的就是“這個(gè)學(xué)生確實(shí)理解了分層架構(gòu)”。如果用了Spring Boot全家桶Comtroller里直接寫(xiě)業(yè)務(wù)、連Service層都省了反而容易被質(zhì)疑“為了框架而框架沒(méi)有軟件工程思想”。2.2 分層架構(gòu)與工程目錄規(guī)劃我最終采用的是經(jīng)典MVC三層架構(gòu)加DAO層工程目錄結(jié)構(gòu)如下secondhand-trading-system/ ├── src/ │ ├── main/ │ │ ├── java/com/school/secondhand/ │ │ │ ├── controller/ # 控制層接收請(qǐng)求、返回視圖 │ │ │ ├── service/ # 業(yè)務(wù)層處理具體業(yè)務(wù)邏輯 │ │ │ ├── dao/ # 數(shù)據(jù)訪問(wèn)層封裝數(shù)據(jù)庫(kù)操作 │ │ │ ├── entity/ # 實(shí)體類對(duì)應(yīng)數(shù)據(jù)庫(kù)表 │ │ │ ├── filter/ # 過(guò)濾器登錄校驗(yàn)、編碼處理 │ │ │ ├── util/ # 工具類分頁(yè)、文件上傳、字符串處理 │ │ │ └── interceptor/ # 攔截器統(tǒng)一權(quán)限管理 │ │ └── resources/ │ │ ├── mybatis/ # MyBatis映射文件 │ │ ├── db.properties # 數(shù)據(jù)庫(kù)配置 │ │ └── log4j.properties # 日志配置 │ ├── webapp/ │ │ ├── jsp/ # 視圖頁(yè)面 │ │ ├── static/ # css/js/images │ │ └── WEB-INF/web.xml # Web配置文件這個(gè)分層有個(gè)關(guān)鍵好處哪里出問(wèn)題一眼就能定位。頁(yè)面渲染出錯(cuò)查JSP接口參數(shù)問(wèn)題查Controller業(yè)務(wù)邏輯問(wèn)題查Service數(shù)據(jù)查詢問(wèn)題查Mapper。我在開(kāi)發(fā)過(guò)程中至少有三分之一的時(shí)間是靠著這種清晰的邊界快速定位bug的。2.3 為什么建議保留純JavaWeb實(shí)現(xiàn)方式雖然我后來(lái)在工作中大量使用Spring Boot但如果讓我重新做一次這個(gè)課設(shè)我依然會(huì)選擇直接用Servlet。原因很簡(jiǎn)單直接寫(xiě)Servlet能讓你真正理解HTTP請(qǐng)求是怎么被處理的。請(qǐng)求如何到達(dá)服務(wù)器、參數(shù)如何解析、Session如何管理、響應(yīng)如何寫(xiě)回瀏覽器——這些內(nèi)容在Spring Boot里全被封裝掉了但軟件工程課設(shè)恰恰需要你展示對(duì)這些基礎(chǔ)知識(shí)的掌握程度。一句話總結(jié)技術(shù)選型原則課設(shè)不是生產(chǎn)環(huán)境你要選的是“最能展示自己理解深度”的棧而不是“看起來(lái)最前沿”的棧。3. 數(shù)據(jù)庫(kù)設(shè)計(jì)二手交易系統(tǒng)的核心支柱3.1 從ER分析到核心業(yè)務(wù)表數(shù)據(jù)庫(kù)設(shè)計(jì)是二手交易系統(tǒng)里最值得花時(shí)間的一部分。我最初設(shè)計(jì)的表數(shù)量是5張用戶表、商品分類表、商品表、訂單表、訂單明細(xì)表后來(lái)在寫(xiě)代碼過(guò)程中發(fā)現(xiàn)還需要地址表于是加成了6張。每次功能開(kāi)發(fā)中需要新表時(shí)我都會(huì)停下來(lái)反思最初的分析哪里遺漏了這也是一種很好的復(fù)盤(pán)訓(xùn)練。各表之間的核心關(guān)系是用戶與商品是一對(duì)多商品與分類是多對(duì)一訂單與用戶是多對(duì)一訂單與訂單明細(xì)是一對(duì)多。ER圖建議用工具畫(huà)我用的是draw.io畫(huà)完導(dǎo)出圖片直接貼到設(shè)計(jì)文檔里答辯時(shí)老師會(huì)重點(diǎn)看這個(gè)。3.2 核心表結(jié)構(gòu)與字段設(shè)計(jì)說(shuō)明這里給出兩張核心表的建表SQL一張是用戶表一張是商品表CREATE TABLE t_user ( id INT NOT NULL AUTO_INCREMENT COMMENT 用戶ID, username VARCHAR(50) NOT NULL COMMENT 用戶名, password VARCHAR(64) NOT NULL COMMENT 密碼加鹽哈希, nickname VARCHAR(50) DEFAULT NULL COMMENT 昵稱, phone VARCHAR(20) DEFAULT NULL COMMENT 聯(lián)系電話, avatar VARCHAR(255) DEFAULT NULL COMMENT 頭像地址, create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 注冊(cè)時(shí)間, status TINYINT DEFAULT 1 COMMENT 狀態(tài)1正常 0禁用, PRIMARY KEY (id), UNIQUE KEY uk_username (username) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT用戶表;CREATE TABLE t_goods ( id INT NOT NULL AUTO_INCREMENT COMMENT 商品ID, seller_id INT NOT NULL COMMENT 賣(mài)家ID關(guān)聯(lián)t_user.id, category_id INT NOT NULL COMMENT 分類ID, title VARCHAR(100) NOT NULL COMMENT 商品標(biāo)題, description TEXT COMMENT 商品描述, price DECIMAL(10,2) NOT NULL COMMENT 價(jià)格, original_price DECIMAL(10,2) DEFAULT NULL COMMENT 原價(jià)/參考價(jià), cover_image VARCHAR(255) DEFAULT NULL COMMENT 封面圖, images TEXT COMMENT 多圖地址逗號(hào)分隔, status TINYINT DEFAULT 1 COMMENT 狀態(tài)1在售 2已拍下 3已下架 4已賣(mài)出, view_count INT DEFAULT 0 COMMENT 瀏覽量, create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 發(fā)布時(shí)間, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新時(shí)間, PRIMARY KEY (id), KEY idx_seller_id (seller_id), KEY idx_category_status (category_id, status), CONSTRAINT fk_goods_seller FOREIGN KEY (seller_id) REFERENCES t_user (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT商品表;有幾個(gè)字段設(shè)計(jì)經(jīng)驗(yàn)值得單獨(dú)說(shuō)。第一所有表都用utf8mb4字符集而不是utf8。utf8在MySQL中最大只支持3字節(jié)字符而用戶昵稱里如果用戶輸入了emoji比如“交易”用utf8會(huì)直接報(bào)錯(cuò)或存成亂碼。這個(gè)坑我一開(kāi)始就踩了后來(lái)統(tǒng)一改成了utf8mb4。第二價(jià)格字段用DECIMAL(10,2)而不是FLOAT或DOUBLE。浮點(diǎn)數(shù)在計(jì)算機(jī)中本身就不是精確保存的0.10.2不等于0.3這種問(wèn)題在金額計(jì)算中是致命的。DECIMAL是定點(diǎn)數(shù)專門(mén)用于金額場(chǎng)景這是金融系統(tǒng)和交易系統(tǒng)的基本常識(shí)。第三商品表加了一個(gè)status字段來(lái)管理生命周期。部分同學(xué)會(huì)用“刪除商品”這個(gè)動(dòng)作來(lái)管理但真正做交易系統(tǒng)時(shí)你應(yīng)該用狀態(tài)字段因?yàn)樯唐芬坏┊a(chǎn)生訂單記錄就不能被物理刪除否則訂單明細(xì)表會(huì)關(guān)聯(lián)不到商品數(shù)據(jù)。狀態(tài)字段讓商品可以在在售、已拍下、已賣(mài)出之間流轉(zhuǎn)也方便管理員做下架處理。第四所有表都帶create_time和update_time字段。前者用于按時(shí)間排序后者方便排查數(shù)據(jù)更新的問(wèn)題。這兩個(gè)字段幾乎是業(yè)務(wù)系統(tǒng)標(biāo)配不要省。3.3 事務(wù)與并發(fā)下單扣庫(kù)存的正確姿勢(shì)下單操作涉及三步檢查商品狀態(tài)、更新商品狀態(tài)為已拍下、生成訂單記錄。這三步必須是一個(gè)事務(wù)任何一個(gè)步驟失敗前面的操作都要回滾。我用MyBatis的TransactionManager配合Spring的聲明式事務(wù)實(shí)現(xiàn)Transactional(rollbackFor Exception.class) public Order createOrder(Long buyerId, Long goodsId) { Goods goods goodsDao.selectById(goodsId); // 校驗(yàn)商品存在且在售 if (goods null || goods.getStatus() ! GoodsStatus.ON_SALE) { throw new BusinessException(商品不存在或已被拍下); } // 校驗(yàn)不能買(mǎi)自己的商品 if (goods.getSellerId().equals(buyerId)) { throw new BusinessException(不能購(gòu)買(mǎi)自己發(fā)布的商品); } // 更新商品狀態(tài) goodsDao.updateStatus(goodsId, GoodsStatus.ORDERED); // 創(chuàng)建訂單并插入 Order order new Order(); order.setGoodsId(goodsId); order.setBuyerId(buyerId); order.setSellerId(goods.getSellerId()); order.setAmount(goods.getPrice()); order.setStatus(OrderStatus.PENDING_PAYMENT); orderDao.insert(order); return order; }這里有一個(gè)并發(fā)場(chǎng)景兩個(gè)買(mǎi)家同時(shí)看到同一件商品同時(shí)下單。如果只做了“查狀態(tài)再更新”兩步兩個(gè)線程都可能查到“在售”狀態(tài)然后都執(zhí)行更新最后生成兩筆訂單。解決辦法有兩種一是用數(shù)據(jù)庫(kù)的樂(lè)觀鎖在更新語(yǔ)句中加入版本號(hào)條件UPDATE t_goods SET status2, versionversion1 WHERE id? AND status1二是用悲觀鎖SELECT ... FOR UPDATE鎖住商品行。我在課設(shè)中用的是樂(lè)觀鎖方案因?yàn)榇a改動(dòng)最小而且足夠說(shuō)明我理解了并發(fā)問(wèn)題。答辯時(shí)老師問(wèn)到并發(fā)場(chǎng)景我把這個(gè)方案解釋清楚是一個(gè)明顯的加分項(xiàng)。4. 核心功能實(shí)現(xiàn)從登錄到交易閉環(huán)的代碼細(xì)節(jié)4.1 用戶模塊注冊(cè)登錄的校驗(yàn)與安全處理用戶模塊是整個(gè)系統(tǒng)的入口安全處理必須一開(kāi)始就做對(duì)否則后面所有功能都暴露在風(fēng)險(xiǎn)中。密碼存儲(chǔ)不能用明文也不能用簡(jiǎn)單的MD5。我在課設(shè)中使用的是加鹽MD5方案注冊(cè)時(shí)隨機(jī)生成一個(gè)鹽值把“密碼鹽值”拼接后做MD5數(shù)據(jù)庫(kù)存鹽值和哈希值。登錄時(shí)取出鹽值重新計(jì)算哈希再比對(duì)。雖然比不過(guò)BCrypt但至少能讓老師看到你對(duì)密碼安全有概念。public String encryptPassword(String rawPassword, String salt) { String salted rawPassword salt; for (int i 0; i 10; i) { salted DigestUtils.md5Hex(salted); } return salted; }注冊(cè)時(shí)還需要做的事情包括用戶名唯一性校驗(yàn)、兩次密碼一致性校驗(yàn)、手機(jī)號(hào)格式正則校驗(yàn)、用戶名非法字符過(guò)濾防SQL注入和XSS。這些校驗(yàn)既要在前端做一遍提升用戶體驗(yàn)也必須在后端做一遍保證數(shù)據(jù)安全。前端校驗(yàn)可以被繞過(guò)后端校驗(yàn)才是真正的防線。登錄成功后我用Session保存用戶基本信息同時(shí)設(shè)置Session超時(shí)時(shí)間為30分鐘。每次請(qǐng)求通過(guò)Filter統(tǒng)一檢查是否有登錄用戶沒(méi)有就跳轉(zhuǎn)到登錄頁(yè)。這里要注意靜態(tài)資源css、js、圖片要排除在登錄校驗(yàn)之外否則連登錄頁(yè)的樣式都加載不出來(lái)。4.2 商品模塊發(fā)布、圖片上傳與分頁(yè)檢索商品發(fā)布是用戶使用頻率最高的功能之一實(shí)現(xiàn)時(shí)有兩個(gè)關(guān)鍵點(diǎn)圖片上傳和列表分頁(yè)。圖片上傳我采用的方案是本地磁盤(pán)目錄存儲(chǔ) 數(shù)據(jù)庫(kù)存相對(duì)路徑。前端表單提交時(shí)用multipart/form-data格式后端用Servlet的Part接口獲取文件流。圖片路徑我做了重命名用“時(shí)間戳隨機(jī)數(shù)原始擴(kuò)展名”拼成新文件名避免重名覆蓋。同時(shí)限制了文件大小最大2MB和文件類型jpg、png、gif防止用戶上傳超大文件把服務(wù)器寫(xiě)爆。String fileName System.currentTimeMillis() _ UUID.randomUUID().toString().substring(0, 8) extName; String uploadPath request.getServletContext().getRealPath(/) upload; File dir new File(uploadPath); if (!dir.exists()) { dir.mkdirs(); } part.write(uploadPath File.separator fileName);商品列表頁(yè)的分頁(yè)是我手動(dòng)實(shí)現(xiàn)的PageHelper效果用的是MySQL的LIMIT語(yǔ)法加計(jì)算總頁(yè)數(shù)public PageResultGoods pageQuery(String keyword, Integer categoryId, int pageNum, int pageSize) { int offset (pageNum - 1) * pageSize; ListGoods list goodsDao.pageQuery(keyword, categoryId, offset, pageSize); int total goodsDao.countQuery(keyword, categoryId); int totalPages (int) Math.ceil((double) total / pageSize); return new PageResult(list, pageNum, pageSize, total, totalPages); }分頁(yè)的細(xì)節(jié)點(diǎn)是首頁(yè)和尾頁(yè)的頁(yè)碼要限制范圍pageNum傳1時(shí)不能算出負(fù)數(shù)的offset傳1000時(shí)不能一直查出空數(shù)據(jù)。JSP頁(yè)面的分頁(yè)組件我封裝成了一個(gè)JSP標(biāo)簽傳到頁(yè)面的參數(shù)就只有當(dāng)前頁(yè)和總頁(yè)數(shù)其他邏輯都封裝在后臺(tái)。4.3 訂單模塊狀態(tài)機(jī)驅(qū)動(dòng)與操作權(quán)限控制訂單模塊是整個(gè)系統(tǒng)里最容易寫(xiě)亂的地方因?yàn)橛唵卧诓煌A段有不同的狀態(tài)不同角色在不同狀態(tài)下的操作權(quán)限也不同。我用一個(gè)狀態(tài)機(jī)來(lái)管理訂單狀態(tài)含義可以執(zhí)行的操作目標(biāo)狀態(tài)0 待付款訂單已創(chuàng)建等待買(mǎi)家付款買(mǎi)家付款/取消1 待發(fā)貨 / 4 已取消1 待發(fā)貨買(mǎi)家已付款等待賣(mài)家發(fā)貨賣(mài)家發(fā)貨2 待收貨2 待收貨賣(mài)家已發(fā)貨等待買(mǎi)家確認(rèn)買(mǎi)家確認(rèn)收貨3 已完成3 已完成交易完成無(wú)可評(píng)價(jià)-4 已取消訂單關(guān)閉無(wú)-我在代碼里用了一個(gè)OrderStatus枚舉類來(lái)管理這些狀態(tài)和流轉(zhuǎn)避免在Service層里寫(xiě)一堆魔法數(shù)字。這里舉個(gè)核心方法示例public void confirmReceive(Long orderId, Long currentUserId) { Order order orderDao.selectById(orderId); if (order null) { throw new BusinessException(訂單不存在); } if (!order.getBuyerId().equals(currentUserId)) { throw new BusinessException(無(wú)權(quán)操作該訂單); } if (order.getStatus() ! OrderStatus.SHIPPED) { throw new BusinessException(訂單狀態(tài)不允許確認(rèn)收貨); } orderDao.updateStatus(orderId, OrderStatus.COMPLETED); }這段代碼看起來(lái)簡(jiǎn)單但包含三個(gè)關(guān)鍵點(diǎn)第一是業(yè)務(wù)校驗(yàn)訂單是否存在第二是權(quán)限校驗(yàn)只有買(mǎi)家本人能操作第三是狀態(tài)校驗(yàn)必須是已發(fā)貨狀態(tài)才能確認(rèn)收貨。三個(gè)校驗(yàn)缺一不可這是我踩過(guò)坑后才總結(jié)出來(lái)的。4.4 攔截器與安全過(guò)濾課設(shè)也要有安全意識(shí)安全管理不只是一句“登錄后才能訪問(wèn)”這么簡(jiǎn)單。我加了一個(gè)全局過(guò)濾器來(lái)處理三件事編碼統(tǒng)一、登錄校驗(yàn)、防XSS過(guò)濾。filter filter-nameGlobalFilter/filter-name filter-classcom.school.secondhand.filter.GlobalFilter/filter-class /filter filter-mapping filter-nameGlobalFilter/filter-name url-pattern/*/url-pattern /filter-mapping在GlobalFilter里完成三件工作第一設(shè)置請(qǐng)求和響應(yīng)的編碼為UTF-8解決中文亂碼。這里有個(gè)細(xì)節(jié)request.setCharacterEncoding(UTF-8)只對(duì)POST請(qǐng)求有效GET請(qǐng)求的亂碼需要在Tomcat配置里改URIEncodingUTF-8。第二判斷請(qǐng)求路徑是否在白名單里。白名單包括登錄頁(yè)、注冊(cè)頁(yè)、靜態(tài)資源、商品列表和詳情頁(yè)等不需要登錄就能訪問(wèn)的路徑。其他路徑一律檢查Session中是否有登錄用戶。第三對(duì)用戶輸入做簡(jiǎn)單的HTML標(biāo)簽過(guò)濾防止基本的XSS攻擊。雖然不如專業(yè)的ESAPI庫(kù)全面但在課設(shè)場(chǎng)景下已經(jīng)能解決90%的問(wèn)題。5. 設(shè)計(jì)文檔撰寫(xiě)讓答辯老師眼前一亮的關(guān)鍵5.1 文檔結(jié)構(gòu)應(yīng)該怎樣組織軟件工程課設(shè)的文檔質(zhì)量有時(shí)候比代碼質(zhì)量還重要因?yàn)槔蠋煵豢赡茉谀愦疝q前把所有代碼都看一遍他主要通過(guò)文檔來(lái)了解你的項(xiàng)目。我按標(biāo)準(zhǔn)軟件工程文檔結(jié)構(gòu)來(lái)寫(xiě)包括五個(gè)部分需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、系統(tǒng)測(cè)試、項(xiàng)目總結(jié)。需求分析部分要畫(huà)用例圖、寫(xiě)用例說(shuō)明、放功能需求列表、放數(shù)據(jù)字典截圖。概要設(shè)計(jì)部分要畫(huà)系統(tǒng)架構(gòu)圖、功能模塊圖、數(shù)據(jù)庫(kù)ER圖。詳細(xì)設(shè)計(jì)部分要寫(xiě)核心模塊的設(shè)計(jì)說(shuō)明附上關(guān)鍵類圖和時(shí)序圖。測(cè)試部分要貼測(cè)試用例表和測(cè)試結(jié)果截圖。項(xiàng)目總結(jié)部分寫(xiě)遇到的問(wèn)題和解決方案。5.2 讓文檔“有分量”的細(xì)節(jié)第一每個(gè)模塊的核心功能都要截圖圖比文字更有說(shuō)服力。我在每個(gè)功能模塊下都放了“功能描述操作步驟運(yùn)行截圖”三段式描述老師只看截圖就能大致判斷系統(tǒng)完成度。第二測(cè)試部分不要只寫(xiě)“測(cè)試通過(guò)”。我按功能點(diǎn)列出了測(cè)試用例表每條用例包含用例編號(hào)、測(cè)試內(nèi)容、操作步驟、預(yù)期結(jié)果、實(shí)際結(jié)果、是否通過(guò)。偶爾也留一兩條“導(dǎo)出Excel亂碼然后修復(fù)”的失敗用例這反而能體現(xiàn)測(cè)試的真實(shí)性。第三文檔里的所有圖不要手畫(huà)用工具生成。用例圖用StartUML或ProcessOnER圖用MySQL Workbench反向生成架構(gòu)圖用draw.io。手工畫(huà)的圖不規(guī)范一眼就能看出來(lái)。5.3 源碼組織與README給評(píng)審留個(gè)好印象源碼目錄要有清晰的注釋結(jié)構(gòu)。我習(xí)慣把代碼中的類分為四類實(shí)體類、工具類、業(yè)務(wù)類、控制類每類的類注釋寫(xiě)明類的職責(zé)。關(guān)鍵業(yè)務(wù)方法上加方法注釋寫(xiě)明業(yè)務(wù)邏輯和輸入輸出。項(xiàng)目根目錄放一個(gè)README.md內(nèi)容包含項(xiàng)目簡(jiǎn)介、功能清單、技術(shù)棧、環(huán)境要求、部署步驟、默認(rèn)賬號(hào)。這樣老師拿到源碼后按README的步驟5分鐘就能把項(xiàng)目跑起來(lái)這個(gè)體驗(yàn)對(duì)評(píng)審來(lái)說(shuō)非常加分。我在README的部署步驟里寫(xiě)的是# 1. 創(chuàng)建數(shù)據(jù)庫(kù) secondhand并導(dǎo)入 sql/secondhand.sql # 2. 修改 src/main/resources/db.properties 中的數(shù)據(jù)庫(kù)連接信息 # 3. 使用 IDEA 打開(kāi)項(xiàng)目配置 Tomcat 9Deployment 選擇 war exploded # 4. 啟動(dòng)項(xiàng)目訪問(wèn) http://localhost:8080/secondhand/ # 5. 管理員賬號(hào) admin/123456測(cè)試用戶 user1/1234566. 本地運(yùn)行與部署排錯(cuò)實(shí)錄6.1 從零復(fù)現(xiàn)環(huán)境準(zhǔn)備與啟動(dòng)流程如果你拿到源碼后想讓項(xiàng)目跑起來(lái)按以下步驟操作安裝JDK 8、Tomcat 9、MySQL 5.7或8.0開(kāi)發(fā)工具用IDEA社區(qū)版即可。創(chuàng)建一個(gè)名為secondhand的數(shù)據(jù)庫(kù)導(dǎo)入項(xiàng)目中SQL文件。注意MySQL 8.0的驅(qū)動(dòng)配置和5.7不一樣驅(qū)動(dòng)類名要改成com.mysql.cj.jdbc.DriverURL要加serverTimezoneAsia/ShanghaicharacterEncodingutf8mb4。修改db.properties中的數(shù)據(jù)庫(kù)賬號(hào)密碼。IDEA中配置TomcatDeployment選擇war exploded模式Application context設(shè)為/secondhand/。啟動(dòng)項(xiàng)目瀏覽器訪問(wèn)對(duì)應(yīng)地址。6.2 高頻問(wèn)題排查速查表問(wèn)題現(xiàn)象原因分析解決方案頁(yè)面全部亂碼請(qǐng)求/響應(yīng)編碼不一致確認(rèn)Filter中設(shè)置了UTF-8JSP頁(yè)面頂部加% page languagejava contentTypetext/html; charsetUTF-8%Tomcat啟動(dòng)失敗端口被占用8080端口被其他程序占用netstat -ano數(shù)據(jù)庫(kù)連接報(bào)錯(cuò)驅(qū)動(dòng)類名或URL配置錯(cuò)誤檢查MySQL版本對(duì)應(yīng)的驅(qū)動(dòng)類名8.0用com.mysql.cj.jdbc.Driver商品圖片上傳后頁(yè)面不顯示上傳路徑和訪問(wèn)路徑不一致確認(rèn)上傳目錄是webapp/upload圖片URL拼接的路徑和物理路徑對(duì)應(yīng)登錄后訪問(wèn)頁(yè)面又跳回登錄頁(yè)Session寫(xiě)入失敗或Cookie被禁用檢查Filter的路徑匹配規(guī)則確保一次請(qǐng)求只經(jīng)過(guò)一次登錄校驗(yàn)購(gòu)買(mǎi)自己的商品沒(méi)有限制缺少業(yè)務(wù)校驗(yàn)在下單Service中增加buyerId ! sellerId判斷6.3 幾個(gè)只有實(shí)操才會(huì)踩到的坑第一個(gè)坑是Tomcat的GET請(qǐng)求亂碼。我花了大半天排查最后發(fā)現(xiàn)request.setCharacterEncoding只解決POST表單的亂碼GET請(qǐng)求帶中文參數(shù)時(shí)Tomcat默認(rèn)按ISO-8859-1解碼必須在server.xml里配置URIEncodingUTF-8。第二個(gè)坑是MyBatis的#{}和${}混用。這是我一開(kāi)始圖方便在動(dòng)態(tài)查詢里用了${}拼接排序字段后來(lái)被SQL注入演練工具掃出了漏洞才狠下心把所有用戶輸入都用#{}傳參。第三個(gè)坑是JSP頁(yè)面引入CSS和JS時(shí)用了相對(duì)路徑導(dǎo)致在二級(jí)URL頁(yè)面下樣式全部丟失。解決方法是統(tǒng)一用${pageContext.request.contextPath}拼接靜態(tài)資源路徑這個(gè)坑幾乎每個(gè)做JavaWeb課設(shè)的同學(xué)都會(huì)踩一次。7. 關(guān)于這次課設(shè)我想再啰嗦幾句做完整套系統(tǒng)后我最大的體會(huì)是軟件工程課設(shè)的評(píng)分標(biāo)準(zhǔn)從來(lái)不是“功能越多越好”而是“工程過(guò)程是否規(guī)范”。一個(gè)功能完整但沒(méi)寫(xiě)文檔、沒(méi)做測(cè)試、代碼耦合得一塌糊涂的項(xiàng)目和一個(gè)功能適中但需求分析清晰、分層合理、測(cè)試完善、文檔規(guī)范的項(xiàng)目后者在答辯時(shí)拿到的分?jǐn)?shù)通常更高。如果你現(xiàn)在正在做類似的課設(shè)我的建議是先花一周時(shí)間把需求、表結(jié)構(gòu)、接口定義全部定下來(lái)再花兩周時(shí)間寫(xiě)代碼留一周做測(cè)試和寫(xiě)文檔、準(zhǔn)備答辯。很多同學(xué)習(xí)慣邊寫(xiě)代碼邊改需求結(jié)果越改越亂最后文檔全是編的。這個(gè)項(xiàng)目做完之后我建議你還可以繼續(xù)擴(kuò)展把支付模擬改成微信支付沙箱、加一個(gè)Redis緩存熱點(diǎn)商品瀏覽量、把Session登錄改成JWT令牌、部署到云服務(wù)器上去。每一步擴(kuò)展對(duì)應(yīng)的都是實(shí)際工作中的一個(gè)真實(shí)場(chǎng)景做完這些你才算是把這門(mén)課學(xué)透了。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美日韩大陆黑人少妇99| 一区二区三区国产在线播放 | 极品美女福利在线观看| 日本国产成人亚洲精品无码| 久久这里都是精品| 欧美性爱一区| 97视频播放| 国产无码三级视频在线观看| 成视频在线观看免费看| 120分钟婬片免费看| 青青操青娱乐| 吉川爱美亚洲二区在线| 秋霞一集毛片观看| 中文字幕免费看大片| 中文字幕二区日韩天堂| 日本最新1区2区3区| 欧美三四五区| 亚洲乱码精品一区二区| 激情久久久| 天天干天天操天天拍| 天天干天天日天天射黄色片| 中日韩久久久免费看| 亚洲天天更新| 日本高清有码网址视频| 精品久久久久瑟瑟| 欧美激情 亚洲色图| 亚洲综合91| 3D污黄视频在线观看| 日韩一级二级| 久操av在线| 天天日天天干天天操| 亚洲人妻中文高清| 久久久久久91香蕉国产| 麻豆成人影音在线| 中文自拍欧美影视| 欧美日韩婷婷中文| 神马久久久久久| 强奸乱伦动态污图免费 | 色色色欧美| 久超超碰| 久久久亚洲| 八人操人人摸人人看| 自拍鲍鱼一区在线高清观看免费| 欧洲乱码视频| 精品在线蜜臀| 日本中文字幕在线视频| 黄色二级片网站| 麻豆一区二区AV天美| 爱妃国产亚洲视频中文字幕| 亚洲宅男天堂| 亚洲一区二区中文字幕| 欧洲亚洲国产综合在线| 久久久亚洲精品电影免费看| 乱人乱色一区二区三区免费| 欧美亚洲日本视频久久久 | 鸥美中出| 久久久com| 精品96久久| 91第一页| 日韩人妻资源在线看| x97av| 国产精品麻豆免费视频| 天天弄欧美| 蜜臀久久99精品久久久久久| 99ri视频| 欧洲精品二区| 99re国产中文字幕| 91色人| 国产区91柔拿会所技师| 欧美 传媒 麻豆 日韩 偷拍| 国产肏逼网站| 欧美se亚洲| 久久精品熟女亚洲AV麻豆软件| 国产精品亚洲一区二区三区四区| 亚洲1区2区三区高清中文字幕| 九九英色视频| 永久免费av无码网站国产app| 亚洲丝袜色| 东京热,男人的天堂| 人看人人摸人人操| 台湾佬中文娱乐网久久久久久久久久com | 欧美毛片在线网| 天天操天天日天天干| 爽极品影院| 久久久久ab| 日韩性爱视频在线免费观看| 天天天天天天天天综合| 精品一区二区综合熟妇| 超碰在线1234区| 日本Xx性爱| 大香蕉之青青草原| 99热只有这里有精品| 欧美激情黑人| 99热这里是精品| 天天亚洲| 夜夜嗨AV蜜臀av| 最新日本中文字幕| 校园春色综合色| 高清在线不卡一区二区 视频| 国产精品suv一区| 国产专区第一页| 熟女91网| 中文字幕五区| 艹精品| 午夜无码熟妇丰满人妻| 在线性黄高清免费视频| 亚洲欧洲日韩中文字幕一区| 中文字幕av色| 日韩黄片视频试看| 91黑丝操| 中文字幕二区日韩天堂| 岛国黄片网站| 欧美在线亚洲| 打av高清| 亚欧成人中文字幕一区| 久草综合网| av天堂影视中文在字幕在线中文 | 天天欲望网| 精品 码产区一区二-1080P高清在线www-B029AV | 97人人操人人摸人人爱| 国产夫妻性生活视频| 91在线色综合| 日韩一级特黄av毛片| 天天干夜夜操一区二区| 美女被艹尤物视频| 99热| 日本欧美m v精品网站加| 无码免费精品高清| 日韩在线国产字幕| 99抽插| 日韩免费看黄片| 亚洲资源一区| 欧美伦乱爱| 韩国一级做A片免费的| 久9九综合在线| 中文乱码99| 午夜寂寞欧美| 26uuu成人影片| 日日躁天天躁狠狠躁| 欧美毛片在线网| 免费一级黄色录像影片| 久久超碰网| 欧美日动态视频| 日本片日本片祼观看网站在线看中文版网页在线看 | 欧美人人曰人人操人人射射| 福利大香蕉| 青青草中文-久久青草精品一区二区三| 黑人精品一区二区在线播放| 亚洲色图A| 九九成人精品| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 欧美日韩传媒| 亚洲二区精品在线观看| 97天天摸天天爽| 麻豆精品三区视频| 日本人体九九九九九九| 久久人人爽人人爽人人片Ⅴ| 午夜男女爽爽爽影院视频| 天天天做天天天爱天天天爽| 精品国产乱码久久久久久影片| 美国aaaaa一级黄片| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 日韩av在线精品观看| 大香蕉92| 99青青草国产视频| 天综合中文| 99热只有这里有精品| 三上悠亚在线毛片91| 大香交| 超碰人妻久久人妻中文97| 懂色av色欲av蜜臀av| 亚洲情色综合| 精品欧美乱码久| 台湾佬中文娱乐网久久久久久久久久com | 欧美精品23| 久久久久白虎| 国产精品伦理| 欧洲精品人妻| 日韩性色b| 国产无套粉嫩白浆在| 中文字幕在线免费观看2| 熟人人妻少妇精品久久| 亚洲色棕合| 日夜干射色啊| 2019天天操天天爽天天拍| 亚洲第一精品在线视频 | 久久婷婷五月天| 国产一区二区三区导航| 精品亚洲国产成人精品| 成年人三级黄色片视频| 欧美aa一级片| 午夜激情成人在线观看| 免费一级黄色录像影片| 亚洲AV无码乱码| 精品人成视频在线观看| 日日夜夜免费| 9丨久久九九九| 欧美成人精品一区| 撸无码不卡免费视频| 国产乱码久久久久久| 国产精品欧美激在线| 亚洲一二三精品久久网| 综合色播| 大香樵伊人网| 欧美另类色| 97超碰jingpin| 麻豆精品久久久久久久| 九九九网页| 五月丁香网站| 91在线美女| 熟妇人妻一区二区三区| 蜜色网色哟哟| 一区二区 日韩 欧美 国产 传媒| 中文字幕乱碼在线| 干b在线性社区| 丝袜制服字幕在线| 人妻酒店出差被中出免费在线播放| 婷婷五月天久久精品视频一区二区三区| 中文高清一区二区的| 一色网男人的天堂| av操操不卡| 日本丝袜美腿人妻九九| 日本最新免费韩国1区2区视频播放| 岛国人妻少妇av在线观看| 日韩/97| 大香伊人在线一区| 青青青青草av在线观看| 9久精品视频在线观看| 久久久久久久久久久人妻| 久久婷婷在线观看视频| 婷婷五月天无码| 东京成人一区| 欧洲大香蕉| 亚洲日韩狠狠撸视频| 亚洲欧洲综合| 国产精品人妻免费精品| 自怕偷自怕亚洲精品| 男人高清无码一区二区| 日日碰狠狠添天天爽超| 激情色播| 日韩一区二区熟女| 亚洲欧美91√| 久久二| 午夜国产成人精品视频| 久久精品日韩| 精品超碰国产| 亚洲不卡不卡中文字幕不卡| oumeisetu综合| 少妇同性| 日韩黄色小说| 丰满人妻一区二区三区| 做爱A级亚欧| 顶级丝袜熟女一区二区三区| 天天综合精品| 色综合久久夜色精品国产天堂 | 自拍内地三级在线观看| 欧美大香蕉专区网| 久久久久久午夜男人的天堂| 超碰97在线 欧美 国产| 欧美人妻熟女在线| 国产女大学生AV| 久久91视频| 欧亚在线视频| 青青操在线亚洲视频观看欧美在线 | 日韩午夜国产| 亚洲综合有码| 超碰无码加勒比| 国产福利小视频高清在线观看| 啊啊啊操一区| 99热18这里只有精品| 美女久久久久久久久久久| 人妻一二三区| 美女自卫慰黄网站免费| 亚洲AV无码天美传媒一区| 国产精品天干天干综合网麻豆| 九九精品网| 免费观看性欧美一级| 激情综合二| 亚洲情色1区| 97在线观看免费| 精品国产av一区二区三区四区入口 | 91丝袜美腿网站| 4虎在线视频| 久久久精品网站| 高清成年美女黄网站免费大全| 久久久久久久久久久六六| 动漫av中文| 98久久| 亚洲成人免费在线| 无码久| 伊人九九| 中文字幕一区二区日韩网| 精品女人999| 欧美成人色| 久久久无码视频| 美女一区二区国产精品| juliaann丝袜大战黑鬼| 日本不卡一二区| av无码精品久久久久| 吉川爱美98堂在线| 羞涩视频| 性吧在线视频| 女人18精品一区二区三区| 久久性爱精品一区| 嗯嗯啊啊操死我| 国产又粗又长视频| 日韩美女啪啪一区| 天天夜夜久久| 欧美日韩大香蕉| 翘臀vidoes| 97视频在线视频| 久久欲| 超碰国产情侣自拍网| 大鸡巴久久| 国模精品娜娜一二三区| 国产精品电| 国产精品成人久久一区二区三区| 99热| 爱爱啊啊啊| 久久久爆乳翘臀一线天伦理视频| 0755午夜福利视频| 激情色色| 国产丝袜啪啪| 综合色图区| 男人的天堂99| 国产精品一区二区三区在线密挑| 国产精品欧美在线观看| 男女性感激情网站| 天美一区在线| 亚洲国产精品无码AV在线| 男人久久精品| 黄片aaaaa一区| 91nbbbbbb| 色欲蜜臀AV| 亚av顶级裸体一区二区三区四区五区 | 日本有码影片下载| 东京热一区二区中文字幕| 极品极品色影院| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 999热这里只有精品| 久久性视频| 10000部十八禁看电影| 97亚洲精品| 啊嗯好大视频在线观看| 欧美αv.com| 超碰97在线色男人??| 99在线无码精品秘 入口黑人| 91强在线播放| 性爱免费视频成人| 久久人妻一区二区三区高清| 51一区二区三区| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 久操免费观看| 啪啪视频mP4| 国产主播福利| 日韩情色AV| 欧美性爱中文字幕无线码| 天天色踪合| 欧美黄片欧美黄片xxx| 亚洲男人天堂2| 国产免费永久精品无码| 亚洲天天操| 国产原创自拍| 日婷婷| 精品性爱久久视频| 操操碰| 综合夜夜| 国产男女无套97| 久草免费福利在线播放| 97se亚洲综合自| 富二代亚洲精品99| 岛国网址国产| 久久久一二三四区| 超碰97爽| 成人三级片无码| 天天92av| 午夜欧美神马久久久久| 天天看天天干| 精品无码一区二区三区| 嗯嗯嗯嗯啊啊啊好紧好大| 一级@啪啪视频| 97久久国产亚洲精品超碰热| 欧美精品另类人妖xxxx| 午夜120视频在线观看| www. 男人天堂成人在线| 丁香六月啪啪| 午夜亚洲国产理论秋霞| 91色夜| 国产传媒美日韩av| 操逼天美3区| 三及片网站| 精品176精品2| 在线观看一卡二卡| 333kkkk·亚洲com久久| 久九九九九九九九热| 嗯嗯嗯啊啊啊操的我好爽| 欧美日本一区二区a人| 伊人欧美大香蕉视频| 亚洲欧美天堂在线| 久99久视频| 女欧美一区二三区| 91久久精品美女高潮喷水| 精品无码一区二区| 国产精品自在线发布| 东京热,男人的天堂| 青青草在线视频欧美| 女人爽到高潮潮喷18禁网站| 欧美性生活男人的天堂| 91bbbbbb| 欧美韩国你懂得在线 | 在线日韩日本亚洲国产| 天天肏夜夜肏| 4虎在线视频| 日本午夜福利视频| 国产精品久久久九九九| 欧美碰碰综合色| 蜜臀AV成人精品蜜臀| 日韩成人大片一区二区| 国产精品不卡一区二区电影| 久久精品28| 九九九热精品| 91殴美大片| 日韩欧美字幕亚洲一区二区| 成人影院永久免费观看网址| 日躁天天爽爽| 天天肏夜夜肏| 亚洲综合色在线| 97色涩| 98一区二区精品| 无码视频黄色网战| 美日韩男女操屄视频| 五十路熟女在线不卡观看一区二区| 婷婷综合五月天| 亚洲va有码在线天堂| 亚洲成人贴图| 中文字幕在线第二页| 欧美中出1| 日韩欧美中文日韩欧美色| 亚洲欧美另类图片| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 中文字幕日韩精品久久| 天天澡天天爽日日AV| 东京热精品97综合网| 毛片17S| 国产精品一区二区三区在线密挑| 色色操| 亚洲精品美女久久久久久久久| 99国产精品视频尤物| 乱伦强奸区日韩| 久久久天美| 青青草白白色| 三上制服丝AV| 插欧洲美女欧美精品| 五十路六十路七十路熟婆| 毛片久久| 精品无码秘 人妻一区二区| 欧洲精品一级二级精品综合视频综合| 日本三级韩三级99久久| 国产又爽又黄| 色五月综合网| 五月婷婷六月丁香| 欧亚在线视频| 精品久久人妻成人网| 一级黄色视频网| 日日噜噜夜夜狠狠视频无| 国产又黄又爽又刺激久久久久久| 国产强奸无码乱伦| 伊人网青青| 免费操逼91| 一区二区三区免费视频入口| 亚洲A曰本VA欧美VA视频| 亚洲丝袜少妇在线| 久久91| 麻豆国产精品午夜视频| 国产兽交视频在线播放| 亚洲av成人精品一区| 中文字幕在线免费观看2| 2019精品国产无码成人| 私人尤物在线精品不卡| 欧美五十路熟| 99久久久久久久久| 色99视频| 天天色悠悠激情| 欧美激情视频一区二区三区不卡| 啊啊啊啊啊啊啊国| 99xav| 亭亭在线资源| 91 天天综合| 人妻精品视频一区二区三区| 欧美日韩色综合网| 日本性爱少妇| 日本特黄f c2| 亚洲少妇在线影音| 久久久九精品| 综合第一页| 91AV入口| 五月天黄色激情视频| 久99| 97色欧州| 大香蕉手机在线| 综合五月天| 日本人妻最新在线中| 精品国产91av一区二区三区| 久久直播国产| 不卡中文字幕aⅴ在线| 久久久久久精品免费看A级| 9久久精品| 熟妇熟女一区二三区| 精品人妻一二三四区视频| 91劲爆| 神马麻豆福利院| 性暴力欧美猛交在线直播| 99久久婷婷丁香| 在线观看日韩av不卡| 超碰资源亚洲97| 久久精品天美| 久久久久熟女| jk白丝没脱就开始啪啪| 色色色网站| 欧美后进式| 午夜性| 欧美天堂超碰97| 熟女熟妇一区二区三四区| 亚洲高清无毛一区二区| 日本福利二区视频| 无码视频一区二区| 日韩91网| 欧美日韩不卡a片| 日韩人妻精品久久久久| 色男人色天堂东京热| 超碰97 线线 在现| 国产真实野战在线视频| 国产老熟女| 好湿好紧视频| 国产欧美精选激情视频| 好湿好紧好爽 视频| 天堂精品一区| 懂色av色欲av蜜臀av| 嗯嗯啊在线视频| 欧美熟女逼久久久久久| 中文字幕欧美丝袜07资源| 国产懂色精品国产av| 伊人影院中文字幕| 色原狠狠天天天| 天天操夜夜操狠很操| 日本99视频| 国产女人9999| 国内精品久久人妻性色av| 日韩AV一区二区三区四四| 亚洲一二三四区机械| 91 综合网| 日韩美女操b| 中文字幕乱碼在线| 0755午夜福利视频| 99性爱在线观看| 亚洲18禁| 中文字幕成人乱码熟女精品国50 | 国产视频一区二区免费| 亚洲熟妇丝袜在线观看| 超碰在线日韩一区| 日日碰狠狠添天天爽超| 操逼999| 国产91会所女技师在线观看| 国产精品99久久久www| 中文字幕亚洲欧美在线不卡| 亚洲天堂久久久久久粉红视频| 九九色热| 深夜激情| 人妻99p| 成熟熟女国产精品一区二区| 国产欧美日韩在线观看麻豆传媒公司| 日逼97| 色综合婷婷| 日日嗷| 亚洲精品中文字幕一区在线视频 | 黄片com.| 日韩精品熟妇| 五月丁香黄色网| 久久久爆乳翘臀一线天伦理视频| JuliaAnn丝袜熟女系列| 国产激情视频在线观看| 蜜汁欧美| 色吧综合网| 好涩综合| 日韩另类色图| 久久精9| 伊人一级免费黄片| 亚州再线| 免费黄色片。| 先锋音影AV| 强被迫伦姧在线观看无码网站| 色婷婷激一区二区三区 | 啊v视频在线观看| 亚91网| 久久久一区二区三区四曲免费听| 大香蕉中文在线| 亚码激情| 91网站18| 大香蕉在线视频15| A片大香蕉在线| 国产美女口爆吞精| 国产精品婬乱一级毛片彝族| 五月天亚洲网| 免费精品中文字幕| 情色五月天就去干| 99热超碰在线| 丝袜足交视频| 日本色色色| 亚洲深夜福利| 好淫网一二三视区| 综合色区偷拍| 婷婷三区| 污污汅18禁网站在线永久免费观看| 自拍亚洲综合| 九九探花视频在线观看| 久久粉色| 青青草国产亚洲精品久久| 欧美九一精品久久久熟妇| AV污污污污| 乱人乱色一区二区三区免费| 99热这里只有精| 九月激情婷婷| 夜夜高潮夜夜爽国产伦精品| 女人天堂AV五区在线| 中出20p| 日韩乱码Av| 亚川综合视频| 精品二区久久| 人妻精品综合中文字幕在线 | 色图四区| 麻豆一区二区三区精品| 国产成人精品日本亚洲语言| 亚洲91网| 色九九九综合| 91狠狠色丁香婷婷综合久久精品| 久久久久女教师免费一区| 久久人妻四季| 欧美日韩国内不卡| 人妻少妇精品无码专区二区密桃| 色情婷婷| 乱性AV| 色娱乐色呦呦夜夜夜夜av| 亚洲国产ⅴ高清在线观看| 超碰97日韩| 青青操在线亚洲视频观看欧美在线 | 色狠狠 - 百度| 风韵犹存大大大大香蕉| 久久久久ab| 久久99精品视频| 欧美大波激情xxxx| 91美女精品| 国产人妻一区二区三区欧美毛片| 99热只有| 天天操夜夜嗨| 国产精品高潮久久久无码| 久久久久久九九九九九九| 久久久久久性爱片| 午夜无码精品免费看性色| 亚洲综合大片| 亚州宗合另类| 天天躁日日躁XXXXYY| 69av一区二区三区| 91最新综合| 国内精品久久久久影院亚洲| 熟妇xxxxx性春色| 天天干18禁| 日韩中文字幕宗合在线| 观看免费区二区三区二| 天天干人人干天天日97| 韩国一级做a久久久久| 亚洲中文字幕久久无码精品| 日本淫穴在线| 久久这里都是精品| 成人精品在线| 精品性爱一二三区| 日韩中文字幕国产| 欧美日韩一二三| 亚洲 欧美 小说| 乱精品一区字幕二区| 手机在线观看不卡无码av| 美女熟妇色| 久久黄人人爽视频| 久久9999 | 中文久久爆乳| 91综合无码| 国产熟码AV| 中国熟女网站| 久久欧洲| 蜜桃在线观看一区二区三区 | 日韩 成人 有码| 亚洲AV乱码专区国产噜噜亚洲| 久久大香蕉| 日本操逼视频导航| 午夜.DJ高清在线观看免费7| 69视频入口| 少妇的嫩逼图片| 懂色av中文字幕| 黑人粗大V S日韩女优视频| 欧美亚洲日韩16色| 亚洲综合图色在线| 激情亚洲天堂| 啊啊啊好湿久久| 亚洲精品人妻吞精av| 亚洲欧美在线观看2021| 无码WWW免费视频网站| 午夜亚洲国产理论秋霞| 中文精品一区二去| 日本操逼视频在线| 草草草草视频| 蜜臀99久久| 亚洲欧美999| 精品人妻一区二区三区日产乱码| 亚洲情色视频| 综合网91| www.男人的天堂| 欧美图片校园春色| 亚洲色图日韩丝袜制服一区二区五月在线| 欧美亚洲国产日本在线,久久精品国产| 日韩ab网| 操香逼| 99www.bibizy香蕉资源国产一区二区三区高清 | 天天操夜夜嗨| 久久欲| 啪啪啪东京| 色色色色日本| 丁香五月综合| 九九aV| 久久精品小视频| 精品少妇后入一区二区三区四区人妻巨乳 | 亚洲啪啪视频一区二区| 国产熟女免费观看久久| 日韩欧美国产高清视频| 91小视频| 五月丁香综合网| 熟妇熟女亚洲天堂网| 久久综合日韩亚洲欧美| 啊啊啊97视频| 久久九操在线观看| 97 国产精品| 精品一区二区三区18| 麻豆精品.欧美精品.日韩精品.| av中亚| 欧美亚洲情色| 无码人妻一区二区三区色欲aⅴ| 日本东京热加勒比久久| 日韩免费看黄片| 久久肏大逼| 日韩精品99999| 五月婷在线| 91伊人影视综合| 黄色av播放免不| 精品国产国产AV| 夜夜国自区| 国产熟妇 码视频户外直播| 熟女熟妇一区二区三四区| 一级毛片电影免费看| 伊人久久综合精品欧美| 欧美黄色片在线播放| 久久99午夜精品一区人妻| 色婷婷激情| 激情图片亚洲色图| 国产精品午夜精品| 日韩欧美亚洲自拍偷拍| 性开放中文AV高清无码免费看| 色哟哟511老熟女| 色情综合网| 又摸又舔在线观看网站| 欧美同性恋 的搜索结果 - 91n| 欧美色欧美| 国产黄片在线免费观看| 色色99| 亚洲性少妇| 神马久久免费电影观看| 亚洲精品一二牛牛| 亚洲第一在线视频| 欧美色图私拍91| 果冻传媒一区二区三区| 亚洲色图欧美一区二区不卡| 美国aaaaa一级黄片| 久都青青视频 | 懂色av中文字幕| 日韩性爱一级片| 亚洲四虎熟女精品| 天天色粽合合合合合合合| 久久综合女优| 熟妇女伦乱视频| 亚洲一卡二卡在线免费| 91碰碰| 欧美熟女丝袜| 久久99九九九九6666免费观看软件| 91免费看一区二区三区| 中文字幕在线日亚洲9| 久久嫩草国产成人一区| 欲综合网| 大香蕉专区| 免费农村成人少妇人妻Aa一区二区视频 | 不卡一区二区日本视频| 艳美熟妇先锋一二三区| 97视频免费在线| 欧美亚洲素人制服精品| 亚洲国产欧美中文永久| 97天天弄| 久久久精精精| 国产尤物AV尤物在线观看不卡| 中文字幕精品丝袜| 中文字幕精品专区搜索结果91| 欧美福利视频啊啊啊啊| 激情五月天网站| 少妇特黄一区二区三区| 久久久久久久九九九九九九| 亚洲欧美日韩综合在线尤物 | 午夜亚洲| 八人操人人摸人人看| 亚洲色图a| 超碰色老头| 日韩性爱免费视频在线网站| 国产精品交换一区二区| 日本不卡中文| 无码免费精品高清| 国产中文福利| 伊人网免费视频| www鬼畜国产男人的天堂| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 99热伊人| 少妇人妻在线| 亚洲无码久久久久久久| 超碰在线97国产| 97欧美视频| 青青草中文-久久青草精品一区二区三 | 精品国产无码中文| 手机不卡视频不卡在线一二三区| 天天噜| 狠狠狠狠狠狠| 亚洲天堂资源在线| 欧美性巨大╳╳╳╳╳高跟鞋| 九九九九九九九九九九九九九九九女| 免费av高清无码| 人妻美腿丝袜制服诱惑综合天堂-| 亚洲综合九九| 日本三级韩三级99久久| 亚洲情色综合网| 婷婷午夜成人色中色| 久久精品夜色国产亚洲AV| www.av家庭乱伦| 91天天日| 在线视频 亚洲精品| 成人夜夜爽| 久久伊人东京热| 色五月综合网| 伊人九九| 大奶啊啊好爽 | 色综合天天| 蜜桃色院一区久久| 18禁美女裸体无遮挡啪啪| 97视频www| 亚洲1区2区三区高清中文字幕| 97伪v| 九月激情婷婷| 国产av青草| 无码高清操逼网址| 色五月第四色| 人人操人人干网页| 超碰在97| 国产免费一区在线观看| 9久久久久久| 2020视频1区2区3区| 蜜臀99久久| 99久久综合| 精品少妇人妻av久久免费| 97一区二压| 欧美日韩国产中文精品字幕自在自线 | 欧美淫乱视频| 欧美性巨大╳╳╳╳╳高跟鞋| 日本九九久久99| 色综合久| julia ann久久| 亚洲成人性爱在线观看| 日韩天天综合| 日韩乱码av| 永久免费av无码网站国产app| 东京热av男人的天堂| 欧日a| 欧美偷拍| 国产精品色哟哟| 中国乱伦一区二区| 色路综合| 男人的天堂在线2| www.av在线视频| 亚洲在线综合| 欧美男女午夜啪啪| 女人与公拘交酡2020视频| 日本新免费二区三区| 亚洲综合九九| 中文字幕国产在线天堂| 亚洲老司机123专区| 日韩无码专区| 亚洲中文字幕熟女| 亚洲欧洲色情高清| 欧美婷婷五月天| 日本一级特级毛片视频| 偷拍五区| 中文字幕成人| 夜色91| 欧美午夜色妇色鬼| 中文字幕丝袜国产第一页不卡| 少好三P| 亚洲午夜免费狠狠干| 亚洲阿v天堂在线| 神马久久网| 三级三级三级a级全黄三| 国产精品伦理| ,国产乱人伦精品一区二区三区| 成人一道本免费视频| 亚洲做性| 99re69综合| 欧美日韩婷婷中文| 久久男人的天堂| 超碰在线974| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 有码免费观看| 少妇干B| 欧美不在线| 2026国产精品视频| 精品久久在线区一区| 色噜噜精品一区二区三| 女性喷水高潮在线观看| 人人澡人人澡人人| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 两性综合网| 四虎影视永久在线免费| 日本天天干天天操一区| 超碰欧美97资源| 天堂伊人久久| 少妇高潮特黄A片| 婷婷色一区| 91新在线欧美| 床上啊啊啊一区二区三区| 黑人狂躁日本妞一区二区三区| 大但人体久久久久| 亚洲色香| 亚洲精品97在线| 五月婷婷综合网| 黄色欧美性爱视频| 亚洲精品无码成人久久久99| 欧美91在线| 高清无码学生妹高潮| 欧美日韩人妻婷婷一区| 久久综合日韩亚洲欧美| 91一区二区| 强奸a片网| 26UUU欧美激情一区二区| 色99999| 色综91| 精品十八在线观看| 国产97/欧美| 久草精品一区| 99re这里| 大香蕉在线视频重口味毛片在线| 亚洲情色五月天 | 99精品网| 亚洲欧洲国产综合av| 婷婷中文网| 中文字幕奈奈美被公侵犯| 在线有码中文字幕| 亚洲无码电影久久久| 超碰吊日色| nuu12国产麻豆精品| 国产精品久久久九九九| 热久日综合| 亚洲色图a| 大吊色| 第二页中文字幕| 天天综合网久久ww| 国产欧美一区二区| 色月天AV导航| 天天干天天日天天射黄色| 综合网欧美在线| 欧美天天插| 丁香五月激情综合| 夜夜爽77777| 农村妇女一级二级三级视频| 大胆91| 男人的天堂2010| 操穴国产| 在线啊啊啊啊| 久操视频免费在线观看| 超碰97欧美在线| 韩国久久97| 天堂日本亚洲欧美| 97青青操视频| 久久男人网| 久久久∴| 欧美体内射精| 少妇熟女视频一二三区| 91日产桃蜜| 青娱乐黄色录像| 91情色| av网站国产主播在线| 亚洲av国产av综合av卡| 俄罗斯一区二区视频在线观看| 欧美日韩午夜精品一区二区三区| 91人妻精华帖| 国内毛片婷婷六月色| 人人天天干干| 97人人超| 欧美熟妇视频 | 亚洲色图欧美| 性色AV网站| 深夜福利黄片| 日本熟女免费視颖| 污污汅18禁网站在线永久免费观看 | 国产高清精品一区二区三区毛片 | 97爱b| 97欧美色| 欧美九九九| 日韩一级欧美一级国产一级台湾| a片 xxxx受爽视频| 亚洲第一精品在线视频| 中文字幕亚韩| 97久久超碰| 欧美日韩m| 欧美九九爱| 国产精品久久久九九九| 无码精品啪啪啪一区二区三区三州| 99热一区二区三区四区| 久久久久国产精品久久久| 日韩精品在线视频在线观看| japan日本高清乱xxxx| 五月综合视频| 91oumei| 无码人妻丰满熟妇奶水区毛片| 日日夜夜青青草母狗| 97欧美色综合| 中文字幕成人乱码熟女精品国50 | 在线a亚洲视频播放在线| 曰韩人妻中文字幕在线| 日本日逼高清| 操逼逼无码| 97WW精品| 偷拍五区| 日韩欧美女求操每天更新| 9国产超碰| 91精品久久久久久综合五月天| 色婷婷综合网站| 97这里都是精品| 后入合集| 欧美性爱精品七区| av一区二区三区 中文| 91九久| 欧美 日韩 另类 亚洲| 久久久久久免费电影| 亚洲第一页色网| A 在线网址| 99热只有这里有精品| 9久久9综合| 六月婷婷一区二区三区| 五十路三区在线| 国产成人91一区二区三区| www欧美性爱| 日韩av熟女一区二区三区成人| 国产三级中文字幕粉嫩| 99无码| 亚洲国产一区二区三区四区国产| 日韩三级一区 | 极品少妇久久久久| 91精品国产91久久福利| 美女自卫慰黄网站免费| 亚洲另类色图片| 91欧美网| av网页一区二区三区| 欧美在线伊人色| 91N综合网| yellow网站免费观看日韩高清无码| 曰韩精品九九无码| 97chaopenrihan| 91久久九九精品国产综合| 亚洲 日韩 欧美 国产综合体| 精品久久大胆人体| 蜜臀久久99精品久久久| 日韩欧美字幕亚洲一区二区| 欧美一二三区四五区| 色97干| 人人操人人摸人| 青青草国产盗摄一二三区| AV女资源| 久久久成人国产精品无码| 久久久久78| 亚洲图片欧美色图| 丁香激情五月天| 亚洲熟女偷拍在线观看| AV天堂国产| 亚洲色图在线视频| 青青青在线高清视频在线一二三四区| 精品人体无圣光凹凸| 91天天综合网,天天综合网| 91岛国动作片| 中文激情网| 午夜精品人妻二区三区| 日韩精品在线观看观看| 在线人妻熟女一区二区三区四区五区| 日韩欧美女求操每天更新| 国精精品无码一二三区水多多| 97超碰亚洲| 久久在线观看免费视频| 啊a一区在线| 久射吧| 国产成人www免费人成看片| 97超碰总站| 亚洲精品成人动漫在线| 台湾肥佬网一区二区三区| 久久久人妻| 思思热在线| 精品熟妇视频一区二区| 高清国产av无码| 久久久精品一区二区| 亚欧日韩成人| 高跟伊人julia ann| 日本成人A片网站| 日韩乱码Av| 欧美亚洲情色| 国产精品视频电影| 91综合网站| 色色色色色色色色色色色色色色综合 | 日本精品88888888| 亚洲无码日韩电影| 60秒免费小视频| 加勒比aⅴ| 丁香六月天| 亚洲Av诱惑| 欧美亚州手机在线| 天天拍夜夜| 国产女人高潮视频| 久久综合97| 久久午夜伦| 久久中出| 热天堂一区二区| 乱伦一二三区| 亚州精品丝袜-不卡成人免费| 五月丁香六月综合缴清无码| 日本精品88888888| 日韩欧洲操屄视频| 久久久久久亚洲精品不卡人乳| 欧美中文综合| 打av高清| 一级AV性爱| 97亚洲欧美日韩| 五十路三级片| 久热99999| 1024日韩| 十八禁啪啪视频| 天天综合影院91| 中文字幕日韩人妻视频一区二区三区| 老鸭窝黄色视频网站| 色欲日韩欧美在线一区| 欧美一级专区免费大片| 中文字幕av乱伦| 91亚洲网| 操香逼| 日人妻视频91| 狠狠97|