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

ARTICLE DETAIL

資訊詳情

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

基于SSH框架的花店管理系統(tǒng):JavaWeb畢設(shè)項(xiàng)目核心實(shí)踐解析

基于SSH框架的花店管理系統(tǒng):JavaWeb畢設(shè)項(xiàng)目核心實(shí)踐解析 簡介一套面向JavaWeb課程設(shè)計(jì)與大學(xué)生畢設(shè)場景的花店管理系統(tǒng)源碼包以SSHStruts2SpringHibernate整合架構(gòu)實(shí)現(xiàn)網(wǎng)上花店前后臺核心功能商品分類展示、關(guān)鍵詞檢索、購物車下單、會員登錄以及管理人員對顧客、掌柜、鮮花和訂單的后臺維護(hù)并支持上傳鮮花圖片。壓縮包含75個(gè)文件含20個(gè)Java源碼、JSP頁面、XML配置、SQL數(shù)據(jù)庫腳本和properties環(huán)境配置另配PNG/JPG/GIF頁面素材與說明文檔整體約219KB目錄按源碼、配置、頁面、數(shù)據(jù)庫劃分便于快速定位。開發(fā)環(huán)境基于Eclipse、JDK1.7、Tomcat7與MySQL5數(shù)據(jù)庫包含顧客、經(jīng)理、鮮花、類目、訂單五張核心表代碼按action、service、dao、model分層struts.xml與spring.xml等配置文件齊全適合作為畢設(shè)項(xiàng)目參考或SSH框架整合練習(xí)。已有215人學(xué)習(xí)瀏覽項(xiàng)目規(guī)模適中前臺數(shù)據(jù)展示、購物車結(jié)算與后臺訂單處理形成完整閉環(huán)對入門者理解JavaWeb分層開發(fā)與訂單流程有直接幫助。1. 花店管理系統(tǒng)一個(gè)基于JavaWeb與SSH框架的畢設(shè)項(xiàng)目到底能干什么判斷一個(gè)畢設(shè)項(xiàng)目值不值得下載我通常先看它的技術(shù)棧是不是「主流且完整」——這套花店管理系統(tǒng)正好踩在這條線上Spring3.1.1 Hibernate4.1.7 Struts2.3.4 的SSH組合配MySQL5和Tomcat7前臺是商品展示、分類搜索、購物車下單后臺是訂單處理、鮮花增刪改、圖片上傳。它覆蓋了JavaWeb課程設(shè)計(jì)里最常見的幾道大題框架整合、三層架構(gòu)、文件上傳、購物車業(yè)務(wù)流。如果你是做畢設(shè)、課程設(shè)計(jì)或者想找一份能跑的JavaWeb前后端源碼來拆解數(shù)據(jù)庫表設(shè)計(jì)和框架配置這份資源值得仔細(xì)過一遍。提示項(xiàng)目自帶完整的前后端源碼和flower.sql數(shù)據(jù)庫腳本Eclipse導(dǎo)入即可運(yùn)行但JDK、Tomcat、MySQL版本需要按項(xiàng)目要求對齊否則會遇到一堆兼容性報(bào)錯(cuò)下面會逐個(gè)說清楚。適合人群很明確正在選畢設(shè)題目的在校生、需要JavaWeb項(xiàng)目案例參考的初學(xué)者、以及想看看SSH框架怎么把MVC分層落地的開發(fā)者。不適合用來做生產(chǎn)級系統(tǒng)——它就是一份學(xué)習(xí)性質(zhì)的項(xiàng)目業(yè)務(wù)邏輯不復(fù)雜但勝在五臟俱全。2. 本地部署跑起來Eclipse JDK1.7 Tomcat7 MySQL5 的環(huán)境對齊2.1 環(huán)境版本為什么必須嚴(yán)格對齊很多人在這一步翻車根源不是項(xiàng)目代碼有問題而是環(huán)境版本和項(xiàng)目要求不一致。這個(gè)項(xiàng)目用的是Spring 3.1.1、Hibernate 4.1.7、Struts2 3.4這三個(gè)框架版本都是2012年前后的產(chǎn)物那時(shí)候的注解方式和API調(diào)用跟現(xiàn)在Spring Boot那套差別很大。你拿JDK8去跑部分舊框架版本輕則警告刷屏重則直接啟動失敗。JDK1.7是當(dāng)時(shí)的主流版本Tomcat7對應(yīng)Servlet 3.0規(guī)范MySQL5的默認(rèn)存儲引擎是InnoDB字符集默認(rèn)latin1——這些都是項(xiàng)目作者開發(fā)和測試時(shí)用的環(huán)境。我的建議是安裝包里該有的都配齊JDK1.7或1.8兼容模式、Tomcat7.0.x、MySQL 5.5或5.6、Eclipse版本用Eclipse EE的比如Kepler或Luna都行。2.2 數(shù)據(jù)庫初始化導(dǎo)入flower.sql的正確姿勢解壓項(xiàng)目后你會看到一個(gè)flower.sql文件放在根目錄。先啟動MySQL服務(wù)然后用命令行或者可視化工具把這份SQL導(dǎo)入。這里有個(gè)容易忽略的點(diǎn)項(xiàng)目要求數(shù)據(jù)庫編碼必須為utf8否則后面頁面顯示中文會亂碼。導(dǎo)入前先執(zhí)行幾條帶字符集設(shè)置的命令。CREATE DATABASE IF NOT EXISTS flower DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE flower; SOURCE D:/flower.sql;DEFAULT CHARACTER SET utf8指定數(shù)據(jù)庫默認(rèn)字符集為utf8存儲中文不會變成問號。COLLATE utf8_general_ci排序規(guī)則ci表示大小寫不敏感中文查詢和排序都靠它。SOURCEMySQL命令行導(dǎo)入SQL腳本的命令注意路徑里的斜杠要寫成/Windows下用反斜杠會報(bào)錯(cuò)。如果你用Navicat或SQLyog導(dǎo)入操作路徑是新建數(shù)據(jù)庫flower → 右鍵運(yùn)行SQL文件 → 選擇flower.sql → 編碼選utf8。導(dǎo)入完成后檢查表是否齊全這個(gè)項(xiàng)目一共五張表customer顧客、manager經(jīng)理、flower鮮花、category類目、shopcart訂單/購物車。注意shopcart表名起得比較特殊它既承擔(dān)購物車功能又記錄訂單信息后面第四章會細(xì)講。2.3 修改db.properties連接數(shù)據(jù)庫前必須做的配置項(xiàng)目里數(shù)據(jù)庫連接參數(shù)集中在src/db.properties文件里這是JDBC和Hibernate共用的配置來源。默認(rèn)參數(shù)幾乎肯定跟你的本地環(huán)境不一致必須改。jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/flower?useUnicodetruecharacterEncodingutf8 jdbc.usernameroot jdbc.password123456jdbc.driverMySQL驅(qū)動類5.x版本的驅(qū)動是這個(gè)路徑不要換成com.mysql.cj.jdbc.Driver——那是MySQL 8的驅(qū)動類名項(xiàng)目lib里沒那個(gè)jar。jdbc.url中useUnicodetruecharacterEncodingutf8這兩個(gè)參數(shù)必須保留它們是Java程序和MySQL之間中文不亂碼的前提。jdbc.username和jdbc.password改成你本地MySQL的實(shí)際賬號密碼默認(rèn)是root/123456具體以你安裝時(shí)設(shè)定的為準(zhǔn)。改完db.properties后打開文件如果看到亂碼用Eclipse右鍵該文件 → Properties → Resource → 將Text file encoding改為UTF-8。項(xiàng)目作者在readme.txt里專門提了這條坑。2.4 Eclipse導(dǎo)入與Tomcat部署的完整步驟打開EclipseFile → Import → General → Existing Projects into Workspace選擇解壓后的項(xiàng)目根目錄。導(dǎo)入后如果項(xiàng)目名旁邊有紅叉在項(xiàng)目上右鍵 → Properties → Targeted Runtimes勾選Tomcat7再把項(xiàng)目的Java Compiler級別改成1.7或1.8。# 確認(rèn)Tomcat環(huán)境變量如果設(shè)了的話 echo $CATALINA_HOME # 在Eclipse Servers視圖添加Tomcat7右鍵項(xiàng)目 → Run As → Run on Serverecho $CATALINA_HOMELinux/Mac下驗(yàn)證Tomcat路徑是否配好Windows用戶在環(huán)境變量里查CATALINA_HOME。Eclipse的Servers視圖里Add New Server選Apache Tomcat v7.0指向你本地解壓的Tomcat7目錄。Run on Server是Eclipse集成的部署方式內(nèi)部會自動把項(xiàng)目打成war包放到Tomcat的webapps目錄并啟動。啟動成功后瀏覽器訪問http://localhost:8080/flower/看到主界面說明部署成功。前臺登錄用測試賬號 1/1后臺登錄也在管理入口處用相同的 1/1。如果訪問404檢查項(xiàng)目部署名是不是flower或者是端口沖突——Tomcat默認(rèn)8080如果你的8080被占用改Tomcat的server.xml端口或者關(guān)閉占用端口的進(jìn)程。3. SSH框架整合源碼拆解Struts2控制層與Hibernate映射的實(shí)現(xiàn)細(xì)節(jié)3.1 項(xiàng)目整體目錄結(jié)構(gòu)與MVC分層定位這個(gè)項(xiàng)目在分層上是非常標(biāo)準(zhǔn)的SSH教科書式結(jié)構(gòu)你打開源碼包會看到清晰的包路徑每一層都有自己的職責(zé)這也是它作為學(xué)習(xí)項(xiàng)目價(jià)值最高的地方。源碼包的核心結(jié)構(gòu)如下action包存放Struts2的Action類也就是C層service包是業(yè)務(wù)邏輯層dao包是數(shù)據(jù)訪問層model包是Hibernate實(shí)體類也就是M層而WebContent目錄下的JSP頁面就是View層。action包CustomerAction、FlowerAction、OrderAction、FrontAction、ManageAction、BaseAction共6個(gè)控制類。service包對dao層進(jìn)行封裝處理事務(wù)和業(yè)務(wù)規(guī)則如訂單庫存扣減。dao包BaseDao是泛型基類其他Dao繼承它減少重復(fù)的CRUD代碼。model包Flower、Customer、Manager、Category、Shopcart對應(yīng)數(shù)據(jù)庫五張表。WebContentJSP頁面、CSS、圖片資源其中index.jsp是前臺首頁admin.html是后臺入口頁面。這種分層的意義在于如果你想改業(yè)務(wù)邏輯只動service層想換數(shù)據(jù)庫方言或查詢方式只動dao層要調(diào)整URL路由和參數(shù)接收只動action層和struts.xml?;ゲ桓蓴_這也是畢業(yè)設(shè)計(jì)答辯時(shí)老師最愛問的點(diǎn)——你只要把「三層職責(zé)分離」講明白這個(gè)項(xiàng)目的框架理解分就拿到了。3.2 BaseDao泛型設(shè)計(jì)為什么它是整個(gè)數(shù)據(jù)層的核心打開dao包你會發(fā)現(xiàn)五個(gè)Dao類都很薄核心邏輯全在BaseDao里。它用的是Hibernate的getHibernateTemplate()模板方法把CRUD操作做成泛型方法子類只需要指定實(shí)體類型就能用。這個(gè)設(shè)計(jì)是SSH項(xiàng)目里的經(jīng)典做法也是值得你在答辯時(shí)展開講的重點(diǎn)。public class BaseDaoT { Resource private HibernateTemplate hibernateTemplate; public void save(T entity) { hibernateTemplate.save(entity); } public void delete(T entity) { hibernateTemplate.delete(entity); } public void update(T entity) { hibernateTemplate.update(entity); } public T get(ClassT clazz, Integer id) { return hibernateTemplate.get(clazz, id); } public ListT find(String hql, Object... params) { return hibernateTemplate.find(hql, params); } }ResourceSpring注入HibernateTemplate實(shí)例HibernateTemplate內(nèi)部封裝了SessionFactory的獲取和釋放。save/delete/update對應(yīng)Hibernate的持久化操作不需要手動開啟事務(wù)事務(wù)由Spring的聲明式事務(wù)管理見spring.xml中的tx:advice配置。find(String hql, Object... params)可變參數(shù)數(shù)組用于給HQL里的?占位符傳值比如find(from Flower where category_id ?, 1)。子類繼承方式比如FlowerDao extends BaseDaoFlower那么flowerDao.save(flower)調(diào)的就是BaseDao的泛型方法。這套設(shè)計(jì)的巧妙之處在于五個(gè)實(shí)體類共享一套CRUD代碼新增實(shí)體時(shí)只需要寫一個(gè)不加任何方法的Dao子類。當(dāng)然代價(jià)是業(yè)務(wù)復(fù)雜后Dao會越來越臃腫——在這個(gè)項(xiàng)目里夠用也足夠你答辯時(shí)說明白「為什么用泛型基類」。3.3 struts.xml路由與Spring整合的關(guān)鍵配置Struts2的配置文件把URL請求映射到具體Action類而這個(gè)項(xiàng)目里Action的實(shí)例不是Struts2自己創(chuàng)建的而是由Spring容器管理。這就是SSH整合的關(guān)鍵Struts2只負(fù)責(zé)路由Spring負(fù)責(zé)注依賴。看看struts.xml里的核心配置。struts constant namestruts.devMode valuetrue / package namefront extendsstruts-default namespace/ action nameflower_* method{1} classflowerAction result namesuccess/flower.jsp/result /action /package package namemanage extendsstruts-default namespace/manage action namemanage_* method{1} classmanageAction result namesuccess/manage/index.jsp/result result namelogin typeredirect/admin.html/result /action /package /strutsstruts.devModetrue開發(fā)模式開啟修改配置文件不需要重啟Tomcat但對性能有影響生產(chǎn)環(huán)境記得關(guān)掉。constant namestruts.devMode valuetrue /啟用了devMode但你部署上線前一定改成false否則會暴露異常堆棧給終端用戶。action nameflower_* method{1}Struts2通配符映射flower_list會調(diào)flowerAction.list()方法flower_detail調(diào)detail()方法。classflowerAction用的不是全限定類名而是Spring容器里的Bean名稱——這個(gè)Bean在spring.xml里配置Struts2通過SpringObjectFactory去容器里取實(shí)例。關(guān)鍵點(diǎn)nameflower_*這種通配符風(fēng)格要求Action方法名和URL規(guī)范對齊這也意味著你在新增功能時(shí)需要遵循約定不能隨意命名。答辯時(shí)老師會問「為什么二維碼能對應(yīng)到方法」你把通配符和method屬性講清楚就過關(guān)了。3.4 spring.xml中的事務(wù)管理與Bean裝配spring.xml里做了三件事掃描并注冊action、service、dao的Bean配置Hibernate的SessionFactory指向db.properties開啟聲明式事務(wù)。事務(wù)配置是SSH整合里最容易出問題的環(huán)節(jié)。context:component-scan base-packagecom.flower / bean iddataSource classorg.springframework.jdbc.datasource.DriverManagerDataSource property namedriverClassName value${jdbc.driver} / property nameurl value${jdbc.url} / property nameusername value${jdbc.username} / property namepassword value${jdbc.password} / /bean bean idsessionFactory classorg.springframework.orm.hibernate4.LocalSessionFactoryBean property namedataSource refdataSource / property namepackagesToScan valuecom.flower.model / property namehibernateProperties props prop keyhibernate.dialectorg.hibernate.dialect.MySQLDialect/prop prop keyhibernate.show_sqltrue/prop /props /property /bean tx:advice idtxAdvice transaction-managertransactionManager tx:attributes tx:method namesave* propagationREQUIRED / tx:method nameupdate* propagationREQUIRED / tx:method namedelete* propagationREQUIRED / tx:method namefind* read-onlytrue / /tx:attributes /tx:advicecontext:component-scanSpring自動掃描帶有Component/Service/Repository/Controller注解的類注冊為Spring Bean。項(xiàng)目里的action、service、dao都用的是Controller、Service等注解不需要在xml里逐個(gè)聲明。LocalSessionFactoryBean的packagesToScan掃描model包下的Hibernate實(shí)體類自動生成映射前提是實(shí)體類帶有Entity注解。hibernate.show_sqltrue控制臺打印Hibernate生成的SQL語句調(diào)試時(shí)非常有用但生產(chǎn)環(huán)境要關(guān)掉。tx:method namesave* propagationREQUIRED /事務(wù)傳播級別REQUIRED意思是如果當(dāng)前沒有事務(wù)就新建一個(gè)Service里以save/update/delete開頭的方法都會走事務(wù)。事務(wù)配置的核心理解HibernateTemplate的每次操作都在事務(wù)上下文中執(zhí)行Spring的tx:advice自動攔截service層以指定前綴開頭的方法并綁定事務(wù)。這能保證購物車下單時(shí)購物車記錄、訂單記錄、鮮花庫存三件事要么全部成功、要么全部回滾——這是電商類項(xiàng)目最基本的一致性要求。4. 購物車與訂單核心業(yè)務(wù)流從前臺加購到后臺處理的完整鏈路4.1 五張表的關(guān)聯(lián)關(guān)系shopcart表的設(shè)計(jì)值得細(xì)看這個(gè)項(xiàng)目的數(shù)據(jù)表設(shè)計(jì)不復(fù)雜但shopcart表很微妙。通常項(xiàng)目會把購物車和訂單拆成兩張表這里合二為一通過字段區(qū)分狀態(tài)。看project正文里的model包Shopcart.java同時(shí)承擔(dān)了這兩個(gè)職責(zé)這直接反映在業(yè)務(wù)代碼的實(shí)現(xiàn)方式上。表名字段角色說明customer顧客信息含登錄賬號密碼前臺登錄校驗(yàn)manager經(jīng)理信息后臺登錄校驗(yàn)測試賬號與前臺相同category鮮花分類如玫瑰、百合、綠植前臺分類導(dǎo)航flower鮮花商品名稱、價(jià)格、圖片、庫存、所屬分類shopcart購物車/訂單關(guān)聯(lián)flower和customer含數(shù)量、下單狀態(tài)shopcart表本質(zhì)上是一個(gè)關(guān)聯(lián)表外鍵指向customer和flower核心字段是數(shù)量nums和狀態(tài)標(biāo)記。當(dāng)用戶未結(jié)算時(shí)它是一條購物車記錄結(jié)算提交后狀態(tài)字段發(fā)生變化它就變成了一條訂單記錄。后臺經(jīng)理看到的待處理訂單本質(zhì)就是把這些狀態(tài)為「已提交」的shopcart記錄按顧客聚合展示。4.2 前臺加購到結(jié)算的代碼鏈路FlowerAction與OrderService的配合前臺用戶從商品列表頁點(diǎn)「加入購物車」開始會經(jīng)歷一次典型的SSH三層數(shù)據(jù)流JSP頁面發(fā)起請求 → Struts2攔截到URL匹配FlowerAction方法 → FlowerAction里調(diào)OrderService → OrderService里調(diào)OrderDao → Hibernate執(zhí)行數(shù)據(jù)庫操作。把這條鏈路的代碼拆開看你就知道SSH項(xiàng)目里一次完整操作長什么樣。// FlowerAction.java - 前臺加購的入口 public class FlowerAction extends BaseAction { private static final long serialVersionUID 1L; private Flower flower; private FlowerService flowerService; private OrderService orderService; public String addCart() { HttpSession session ServletActionContext.getRequest().getSession(); Customer customer (Customer) session.getAttribute(customer); if (customer null) { return login; // 跳轉(zhuǎn)到登錄頁面 } // 創(chuàng)建購物車記錄關(guān)聯(lián)當(dāng)前顧客和所選鮮花 Shopcart cart new Shopcart(); cart.setCustomer(customer); cart.setFlower(flower); cart.setNums(1); cart.setStatus(0); // 0表示購物車未提交 orderService.addShopcart(cart); return success; } public String submitOrder() { HttpSession session ServletActionContext.getRequest().getSession(); Customer customer (Customer) session.getAttribute(customer); orderService.submitOrder(customer.getId()); return success; } }ServletActionContext.getRequest().getSession()在Struts2里拿到HttpSession的標(biāo)準(zhǔn)方式用來獲取當(dāng)前登錄顧客的信息。customer null判斷用戶是否登錄未登錄返回login結(jié)果由struts.xml映射到登錄頁——這是「游客不能下單」的邏輯防線。cart.setStatus(0)狀態(tài)碼是關(guān)鍵設(shè)計(jì)。0是購物車狀態(tài)用戶提交訂單后狀態(tài)改為1后臺看到的「待處理訂單」就是status1的記錄。orderService.submitOrder(customer.getId())一次調(diào)用把該顧客所有status0的記錄置為status1實(shí)現(xiàn)批量結(jié)算。這里注意Action里的flower字段是Struts2通過setter自動注入的前端參數(shù)。JSP頁面提交的flower.id會直接綁定到這個(gè)對象的id屬性前端表單字段名和后端實(shí)體屬性必須對應(yīng)這在SSH項(xiàng)目里是隱式約定寫錯(cuò)了頁面報(bào)錯(cuò)還不好排查。4.3 OrderService事務(wù)處理一次下單涉及三張表下單不只是改shopcart表的狀態(tài)還要扣減鮮花庫存和校驗(yàn)庫存是否充足。這步跨表操作是整個(gè)系統(tǒng)里事務(wù)需求最強(qiáng)的業(yè)務(wù)點(diǎn)Service層的注解把事務(wù)邊界控制住了。// OrderService.java - 提交購物車為訂單的核心事務(wù)方法 Service public class OrderService { Resource private OrderDao orderDao; Resource private FlowerDao flowerDao; Transactional(propagation Propagation.REQUIRED) public void submitOrder(Integer customerId) { ListShopcart cartList orderDao.findCartByCustomerId(customerId); for (Shopcart cart : cartList) { // 加鎖查詢當(dāng)前鮮花記錄避免超賣 Flower f flowerDao.get(Flower.class, cart.getFlower().getId()); if (f.getStock() cart.getNums()) { throw new RuntimeException(庫存不足); } f.setStock(f.getStock() - cart.getNums()); flowerDao.update(f); cart.setStatus(1); // 標(biāo)記為已提交訂單 orderDao.update(cart); } } }Transactional(propagation Propagation.REQUIRED)聲明式事務(wù)注解方法內(nèi)全部數(shù)據(jù)庫操作在同一個(gè)事務(wù)里執(zhí)行任何一步拋異常都會全量回滾。flowerDao.get(Flower.class, cart.getFlower().getId())按id查詢鮮花取最新的庫存數(shù)據(jù)。f.getStock() cart.getNums()先檢查庫存再扣減這是防止超賣的第一道防線。因?yàn)檫@個(gè)項(xiàng)目沒有用悲觀鎖或樂觀鎖并發(fā)高時(shí)仍有風(fēng)險(xiǎn)學(xué)習(xí)階段夠用。cart.setStatus(1)把購物車記錄標(biāo)記為訂單這是訂單狀態(tài)流轉(zhuǎn)的唯一開關(guān)。這段代碼是答辯時(shí)最能展示你理解深度的素材。老師問「并發(fā)場景下會不會超賣」你既能說出當(dāng)前方案的問題也能說出改進(jìn)方向給Flower表加樂觀鎖版本號或悲觀鎖select ... for update比只會背概念強(qiáng)得多。4.4 后臺訂單管理ManageAction里如何處理待辦訂單后臺經(jīng)理登錄admin.html之后看到的訂單列表就是所有status1的shopcart記錄。ManageAction里的處理方法把你的注意力帶到一個(gè)細(xì)節(jié)——后臺和前臺操作的是同一張表區(qū)別只在查詢條件上。// ManageAction.java - 后臺訂單處理 public String listOrders() { ListShopcart orders orderDao.findOrdersByStatus(1); MapInteger, ListShopcart grouped new HashMapInteger, ListShopcart(); for (Shopcart cart : orders) { Integer cid cart.getCustomer().getId(); if (!grouped.containsKey(cid)) { grouped.put(cid, new ArrayListShopcart()); } grouped.get(cid).add(cart); } ServletActionContext.getRequest().setAttribute(grouped, grouped); return success; } public String completeOrder() { Integer id Integer.parseInt(ServletActionContext.getRequest().getParameter(id)); orderDao.updateStatus(id, 2); // 2表示已完成 return success; }findOrdersByStatus(1)只查已提交未處理的訂單狀態(tài)2是已完成狀態(tài)0是購物車中。MapInteger, ListShopcart grouped把同一顧客的訂單聚合在一起頁面表格上顯示為一個(gè)訂單整體底層還是散列的shopcart記錄。updateStatus(id, 2)把單條記錄狀態(tài)改為2實(shí)現(xiàn)訂單完成操作。這里粒度是每個(gè)購物車記錄所以一次下單多件商品后臺逐條確認(rèn)完成。從這個(gè)設(shè)計(jì)能看出項(xiàng)目的簡化策略不對訂單主表和訂單明細(xì)表做拆分直接復(fù)用shopcart。好處是表少、邏輯直接學(xué)習(xí)成本低壞處是統(tǒng)計(jì)維度單一不能做優(yōu)惠分?jǐn)?、收貨地址、物流追蹤這些擴(kuò)展。做畢設(shè)答辯時(shí)你如實(shí)說明這個(gè)取舍就行。5. 避坑指南數(shù)據(jù)庫編碼、配置文件與亂碼問題的四個(gè)實(shí)戰(zhàn)排錯(cuò)5.1 坑一db.properties打開亂碼或讀取亂碼現(xiàn)象Eclipse里打開db.properties文件中文注釋全部變成亂碼程序啟動時(shí)數(shù)據(jù)庫連接報(bào)錯(cuò)。原因Eclipse默認(rèn)的文本文件編碼是GBK中文Windows環(huán)境或ISO-8859-1而項(xiàng)目作者保存properties文件時(shí)用的是UTF-8。編碼不一致讀取自然出錯(cuò)。解決右鍵db.properties → Properties → Resource → Text file encoding選UTF-8。同時(shí)確認(rèn)spring.xml里讀取properties文件的bean配置沒有額外聲明編碼。load-time編碼由Eclipse決定運(yùn)行時(shí)讀取properties文件用的是Properties類默認(rèn)按ISO-8859-1讀取——如果你的properties文件里有中文注釋最好把關(guān)鍵配置都寫成純ASCII字符或去掉中文注釋。從那以后我每次新建properties文件先統(tǒng)一Eclipse工作空間的默認(rèn)編碼為UTF-8避免同類問題在多個(gè)文件上重演。5.2 坑二頁面中文全部顯示為問號現(xiàn)象首頁和商品列表能打開但所有中文文字都顯示成「???」后臺數(shù)據(jù)也是問號。原因數(shù)據(jù)庫/表/表的列字符集不是utf8或者JDBC連接串沒帶characterEncodingutf8參數(shù)。項(xiàng)目readme里也提醒了——數(shù)據(jù)庫默認(rèn)編碼必須為utf8。解決分三步排查。第一步SHOW CREATE DATABASE flower檢查庫的字符集。第二步SHOW TABLE STATUS FROM flower檢查表的字符集。第三步SHOW FULL COLUMNS FROM flower檢查列的字符集。某一張表不是utf8就單獨(dú)轉(zhuǎn)換ALTER TABLE flower CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;CONVERT TO CHARACTER SET utf8把一整張表所有文本字段的字符集和排序規(guī)則都改成utf8比逐列修改省事。這一步不用重啟Tomcat改完重新刷新頁面中文就正常了。如果你的db.properties里characterEncodingutf8沒配再加上再重啟Tomcat。5.3 坑三Tomcat啟動報(bào)ClassNotFoundException或NoSuchMethodError現(xiàn)象Eclipse啟動TomcatConsole里報(bào)ClassNotFoundException: org.springframework.web.context.ContextLoaderListener或NoSuchMethodError。原因項(xiàng)目的lib目錄下jar包與本地Tomcat或JDK版本沖突。最常見的是Spring版本和Tomcat自帶的類庫沖突或者是lib缺包——比如fileupload相關(guān)的jar丟失會導(dǎo)致上傳功能ClassNotFound。另外JDK8環(huán)境下跑Spring3.1.x也可能出現(xiàn)NoSuchMethodError因?yàn)椴糠肿止?jié)碼操作庫版本太老。解決先檢查項(xiàng)目lib目錄完整性確認(rèn)有spring-web、spring-webmvc、struts2-spring-plugin、hibernate4-core這些核心jar。再確認(rèn)Tomcat運(yùn)行使用的是JDK1.7或1.8Eclipse的Server配置里Runtime Environment可以指定。如果確認(rèn)lib完整還是崩潰最省事的方法是換Tomcat7 JDK1.7重試這個(gè)組合是項(xiàng)目作者驗(yàn)證過的。5.4 坑四上傳鮮花圖片失敗或圖片路徑404現(xiàn)象后臺添加鮮花填寫表單、選擇圖片提交后提示失敗或者添加成功后前臺商品圖片顯示成裂圖。原因文件上傳成功后保存到了本地某個(gè)磁盤路徑但前臺JSP頁面用img src/upload/xxx.jpg引用的是項(xiàng)目部署路徑下的資源兩者不一致。Struts2的fileupload攔截器默認(rèn)限制文件大小為2MB圖片稍微大一點(diǎn)就報(bào)錯(cuò)。解決優(yōu)先選小體積圖片測試10KB~500KB的jpg或png如果仍有問題檢查struts.xml里的上傳常量constant namestruts.multipart.maxSize value10485760 /10485760是字節(jié)數(shù)即10MB把默認(rèn)的2MB上限擴(kuò)大五倍。上傳成功后查看項(xiàng)目里設(shè)置的uploadPath通常在配置類或properties里確認(rèn)保存路徑和引用路徑一致。常見做法是保存到WebContent/upload/下引用時(shí)用相對路徑upload/xxx.jpg這樣Tomcat部署后路徑不丟。另外確認(rèn)FlowerAction里處理upload的代碼在保存時(shí)給文件名加了隨機(jī)前綴不然用戶上傳兩個(gè)同名文件會互相覆蓋。6. 功能驗(yàn)收清單與二次開發(fā)把畢設(shè)項(xiàng)目改造成能演示的作品6.1 拿一張表逐項(xiàng)核對九項(xiàng)功能驗(yàn)收下載后跑通不代表項(xiàng)目就是你的了你需要按功能逐項(xiàng)驗(yàn)收每一項(xiàng)都做一遍確認(rèn)自己理解業(yè)務(wù)流。我整理一張驗(yàn)收清單你照著走一遍比看十遍源碼都有效。功能模塊驗(yàn)收操作預(yù)期結(jié)果商品展示前臺首頁打開按分類展示鮮花列表圖片正常加載分類搜索點(diǎn)擊「玫瑰」分類只顯示玫瑰類鮮花商品詳情點(diǎn)擊某束鮮花跳轉(zhuǎn)詳情頁顯示完整信息游客訪問購物車不登錄點(diǎn)「加購」被攔截跳轉(zhuǎn)到登錄頁用戶登錄輸入1/1登錄成功session寫入customer加入購物車登錄后加購shopcart表新增status0記錄提交訂單購物車頁點(diǎn)結(jié)算庫存扣減shopcart記錄status變?yōu)?后臺訂單管理用1/1登錄后臺看到已提交訂單可改為完成狀態(tài)后臺增刪改鮮花后臺添加鮮花上傳圖片新鮮花出現(xiàn)在前臺列表每一項(xiàng)都過一遍之后你基本就能畫出整個(gè)系統(tǒng)的數(shù)據(jù)流和界面跳轉(zhuǎn)關(guān)系。這會讓你在答辯時(shí)面對「講講你的系統(tǒng)有哪些功能怎么實(shí)現(xiàn)的」這種大而泛的問題時(shí)有話可說而且講得清楚。6.2 畢業(yè)設(shè)計(jì)答辯加分低成本做三個(gè)增強(qiáng)很多人拿到項(xiàng)目以后直接提交換了但這恰恰是答辯容易掛掉的原因——老師對代碼的運(yùn)行邏輯問兩句就露餡了。我做這行這么多年建議你最少做三個(gè)小增強(qiáng)成本很低但答辯效果立竿見影。第一個(gè)增強(qiáng)是注冊功能。項(xiàng)目原版只有登錄沒有前臺注冊你可以在CustomerAction里加一個(gè)register()方法在JSP加注冊頁在CustomerDao里加一個(gè)findByUsername()做重名校驗(yàn)。這能展示你對注冊流程的完整理解——表單校驗(yàn)、唯一性約束、密碼存儲。第二個(gè)增強(qiáng)是搜索關(guān)鍵字功能。FlowerDao里加一個(gè)HQL模糊查詢from Flower where name like ?前臺加一個(gè)搜索框。這里你還可以順帶講一下Hibernate的HQL預(yù)編譯防SQL注入原理——這是個(gè)很好的答辯亮點(diǎn)。第三個(gè)增強(qiáng)是頁面美化。原版JSP頁面其實(shí)很樸素你把CSS改一下、把頁面布局調(diào)整成現(xiàn)代風(fēng)格整個(gè)項(xiàng)目的觀感能上個(gè)檔次。前端用到的技術(shù)還是純JSP HTML CSS不需要引入框架成本低且安全。// CustomerAction.java - 注冊功能增強(qiáng)代碼 public String register() { Customer c new Customer(); c.setUsername(username); c.setPassword(password); // 檢查用戶名是否已存在 Customer exist customerDao.findByUsername(username); if (exist ! null) { return error; // 用戶名重復(fù) } customerDao.save(c); return success; }username和password是Struts2從注冊表單里自動setter注入的字段與JSP表單的input name屬性一一對應(yīng)。findByUsername(username)是增強(qiáng)內(nèi)容在CustomerDao里寫一條HQLfrom Customer where username ?返回null則表示該用戶名可用。密碼存的是純文本你可以在答辯時(shí)主動說這個(gè)安全缺陷以及改進(jìn)方案MD5或BCrypt加密你會發(fā)現(xiàn)老師非常吃這一套——主動暴露并分析安全問題比被動回答加分不少。6.3 把別人的源碼變成自己的項(xiàng)目還差一步注釋與梳理最后一步也是我最推薦你做的事寫一份「項(xiàng)目說明文檔」。不用很正式但要把關(guān)鍵點(diǎn)記錄清楚——數(shù)據(jù)庫每個(gè)表是干什么的、哪些方法負(fù)責(zé)什么功能、訂單狀態(tài)流轉(zhuǎn)的數(shù)值含義、配置了哪些框架常量。這份文檔我不建議寫到項(xiàng)目代碼里單獨(dú)放一個(gè)Notion或Word文檔就行。從哪里開始建議順序是先讀flower.sql看表結(jié)構(gòu)和表關(guān)系再讀model包看實(shí)體映射然后按一條業(yè)務(wù)流從頭到尾追代碼加購 → 結(jié)算 → 扣庫存 → 后臺處理。這條鏈路走通再回頭補(bǔ)充理解登錄、注冊、后臺增刪改等其他模塊。做完這套動作你再回答「這個(gè)項(xiàng)目你熟不熟」的時(shí)候就有底氣了。從那以后我每次下載開源的畢設(shè)項(xiàng)目都強(qiáng)制自己走一遍「對照數(shù)據(jù)庫理表關(guān)系 → 按業(yè)務(wù)鏈路追三層代碼 → 把理解寫進(jìn)筆記 → 再動手改一個(gè)功能」的流程。這四個(gè)步驟走完看似是別人的源碼實(shí)際成了自己的彈藥。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天天综合站| 欧美色图校园春色| 久久婷婷亚洲| 伊人网青青| 亚洲色图 综合| 亚洲精品国产精品乱码不99| 人人操人人摸人人看人人插| 操久久久久| 加勒比少妇AV婷婷六月天超碰超碰| 免费视频无码| 日本韩欧美在线播放a| 大色综合| 乱伦强奸区日韩| 男人的亚洲天堂| 欧美黄色图片| 亚洲情色第一页| 免费黄色视频网址| 超碰成人国产| 色色色999| 国产免费一区在线观看| 久草国产在线视频| 亚洲第2页| 婷婷爽人人婷婷爽视频| 男人天堂新在线| 日韩精品人妻中文字有码在线| 中文字幕啊啊啊在线观看视频| 日本三级一区二区 在线| 青娱乐91| 搡老女人老91二区| 亚洲欧美清纯| 东京热毛片调教| 免费精品AB| www.男人天堂| 久草线上视频免费看| 91在线色| 欧美猛交黑寡妇中文字幕| 丝袜狠狠草尤物人妻av91| 激情小说五月天| 国产一区二区啪啪视频| 亚洲操人| 婷婷五月在线视频| 欧美综合骚| 婷婷色一区| 午夜男人天堂| 国产suv精品一区二区四区999| 国产精品对白内射| 欧美 传媒 麻豆 日韩 偷拍| 色综合20p| 久久伊人青青草| 亚洲男人天堂2016| 日本不卡中文| 立川理惠被中出无码| 无码高清少妇久久| 久久美女国产| 亚洲成?V人片在线观看福利| 丰满人妻-区二区三区免费| 狠狠操狠狠| 日韩乱码av| 久久97资源 网| 中文字幕久久精视频久久大全| 青青国产在线拍揄自揄拍| 久久久久久久久久久久欧美日| 激情文学 亚洲图片| 美女丝袜激情小说| 亚洲另类小说卡通动漫| 美女黄色一级A视频| www.欧精品| 成人久久无码www| 97视频www| 淫淫综合网| 色欲Av人妻精品一区二| 久草视频在线视频在线视频在线观看| 高清在线偷拍自拍视频| 亚洲AV乱码专区国产噜噜亚洲| 九九英色视频| 尹人免费观看视频在线| 发朗少妇买婬全视频中文| 日本天堂网| 日日干夜夜骑| 国产高清无码一区三区二区| 欧美日韩m| 国产黄色动态精品| 黄页av| 天天射天天操天天干天天吃2018| 欧美一区二区三区蜜桃| 啊啊啊好湿国产一二| 粉嫩久久久久| 欧美日韩大香蕉| 午夜欧美女人操逼| 男人天堂日日夜夜| 色综合一区二区三区| 青椒国产97在线熟女| 丁香六月婷婷久久综合| 欧美人妻另类在线| 国产精品探花在线| 精品乱码在线观看| 在线一道啪| 97人妻色| 综合久久久久久久久91| 91丝袜美女国产| 制服丝袜第二页| 中文操逼字幕| 在线啊啊啊啊| 久久综合婷婷| 青娱乐 成人娱乐在线| 欧美亚洲高清不卡| 亚洲一曲日韩精品| 熟妇人妻一区二区| 在线日韩日本亚洲国产| 嗯嗯啊在线视频| 高颜值美女口爆高潮浪叫| 欧美激情视频在线一区| 日韩人妻精品中文字幕| 欧美性爱免费短视频| 另类综合另类| 亚洲天堂男人网| 六月婷婷综合| 蜜臀一区二区三区在线| 麻豆国产精品午夜视频| 东京热激情视频一二三区| 韩日自拍| 婬女免费一二三区A片| 国产噜噜噜噜噜久久久久久久久| 色操逼网| 亚洲国产蜜臀系列在线观看| 国产亚洲精品第一最新| 久久久久久中文| 久久亚洲精品成人av| 国产人妻一区二区三区欧美毛片| 日韩黄色av中文字幕| 亚洲熟妇熟在线电影视频| 欧差乱伦二三| 白 大 人妻 区 在线| 深爱伊人影院| 国产专区第一页| 久久爽爽精品| 久久男女激情视频网站| 亚洲天堂2020| AV在线资源| 又大又长又粗又爽又黄| 99re6在线视频精品免费完整版安卓版| 亚洲成人在线高清| 91制服丝袜| 91黑丝在线播放| 丰满人妻一区二区三区色-百度| 殴美,日韩国产伦精品| 大象AV在线| 99热精品青草在线 | 中文有码9| 色色色综合| 天天射天天操天天干天天吃2018| 91痴汉| 啊啊啊好爽快点啊啊啊嗯嗯| 嫩草在线视频| 久久久久久久久一区二区三区| 男人的天堂亚洲| 国产精品午夜AV完会免费| 青青草原综合久久大伊人精品| 17c在线成人免费A片观看| 青青操视频在线| 日本黄 R色 成 人网站| 精品亚洲成人免费在线| AV色图| 亚洲五月天激情| 农村女一级毛卡片| 亚洲素人综合| 欧美色997| 性爱精品一区| 久久国产熟女影院| 女人精品内射国产99| 色综合天天爱去电影网| 97欧美色综合| av激情亚洲五月天| 久草精品视频| 国产有码一区| 艹我哪美一区无码| 影音先锋国产精品| 亚洲 自拍偷拍 欧美| 夜夜春夜夜操| 绑缚麻绳人妻寝取完整版| 99在线精品观看99| 911av网站免费观看| 蜜臀久久99精品久久久久久成人小说| 日欧毛片久久| 国产13区| 91暧暧| 午夜婷婷| 91男女啊啊啊| 极品白嫩福利在线| 五月婷婷激情网| 强奸乱伦Av网| 高清无码 国产精品| 日本一道在线播放高清| 中文字幕视频在线观看| 五月天婷婷社区| 毛片麻豆91糖心精品毛情片| 亚爽爽爽爽爽爽爽爽| 亚洲情色五月天| 99热亚洲| 999狠狠综合| 99操视频| 2020中文字幕| 天天弄天天操| 97久久精品亚洲| 激情综合久久| 熟妇熟女视频一区二区三区| 99综合视频| 一本久久精品中文字| 综精品久久久aaaa| 91人妻视频在线| 日韩三级一区| 青青草吊丝| 国产九九久久久精品| 天天日少妇逼AV| 日韩亚洲Av人人夜夜澡人人爽| 久久这里只精品免费福利| 精品人妻中文字幕高清| 日韩激情毛片一级久久久| 亚洲97精品| 78超碰| 天天天肏屄肏屄肏屄欧美欧美| 91精品免费| 97精品国产97久久久| 激情开心五月天| 三级三久久线久久99久目本WW| 加勒比久久综合网高清| 国产极品美女高潮无套在线观看| 国产精品999zyz| 2024黄色视频| av日韩国产一区二区| 亚洲天堂一区二区久久| 伊人久久综合影院| 99热综合| 第四色色综合91| 亚洲官网在线| 欧美操逼录像国产黄色国产| 1769一区| 91人妻Pr| 青青草视频在线观看一区二区| 色一射色一射| 成熟熟女国产精品一区二区| 欧美激情在线观看视频| 日婷婷| 国产99久久99热这里只有精品15| 熟女精品一区二区三区| 国产AV天美| 日韩欧美偷拍美女视频| 久久久久成人网| 天天92av| 亚洲图片婷婷五月天| 乳欲人妻办公室奶水| 色婷婷导航| 极品五月天噜噜| 中文字幕少妇色 | av天天在线观看| 亭亭丁香激情| 亚州乱码中文字幕综合久久久| 99精品丰满人妻| 噜噜噜噜天天狠狠| 黄色免费一级在线毛片| 国产亚州精品美女久久久免费| 亚洲日本成人动漫| 大乔未久88一区| 97se亚洲综合自| 久久草草亚洲蜜桃臀| 人人射人人操人人摸| 亚洲男人天堂Av| 嗯……啊…嗯嗯…啊…好舒服| 婷婷丁香九月| 福利五区| 青娱乐休闲视频在线观看| 国产9 9在线 | 亚洲| 超碰99热| 免费99精品国产自在在线| 欧美日韩精品久久久久久久久东北老熟妇| 亚洲成人日韩小说| 九九久久久久久爱| 啊啊啊好舒服视频| 狠狠狠狠狠狠| 国产九九九九九九| 日韩精品碰碰| 六月婷婷一区二区三区| 强奸乱伦AV网址| 欧美三级中文字幕hd| 天天舔九色婷婷| 本道综合精品| 人妻中文在线| 欧美性少妇| 偷拍自拍在线视频观看| 啊啊好多水| 成全动漫视频观看免费下载| 99性爱视频| 亚洲se电影| 久久黄色视频一区二区三区| 亚洲日韩青青草色月| 自拍六区| 91美女在线精品视频| 久久大香蕉97| 97色婷婷| 玖玖综合网| 欧美色五月| 欲香欲色综合天天伊人| 五月激情小说| 色色九区| 久久麻豆一区二区| 欧美色乱| 亚洲男人的天堂V| 美女诱惑一区| 欧美天堂日韩三级国产传媒| 欧美不卡在线一区二区| 台湾肥佬网一区二区三区| 中文乱码字字幕在线第5页| 91亚州日韩高清| 91美| 丝袜美腿欧美| 超碰天天操你比| 久久久四区| 99免费在线视频| 日韩亚洲欧美中文字幕| 性色高清在线| 黄色电影在线播放综合网站| 亚州色图片在线色| 中文字幕一区日韩精| 伊人9| www.色婷婷| 葡萄牙性视频一二区| 亚洲色综合| 18禁看网站一区| 丁香五月天久久精品视频一区二区三区| 国产精品福利资源在线尤物| 九九九九九九九九九五码| 在线色导航| 97在线/亚洲| 天美传媒av 在线| 精品日韩人妻视频| 大但人体久久久久| 蜜臀少妇一区二区| 国产人妖视频一区在线观看| …亚洲黄色厕厕女女在线播…| 亚洲精品蜜桃久久久一区二区三区| 无码高清操逼| 国产精品伦理| 亚洲吊色| 九九热九九热| 久久久精品国产亚洲AV无码| 一级片视频啪啪| 九色 蝌蚪 熟女自 | 亚州欧美总和| 丰满翘臀美女影院视频| 久久av成人无码免费| 欧美色交| 九七毛片九九毛片| 日本三级日本三级三级人妇四虎| www.91久久| 日韩视频精品在线观看| 91老司机视频| 国产丝袜高跟美女av免费观看| 久久国色天香香蕉| 92福利社视频| 在线观看精品国产免费| 一区不卡在线观看av| 中文字幕一区二区无码成人| 四虎免费视频| 日本精品性生活久久久| 国产av白丝| 狠狠操狠狠爱| 午夜精品视频777| 久久久久九九九| 欧美一级美片在线观看免费| 亚洲美女AV无码| 色九色久| 午夜精品久久久99热蜜桃的功能特点| 欧美少妇内射| 欧美色九九九| 蜜奶av| 色妺妺在线视频| 色五月丁香五月| 亚洲成人av电影在线| 国产在线综合网| 婷婷激情四射| 日本在线999| 色色97爱| 无码国产精品96久久久久孕妇| 夜夜爽夜夜摸夜夜操免费视频| 久久超碰大香蕉| 污到发麻的视频 国产| 超碰亚洲欧美日韩无| 99自拍视频在线| 蜜桃无码AV一区二区| 国产精品一区二区校花| 性爱视频无打码在线观看| 日本大香蕉综合网红本杳社区| 天天综合站| 啊啊啊轻点在线观看| 亚洲精品人伦一区二区| 国产精品久久久久999| 91国产丝袜美女| 玖玖大干人妻| 大粗鳼巴久久久久| 欧美天天综合| www亚洲免费| 五月天玖玖资源站| 欧美性生活综合| 另类天堂| 殴美性色a级欧美| 香蕉久久精品| 欧洲精品欧洲精品| 国产午夜精品一区二区三区牛牛| 91国模| 2020久久免费视频| 免费强奸av| 日本天天操| 精精夜夜| 亚洲图片 激情小说| 亚洲偷91色| 久久久精品网| 少妇一级婬片免费放一级a性色.| 人人人人插| 超碰免费人人| 国产无遮挡| 天天综合~91| 欧美性第一页| 人人看欧美性爱| 五月婷婷六月丁香| 欧美黄色图片| 久热伊人| 久久精品国产亚洲AV无码做| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 国产 亚洲 丝袜 制服| 亚洲天堂热| 91色爽欧美| 亚洲综合嫩| 男人天堂网址| www.久久制服糖| 99热91| 亚洲高清视频在线观看| 熟女久久| 天天操天天射天天日| 志村玲子视频一区二区| 天天看高清麻豆| 天天日天天干天天摸天天操| 蜜乳AV免费观看| 色婷婷香蕉| 老熟妇一区二区三区啪啪| 九七超碰人人乐| 高清一区AV无码| 亚洲最大91网| 肥佬影院91| 黑人狂躁日本妞一区二区三区| 日本三级中国三级99人妇网站| 在线看免费无码AV天堂的| 欧美日韩中国x| 亚洲码专区| 亚洲AV秘 精品久久老牛影视| 蜜桃臀av一区二区| 婷婷色香伊人| 8050午夜少妇无码| 精品成人女人久久| 成人小说视频在线精品欧美| 天天操狠狠日夜夜干超碰撸com视频在线观看| 久久久久久波多野吉衣高潮| 四虎av在线| 亚洲中文日韩精品| 国产情色在线| 中文字幕久热视频在线| 欧美操逼视频二区| 无码久久国产| 欧洲无码一区二区| 亚州性色| 激情综合网激情五月天| 九九精品网| 午夜国产成人福利视频| 久操影视| 一区二区三区探花在线观看| 操b网站亚洲无码| 看大黄色大片原件| 青青草视频导航官网| 91大神精品长腿在线观看网站| 男人亚洲91首页在线| 欧美九九九九九| 欧美午夜精品久久久久久3D| 三级色影综合网| 色色99| 日日骚精品视频| 射久久| 插入综合网| 色欧洲| 亚洲欧洲小说图片视频| 黄片www视频免费| 蜜桃视频精品一区二区三区| 国产Av超碰| 1000午夜黄色| 国产 日韩 另类 视频一区爱| 精品无人区麻豆乱码1区2区图片| 91干熟女| 91美女网站| 欧美日韩人人精品| 波多野42部无码喷潮在线观看| 日本不卡免费二区| 农村妇女一级二级三级视频| 网友自拍第一页| 天美一二三在线观看Av| 亚洲九月丁香| 精品在线78| AV天堂丝袜| 黄片视频,下载| 超碰 av 女人天堂| av天堂手机版追回| 男人的天堂2019| 国产精品一区人妻精品阁在线| 国产成人亚洲精品无| 加勒比五月天| 亚洲黑丝在线| 国产熟女免费观看久久| 蜜臀久久99精品久久久久久-DVD| 伊人久久国产免费观看视频| 久久精品国产亚洲AV高级北京| 国产视频97| 欧美亚洲性爱一区二区| 日韩免费一级性爱视频| 啊啊啊啊啊啊啊在线| 亚洲天堂,男人| 色欲三区| 亚洲成人贴图| 超碰 国产熟女精品一区| oumeisetu综合| 久久久亚洲Av| 狠狠爱综合网| 精品国产乱码久久久影院| 亚州成人A√| 五月综合婷婷久久网站| 欧美亚州综合网图片| 九九久久国产精品| 亚洲欧洲小说图片视频 | 欧美的精品的视频| 伊人久久蜜月| 国产白领连续中出在线观看| 婷婷丁香五月综合| 欧美亚洲日本视频久久久| 男啪女色黄无遮挡免费观看| 精品久操| 亚洲AV不卡在线观看| 欧美日韩国第一区| 麻豆视频test| 激情接吻视频久久久久久| 神马麻豆福利院| 日本久久久精品电影| 天天干天天日天天射黄色片| 熟女色图在线| 天天淫人人妻日日色| 丁香五月婷婷色| 岛国片国产成人亚洲播放| 性爱网站一区二区| 永久免费观看的毛片的网站| 国产精品97视频| 另类欧美| 99热这里只有精品1| 啊啊啊啊啊啊啊在线| 欧美精品91| 欧美另类色| 69精品在线| 日日爽夜夜爽| 日本精品一区二区中文字幕| 91人妻Pr| 野狼福利社区| 蜜桃狠狠色伊人亚洲综合网站| 天堂性色| 99久久无码| 激情五月天中文字幕色| 一起草三级AV电影在线观看| 亚洲日韩美女丝袜美腿人妻视频| 精品国产乱子伦一区二区三区,精品一| 欧美青青草视频| 国产精品第一页国产大屁股视频免费区i| 另类成人首页一区| 视频黄站| 97日亚洲欧美| 嗯嗯啊啊操我| 中文字幕五月婷婷免费| 99视频这有这里有精品| 男女性感激情网站| 免费精品中文字幕| 久久美女国产| 日本五十路熟女一区二区| 乳欲人妻办公室奶水| 嫩草一区二区在线观看| 高潮的A片激情扒开一区| 大香蕉视频一二三区| 超碰成人公开| 国产成人自拍视频在线| 国产精品久久久久av| 99热这里只有精品9| 另类在线| 亚洲丝袜天堂| 久久原创中文| 91精品人妻一区二区三区蜜桃| 9999久久久| 五月天婷婷在线看| 特级毛片特黄久久免费看| 日本在线激情一区二区三区| 久极品在线观看| 草久久久| 丰满熟妇大乳做爰| 91精品国产91久久青草| 亚洲欧洲国产综合av| 五月天激情视频| 亚洲宗合电影| 日韩十八禁| 免费a级毛片av无码久久精品中文字幕| 午夜精品五区| 校园春色之综合网| 无码九九九九| 日韩熟女无码| 中国亚洲呦女专区| 自拍视频大全亚洲专媒视频/一区二区三区 | 污污汅18禁网站在线永久免费观看 | 国产无码精品久久久久久| 琪琪精品免费一区二区三区| 国产精品免费视频人成| 毛片视频白嫩| 日本一二三免费久久| 成人26uuu| 精品超碰中文在线| 中字一区| 成人无遮挡毛片免费看| A久久| 超碰碰小说97| 天天激情综合站| 深夜啪啪啪视频免费| 亚洲做性| 日韩一区二区高清在线观看的| 熟女丝袜视频| 国产97av| 國產尤物AV尤物在線觀看| 在线天堂999| 久9九综合在线| av网站在线观看了| 日韩ab网 | 综合性视频99| 日韩中文字幕精品一区在线| 天堂日本亚洲欧美| 另类欧美色| 国产精品久久久久久久久AV大片| 中文一区二区| 精品国产一区二区三区香蕉欧美| 91九色丨国产丨爆乳| 校园春色五月天| 99色在线视频| 精品白丝一区| 韩国黄色片精品久久久 | 色欲日韩欧美在线一区| 91丨精品丨国产丨丝袜| 亚洲AV无码AV吞精久久久久| 嫩草伊人久久精品| 免费观看性欧美一级| 嗯嗯嗯好爽| 99热销国产这里有精品| 久久99综合| 91爱啪| 国产999精品久久久久久| 亚洲丨在线| 亚欧毛片基地国产毛片基地| 97色论| 国产又猛又粗又爽又黄| 91精品人妻一区二区三区蜜桃臀| 青娱乐淫乱1314| 黄网在线播放| 伊人久久AV诱惑悠悠| 日本有码久久| 亚洲欧美国产va在线播放频| 色月天AV导航| 免费αⅴ在线观看| 91美女視頻| 美女被艹尤物视频| 91精品人妻一品二品三品| 激情五月婷| 东北女人无套内谢视频| 涩爱AV在线| 丁香九月 婷婷| 天堂涩涩| 五月开心网| 人人爱人人乐人人操| 骚逼一区二区| wwwcaobibi| 欧美性xxxxx狂欢| 亚洲精品国产精品乱码不卡| 超碰人妻天天干| 日日骚av| 99爱久久视频频| 欧美色性爱| 亚欧美色| 久久伦理视频久久大香蕉视频| 爱av免费| 人人爱人人乐人人操| 亚洲人精品午夜不卡| 25国产精品免费观看| 国内亚洲高清无码| 久九九九九九九九热| 久久久久中出| 亚洲第一无码播放立川理惠| 91欧美亚洲| 欧美人人天天网| 亚洲久热| 国产成人亚洲精品无| 蜜臀av中文字幕| 成人影 天天操 亚洲| 97av在线观看| 伊人在线大香蕉视频久久| 久久免费老司机精品| av在线一区二区三区| 9丨久久九九九| 久偷拍欧美日韩三区| 狠狠狠一区二区三区| 精品无码不卡视频| 欧美一级黄色免费专区| 欧美热图99| 欧美国产成人在线| 久热精品色情| 伊人天堂在线| 综合自拍| 草草影院最新网址| 91无遮挡| 夜夜欧美 | 久久久久久久国产视频| 久久久久熟女| 亚洲激情久久久伊人综合| 99热亚洲天堂| 国产精品无套内谢| 国产无码久久高清| 992视频一区| 伊人久久大香线综合无码| 96AV精品| 在线播放成人网站| 人妻干天天| 99这里只有精品国产| 久操97| 97色香蕉| 国产一区在线看| 综合少妇网| 欧美综合在线第一页| 91激情国产| 久久噜噜噜精品国产亚洲综合| 超碰爽人妻熟女Av| 人妻插插人妻人| 青娱乐亚洲热| 极品五月天噜噜| 久操九九九九| 99热免费| 国产精品国产自产拍高清AV| 色蜜AV| 亚洲精品一区中文字幕乱码| www.色婷婷.com| 欧美78p| 亚洲欧美一区二区三区在钱蜜桃 | 狠狠亚洲| 伊人 俄罗斯 a v| 性色av一区二区| 天美传媒Av在线| 老司机免费视频在线91| 今日头条成人一区二区三区四虎精品| 欧美一二三区四五区| 台湾佬激情综合| 婷婷国产精品九区| 操人妻逼91| 久久综合av| 亚洲精品久久久久久| 久久久一区二区| 中国91AV| 九九九九九九视频免费| 欧美精品宗合| 一级片在线观看高清无码| 在线国产福利网址导航| 成人激情无码在线视频| 成人片在线播放| 亚洲欧美校园另类春色| 欧美亚综合色图| 日日摸日日碰| 人伦四五区| 97超碰9| 欧美人人曰人人操人人射射| 国产亚洲精品av一区| 免费人成?大片在线播放| 99啪啪视频| 日韩美一区| 国产青青美女玩逼视频| 精品综合久久久久久97| 蜜臀AV午夜精品久| 精品日韩中文在线| 国产成人精品日本亚洲语言| 91干熟女| 天天日日日射| 超碰欧美97资源| 免费操逼91| 黄色AAAAAAAAAAA大片| 五月丁香| 操操啪| 九九久久国产精品| 欧美天天搞| 波多野42部无码喷潮在线观看| 成人一道本免费视频| 五月婷婷激情网| 日日夜夜青青草母狗| 丰满少妇一区二区三区四区观看| 久久久久久久久国产| 九九九九精品| 色五月综合| 91爱做| 美女诱惑一区| 91婷婷| 色综合20p| 精品人妻中文字幕高清| 99视频内射三四| 天天干人妻| 神马九九| 日本 欧美 亚中文字幕| 91精品又粗又猛又爽| 黄色视频60分钟| 99热免费| 日韩人人精品| 51一区二区三区| 免费人人搞97| 亚洲色图综合| 亚洲色图激情小说| 麻豆色约约| a片在线播放| 女人的久久久| 久久系列| 中文字幕高清20页视频| 女上位精品在线| {男男暴菊gay无套网站| 日韩99神马视频播放片在线播放| 少妇高潮一区二区三区在线| 日韩人妻免费精品| 亚洲高清在线se| 精品亚洲国产成人精品| 亚洲情色1区| 玖玖久久久| 色婷婷基地| 超碰地址久久| 综合网色| 99超碰网| 日韩天美| 天天噜| 盗摄 精品 另类 一区| 久操免费电影| 91综合在线| 中文字幕一区二区三区人妻不卡| 男女日B国产| 亚洲宗合电影| 亚洲无码国产探花在线观看| 偷窥自拍亚洲色图| 日韩免费a级毛片无码a∨| 夜夜操天| 国产精品久久久久无码Av网曝门| 无码人妻一区二区一牛影视| 日韩性爱小视频| 亚洲AV无码| 男人女人18禁片免费看网站| 精品久久久中文字幕不| 91被操| 一区二区不卡| 欧美人妻久久精品二区三区| 久久久精品一区二区| www.久久久久| 亚洲精品久久久久久久蜜桃臀| 无码视频黄色网战| 欧美图片校园春色| 嗯啊不要在线观看嗯啊| 97国产人人| 午夜性| 综合欧美激情网| 国产成人精品网站| 日本一二区免费| 曰韩精品视频一区二区| 欧美肥臀在线| 黄色乱论网站| 国产精品成人无码av无码免费| 美女爽爽爽刺痛洞洞| 五月婷婷基地| 国产又色又粗又黄又爽| 国产人妻精品一区二区三区秋霞| 人人操人人狠狠操| 淫荡网址| 五十路人妻在线| 精品久久久久,69国产成人精| 被男人吃奶很爽的毛片| 婷婷久久久精品| 麻豆精品久久久久久久| 中文字幕一二区二三区人妻专区| 物业黑人 AV一区| 狠狠色综合网| 色伊人91| 97超碰久久| 99精品人人爽| 亚洲色欲一区二区三区| 黄片免费久久久久久久| 亚洲中文字幕精品久久久久久直播| 亚洲在线综合| 97超久碰| 欧美九九爱| 日韩欧美中文日韩欧美色| 亚洲欧洲激情卡通另类文学四射小说网站| 91美女在线视频| 五月婷婷色色| 黄色视频特级毛片| 亚洲国产一区二区日韩专区| 久久女人视频| 欧美黄片视频在线观看免费 | 久久精品久久久久久久久| 97热视频在线观看| 天天弄天天操| 国产亚洲色婷婷久久99精品91葵花宝典| 亚洲日韩久久精品一区| 日本不卡高清免v欧美日韩在线观看| 美国aaaaa一级黄片| 日韩国产精品人妻无码久久久| 91热色| 欧美在线啊啊啊 | 爱爱啊啊啊| 久久东京热成人| 国产麻豆一区二三区| 欧美婷婷久久| 亚洲情色第一页| 日韩精品一区二区三区色欲| 亚欧性爱无码| 一级性爱视频免费在线| 天美久久久久| 日日噜噜夜夜久久亚洲一区二区 | 人妻少妇蜜桃视频欧美一区| 午夜男人一级A片7777| 少妇3P性爱自拍| 日韩亚洲精品一区二区| 你懂的在线观看区国产| 国内毛片欧美香蕉精品| 麻豆成人影音在线| 97超碰超| 国产精品久久久久久久久久久久久久吹 | 嗯嗯嗯嗯啊啊啊好紧好大| 久久婷婷五月天| 91热爆在线| 免费精品99| 久久九九99| 日韩成人精品中文字幕| 免费观看啪视频| www.天天干| 亚洲成人免费电影| 爱av免费| 色色五月婷婷| 婷婷久久久| 青青草自拍视频在线播放| JULIA一区二区三区在线播放| 伊人色综合网电影| 大香蕉黄色一区| 中文字幕亚洲永久精品| 亚洲图片欧洲图片aⅴ| 国产极品美女高潮无套在线观看| 亚洲国产午夜真人一级片中文字幕精品黄网站| 日本免费人成视频播放120秒| 高清成年美女黄网站免费大全| 国产成人无码啪| 亚洲无码?第一页| 超碰av在线| 精品国产一区二区三区av在线资源| 逼逼逼逼操操操操操操操操操午夜剧场| 五月婷网站| 国产67194| 欧洲色色| 亚洲情色91| 久久蜜桃综合网| 日日夜夜草草草| 97超碰国产亚洲精品| julia国产在线 | 青娱乐国产盛宴视频| 97色色婷婷| 久妇网| 亚洲精品黑丝| 亚洲动态色图| 偷拍 亚洲 欧美| 午夜美女福利视频| 国产女同视频在线播放| 国产日韩欧美三级片| 亚洲天天艹| 久久久久921| 大香蕉淫人网| 3P乱轮视频| 婷婷尹人大香蕉免费| 狠狠躁天天躁日日躁| 久热精品在线| 天堂综合网| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 丝袜无码a片| 亚洲黄色电影| 亚洲AV无码乱码| 夜夜草网站| 老师充足的奶水小说| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 欧美色图20p| 欧美日韩国产另类综合| 日本99热| 久久同城AV| 无码国产精品96久久久久孕妇| 久久精品国产Aⅴ| 色婷婷五月综合激情中文字幕| 在线天堂999| 欧成人精品一区二区三区| 欧美1区二区三区公司| 婷色五月| 97bbn| 亚洲性刺激| 国产精品久久久久中文字幕| 在线观看一卡二卡| 在线一区| 男女性无套 免费九一| 免费观看啪视频| 人人搡人人肉久久精品| 在线播放中文字幕| 欧美日韩国产成人高清| 亚洲AV小说| 欧美专区17页| 深夜福利黄片| 亚洲超碰在线| x97av| 一本久道在线综合视频| 老女人日韩美91| 日日操夜夜操天天操免费观看麻豆| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 日韩一级片在线看| 色性欧美| aV中文麻| 五月丁香狠狠爱| 啊啊啊轻点在线观看| 五月天玖玖资源站| 国产精品乱码久久久久久久久久久久| 亚洲高清91| 亚洲经典啪啪| 超碰吊日色| 国产亚洲综合欧美一区| 91美女视屏| 亚洲天堂男人| 国产久久久9999| 久久久久亚洲| 91女人的网站| 大香蕉中文网| 综合欧美日本三级| 男人的天堂三级| 樱花蜜乳av| 成人精品欧洲亚洲| 欧美岛国精品在线观看| 一及黄久一点| 日本色色视频网站| 九九九九免费高| av网站在线看| 久久色一区| 欧美性爱精品七区| 亚洲欧美setu| 黄页网站免费高清在线观看| 天操天操夜操夜月操月年年操操| 天天综合网日韩7799| 亚洲色图伊人网| 大香蕉免费乱伦视频| 九t超碰| 精品一区二区三区蜜桃臀赵总| 操碰97| 六月丁操逼| 国产精品免费视频人成| 欧美性第1页| 天天干一区二区| AA级电影三区| 涩涩久久精品| 久久久国产成人一区二区三区在线| 熟女少妇视频| 日韩精品三区四区| 亚洲无码免费看| 日日日骚女人精品| 婷婷久久大香蕉| 欧美熟女妇同| 色妇综合网| 久久久久久久久久久人妻| 免费岛国一级片| 台湾大香蕉99热| 在线观看AV片| 欧美天天干| 人妻出轨一区二区三区| 日本高清_区二区三区| 亚洲狠狠入| 中文字幕少妇色 | 妇女性内射冈站HDWWWCOM| 久久99热这里只频精品6学生| 亚洲精品一区二区精华| 超碰97色色| 另类小色呦| 97中文字幕一区| 精品色色| 大香蕉一级黄色片久久| 亚洲综合九| 99这里有精品| 一区操逼| 色噜噜国产精品视频一区二区| 美女91在线观看| 91快色色色色色| 成人AV在线网站| 欧美在线55555| 婷婷色综合| 欧日a| 欧美91在线| 超碰在线第一页| 久久久久精| 91人人臊| 欧美一级久久久久久久大片动画| 欧美精品系列| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 97精品免费| 日本欧美色| 久无码| 网页导航五月天免费一二三区| 操啊国产| 天堂性色| 欧美另类天堂| 欧美韩国你懂得在线| 97色插| 亚洲欧洲网站免费观看| 精品中文字幕第一页| 久久国产在线一区二区| 久久亚洲日韩熟女精品| 91少妇香蕉久久精品| 久久久久日本视| 亚洲91极品| 另类天堂| 91色婷婷综合久久中文字幕二区| 亚洲自拍97| 51一区二区三区| 精品成人女人久久| 是还免费视频1727我| 青青草视频在线观看一区二区| 色女女女导航| 金莲网址| 中文字幕奈奈美被公侵犯| 99久久精品无码一区二区毛片免费| 91天天综合在线观看| 久草精品视频| 伊人精品国产| 2000亚洲男人天堂| 97色色国产视频| 国产精品一二三区福利| 亚洲.欧美.丝袜.中文.综合| 欧美亚洲日韩人妻在线观看| 日韩免费性爱视频在线观看| 在线观看一级α片刺激高潮视频| 天天夜夜rb| 高颜值美女口爆高潮浪叫| 亚热日本熟女| 无码操逼天堂| 亚洲凸凹超碰成人| 亚洲无码国产探花在线观看| 99热99色| 久热免费视频| 久久久一级| 97天天摸天天碰| 日韩人妻资源在线看| 97精彩视频网站|