亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

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

基于SSH框架的花店管理系統(tǒng):JavaWeb畢設(shè)項目核心實踐解析 簡介一套面向JavaWeb課程設(shè)計與大學(xué)生畢設(shè)場景的花店管理系統(tǒng)源碼包以SSHStruts2SpringHibernate整合架構(gòu)實現(xiàn)網(wǎng)上花店前后臺核心功能商品分類展示、關(guān)鍵詞檢索、購物車下單、會員登錄以及管理人員對顧客、掌柜、鮮花和訂單的后臺維護(hù)并支持上傳鮮花圖片。壓縮包含75個文件含20個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è)項目參考或SSH框架整合練習(xí)。已有215人學(xué)習(xí)瀏覽項目規(guī)模適中前臺數(shù)據(jù)展示、購物車結(jié)算與后臺訂單處理形成完整閉環(huán)對入門者理解JavaWeb分層開發(fā)與訂單流程有直接幫助。1. 花店管理系統(tǒng)一個基于JavaWeb與SSH框架的畢設(shè)項目到底能干什么判斷一個畢設(shè)項目值不值得下載我通常先看它的技術(shù)棧是不是「主流且完整」——這套花店管理系統(tǒng)正好踩在這條線上Spring3.1.1 Hibernate4.1.7 Struts2.3.4 的SSH組合配MySQL5和Tomcat7前臺是商品展示、分類搜索、購物車下單后臺是訂單處理、鮮花增刪改、圖片上傳。它覆蓋了JavaWeb課程設(shè)計里最常見的幾道大題框架整合、三層架構(gòu)、文件上傳、購物車業(yè)務(wù)流。如果你是做畢設(shè)、課程設(shè)計或者想找一份能跑的JavaWeb前后端源碼來拆解數(shù)據(jù)庫表設(shè)計和框架配置這份資源值得仔細(xì)過一遍。提示項目自帶完整的前后端源碼和flower.sql數(shù)據(jù)庫腳本Eclipse導(dǎo)入即可運行但JDK、Tomcat、MySQL版本需要按項目要求對齊否則會遇到一堆兼容性報錯下面會逐個說清楚。適合人群很明確正在選畢設(shè)題目的在校生、需要JavaWeb項目案例參考的初學(xué)者、以及想看看SSH框架怎么把MVC分層落地的開發(fā)者。不適合用來做生產(chǎn)級系統(tǒng)——它就是一份學(xué)習(xí)性質(zhì)的項目業(yè)務(wù)邏輯不復(fù)雜但勝在五臟俱全。2. 本地部署跑起來Eclipse JDK1.7 Tomcat7 MySQL5 的環(huán)境對齊2.1 環(huán)境版本為什么必須嚴(yán)格對齊很多人在這一步翻車根源不是項目代碼有問題而是環(huán)境版本和項目要求不一致。這個項目用的是Spring 3.1.1、Hibernate 4.1.7、Struts2 3.4這三個框架版本都是2012年前后的產(chǎn)物那時候的注解方式和API調(diào)用跟現(xiàn)在Spring Boot那套差別很大。你拿JDK8去跑部分舊框架版本輕則警告刷屏重則直接啟動失敗。JDK1.7是當(dāng)時的主流版本Tomcat7對應(yīng)Servlet 3.0規(guī)范MySQL5的默認(rèn)存儲引擎是InnoDB字符集默認(rèn)latin1——這些都是項目作者開發(fā)和測試時用的環(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的正確姿勢解壓項目后你會看到一個flower.sql文件放在根目錄。先啟動MySQL服務(wù)然后用命令行或者可視化工具把這份SQL導(dǎo)入。這里有個容易忽略的點項目要求數(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下用反斜杠會報錯。如果你用Navicat或SQLyog導(dǎo)入操作路徑是新建數(shù)據(jù)庫flower → 右鍵運行SQL文件 → 選擇flower.sql → 編碼選utf8。導(dǎo)入完成后檢查表是否齊全這個項目一共五張表customer顧客、manager經(jīng)理、flower鮮花、category類目、shopcart訂單/購物車。注意shopcart表名起得比較特殊它既承擔(dān)購物車功能又記錄訂單信息后面第四章會細(xì)講。2.3 修改db.properties連接數(shù)據(jù)庫前必須做的配置項目里數(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ū)動是這個路徑不要換成com.mysql.cj.jdbc.Driver——那是MySQL 8的驅(qū)動類名項目lib里沒那個jar。jdbc.url中useUnicodetruecharacterEncodingutf8這兩個參數(shù)必須保留它們是Java程序和MySQL之間中文不亂碼的前提。jdbc.username和jdbc.password改成你本地MySQL的實際賬號密碼默認(rèn)是root/123456具體以你安裝時設(shè)定的為準(zhǔn)。改完db.properties后打開文件如果看到亂碼用Eclipse右鍵該文件 → Properties → Resource → 將Text file encoding改為UTF-8。項目作者在readme.txt里專門提了這條坑。2.4 Eclipse導(dǎo)入與Tomcat部署的完整步驟打開EclipseFile → Import → General → Existing Projects into Workspace選擇解壓后的項目根目錄。導(dǎo)入后如果項目名旁邊有紅叉在項目上右鍵 → Properties → Targeted Runtimes勾選Tomcat7再把項目的Java Compiler級別改成1.7或1.8。# 確認(rèn)Tomcat環(huán)境變量如果設(shè)了的話 echo $CATALINA_HOME # 在Eclipse Servers視圖添加Tomcat7右鍵項目 → Run As → Run on Serverecho $CATALINA_HOMELinux/Mac下驗證Tomcat路徑是否配好Windows用戶在環(huán)境變量里查CATALINA_HOME。Eclipse的Servers視圖里Add New Server選Apache Tomcat v7.0指向你本地解壓的Tomcat7目錄。Run on Server是Eclipse集成的部署方式內(nèi)部會自動把項目打成war包放到Tomcat的webapps目錄并啟動。啟動成功后瀏覽器訪問http://localhost:8080/flower/看到主界面說明部署成功。前臺登錄用測試賬號 1/1后臺登錄也在管理入口處用相同的 1/1。如果訪問404檢查項目部署名是不是flower或者是端口沖突——Tomcat默認(rèn)8080如果你的8080被占用改Tomcat的server.xml端口或者關(guān)閉占用端口的進(jìn)程。3. SSH框架整合源碼拆解Struts2控制層與Hibernate映射的實現(xiàn)細(xì)節(jié)3.1 項目整體目錄結(jié)構(gòu)與MVC分層定位這個項目在分層上是非常標(biāo)準(zhǔn)的SSH教科書式結(jié)構(gòu)你打開源碼包會看到清晰的包路徑每一層都有自己的職責(zé)這也是它作為學(xué)習(xí)項目價值最高的地方。源碼包的核心結(jié)構(gòu)如下action包存放Struts2的Action類也就是C層service包是業(yè)務(wù)邏輯層dao包是數(shù)據(jù)訪問層model包是Hibernate實體類也就是M層而WebContent目錄下的JSP頁面就是View層。action包CustomerAction、FlowerAction、OrderAction、FrontAction、ManageAction、BaseAction共6個控制類。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è)計答辯時老師最愛問的點——你只要把「三層職責(zé)分離」講明白這個項目的框架理解分就拿到了。3.2 BaseDao泛型設(shè)計為什么它是整個數(shù)據(jù)層的核心打開dao包你會發(fā)現(xiàn)五個Dao類都很薄核心邏輯全在BaseDao里。它用的是Hibernate的getHibernateTemplate()模板方法把CRUD操作做成泛型方法子類只需要指定實體類型就能用。這個設(shè)計是SSH項目里的經(jīng)典做法也是值得你在答辯時展開講的重點。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實例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è)計的巧妙之處在于五個實體類共享一套CRUD代碼新增實體時只需要寫一個不加任何方法的Dao子類。當(dāng)然代價是業(yè)務(wù)復(fù)雜后Dao會越來越臃腫——在這個項目里夠用也足夠你答辯時說明白「為什么用泛型基類」。3.3 struts.xml路由與Spring整合的關(guān)鍵配置Struts2的配置文件把URL請求映射到具體Action類而這個項目里Action的實例不是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名稱——這個Bean在spring.xml里配置Struts2通過SpringObjectFactory去容器里取實例。關(guān)鍵點nameflower_*這種通配符風(fēng)格要求Action方法名和URL規(guī)范對齊這也意味著你在新增功能時需要遵循約定不能隨意命名。答辯時老師會問「為什么二維碼能對應(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。項目里的action、service、dao都用的是Controller、Service等注解不需要在xml里逐個聲明。LocalSessionFactoryBean的packagesToScan掃描model包下的Hibernate實體類自動生成映射前提是實體類帶有Entity注解。hibernate.show_sqltrue控制臺打印Hibernate生成的SQL語句調(diào)試時非常有用但生產(chǎn)環(huán)境要關(guān)掉。tx:method namesave* propagationREQUIRED /事務(wù)傳播級別REQUIRED意思是如果當(dāng)前沒有事務(wù)就新建一個Service里以save/update/delete開頭的方法都會走事務(wù)。事務(wù)配置的核心理解HibernateTemplate的每次操作都在事務(wù)上下文中執(zhí)行Spring的tx:advice自動攔截service層以指定前綴開頭的方法并綁定事務(wù)。這能保證購物車下單時購物車記錄、訂單記錄、鮮花庫存三件事要么全部成功、要么全部回滾——這是電商類項目最基本的一致性要求。4. 購物車與訂單核心業(yè)務(wù)流從前臺加購到后臺處理的完整鏈路4.1 五張表的關(guān)聯(lián)關(guān)系shopcart表的設(shè)計值得細(xì)看這個項目的數(shù)據(jù)表設(shè)計不復(fù)雜但shopcart表很微妙。通常項目會把購物車和訂單拆成兩張表這里合二為一通過字段區(qū)分狀態(tài)。看project正文里的model包Shopcart.java同時承擔(dān)了這兩個職責(zé)這直接反映在業(yè)務(wù)代碼的實現(xiàn)方式上。表名字段角色說明customer顧客信息含登錄賬號密碼前臺登錄校驗manager經(jīng)理信息后臺登錄校驗測試賬號與前臺相同category鮮花分類如玫瑰、百合、綠植前臺分類導(dǎo)航flower鮮花商品名稱、價格、圖片、庫存、所屬分類shopcart購物車/訂單關(guān)聯(lián)flower和customer含數(shù)量、下單狀態(tài)shopcart表本質(zhì)上是一個關(guān)聯(lián)表外鍵指向customer和flower核心字段是數(shù)量nums和狀態(tài)標(biāo)記。當(dāng)用戶未結(jié)算時它是一條購物車記錄結(jié)算提交后狀態(tài)字段發(fā)生變化它就變成了一條訂單記錄。后臺經(jīng)理看到的待處理訂單本質(zhì)就是把這些狀態(tài)為「已提交」的shopcart記錄按顧客聚合展示。4.2 前臺加購到結(jié)算的代碼鏈路FlowerAction與OrderService的配合前臺用戶從商品列表頁點「加入購物車」開始會經(jīng)歷一次典型的SSH三層數(shù)據(jù)流JSP頁面發(fā)起請求 → Struts2攔截到URL匹配FlowerAction方法 → FlowerAction里調(diào)OrderService → OrderService里調(diào)OrderDao → Hibernate執(zhí)行數(shù)據(jù)庫操作。把這條鏈路的代碼拆開看你就知道SSH項目里一次完整操作長什么樣。// 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è)計。0是購物車狀態(tài)用戶提交訂單后狀態(tài)改為1后臺看到的「待處理訂單」就是status1的記錄。orderService.submitOrder(customer.getId())一次調(diào)用把該顧客所有status0的記錄置為status1實現(xiàn)批量結(jié)算。這里注意Action里的flower字段是Struts2通過setter自動注入的前端參數(shù)。JSP頁面提交的flower.id會直接綁定到這個對象的id屬性前端表單字段名和后端實體屬性必須對應(yīng)這在SSH項目里是隱式約定寫錯了頁面報錯還不好排查。4.3 OrderService事務(wù)處理一次下單涉及三張表下單不只是改shopcart表的狀態(tài)還要扣減鮮花庫存和校驗庫存是否充足。這步跨表操作是整個系統(tǒng)里事務(wù)需求最強的業(yè)務(wù)點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ù)庫操作在同一個事務(wù)里執(zhí)行任何一步拋異常都會全量回滾。flowerDao.get(Flower.class, cart.getFlower().getId())按id查詢鮮花取最新的庫存數(shù)據(jù)。f.getStock() cart.getNums()先檢查庫存再扣減這是防止超賣的第一道防線。因為這個項目沒有用悲觀鎖或樂觀鎖并發(fā)高時仍有風(fēng)險學(xué)習(xí)階段夠用。cart.setStatus(1)把購物車記錄標(biāo)記為訂單這是訂單狀態(tài)流轉(zhuǎn)的唯一開關(guān)。這段代碼是答辯時最能展示你理解深度的素材。老師問「并發(fā)場景下會不會超賣」你既能說出當(dāng)前方案的問題也能說出改進(jìn)方向給Flower表加樂觀鎖版本號或悲觀鎖select ... for update比只會背概念強得多。4.4 后臺訂單管理ManageAction里如何處理待辦訂單后臺經(jīng)理登錄admin.html之后看到的訂單列表就是所有status1的shopcart記錄。ManageAction里的處理方法把你的注意力帶到一個細(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把同一顧客的訂單聚合在一起頁面表格上顯示為一個訂單整體底層還是散列的shopcart記錄。updateStatus(id, 2)把單條記錄狀態(tài)改為2實現(xiàn)訂單完成操作。這里粒度是每個購物車記錄所以一次下單多件商品后臺逐條確認(rèn)完成。從這個設(shè)計能看出項目的簡化策略不對訂單主表和訂單明細(xì)表做拆分直接復(fù)用shopcart。好處是表少、邏輯直接學(xué)習(xí)成本低壞處是統(tǒng)計維度單一不能做優(yōu)惠分?jǐn)偂⑹肇浀刂?、物流追蹤這些擴(kuò)展。做畢設(shè)答辯時你如實說明這個取舍就行。5. 避坑指南數(shù)據(jù)庫編碼、配置文件與亂碼問題的四個實戰(zhàn)排錯5.1 坑一db.properties打開亂碼或讀取亂碼現(xiàn)象Eclipse里打開db.properties文件中文注釋全部變成亂碼程序啟動時數(shù)據(jù)庫連接報錯。原因Eclipse默認(rèn)的文本文件編碼是GBK中文Windows環(huán)境或ISO-8859-1而項目作者保存properties文件時用的是UTF-8。編碼不一致讀取自然出錯。解決右鍵db.properties → Properties → Resource → Text file encoding選UTF-8。同時確認(rèn)spring.xml里讀取properties文件的bean配置沒有額外聲明編碼。load-time編碼由Eclipse決定運行時讀取properties文件用的是Properties類默認(rèn)按ISO-8859-1讀取——如果你的properties文件里有中文注釋最好把關(guān)鍵配置都寫成純ASCII字符或去掉中文注釋。從那以后我每次新建properties文件先統(tǒng)一Eclipse工作空間的默認(rèn)編碼為UTF-8避免同類問題在多個文件上重演。5.2 坑二頁面中文全部顯示為問號現(xiàn)象首頁和商品列表能打開但所有中文文字都顯示成「???」后臺數(shù)據(jù)也是問號。原因數(shù)據(jù)庫/表/表的列字符集不是utf8或者JDBC連接串沒帶characterEncodingutf8參數(shù)。項目readme里也提醒了——數(shù)據(jù)庫默認(rèn)編碼必須為utf8。解決分三步排查。第一步SHOW CREATE DATABASE flower檢查庫的字符集。第二步SHOW TABLE STATUS FROM flower檢查表的字符集。第三步SHOW FULL COLUMNS FROM flower檢查列的字符集。某一張表不是utf8就單獨轉(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啟動報ClassNotFoundException或NoSuchMethodError現(xiàn)象Eclipse啟動TomcatConsole里報ClassNotFoundException: org.springframework.web.context.ContextLoaderListener或NoSuchMethodError。原因項目的lib目錄下jar包與本地Tomcat或JDK版本沖突。最常見的是Spring版本和Tomcat自帶的類庫沖突或者是lib缺包——比如fileupload相關(guān)的jar丟失會導(dǎo)致上傳功能ClassNotFound。另外JDK8環(huán)境下跑Spring3.1.x也可能出現(xiàn)NoSuchMethodError因為部分字節(jié)碼操作庫版本太老。解決先檢查項目lib目錄完整性確認(rèn)有spring-web、spring-webmvc、struts2-spring-plugin、hibernate4-core這些核心jar。再確認(rèn)Tomcat運行使用的是JDK1.7或1.8Eclipse的Server配置里Runtime Environment可以指定。如果確認(rèn)lib完整還是崩潰最省事的方法是換Tomcat7 JDK1.7重試這個組合是項目作者驗證過的。5.4 坑四上傳鮮花圖片失敗或圖片路徑404現(xiàn)象后臺添加鮮花填寫表單、選擇圖片提交后提示失敗或者添加成功后前臺商品圖片顯示成裂圖。原因文件上傳成功后保存到了本地某個磁盤路徑但前臺JSP頁面用img src/upload/xxx.jpg引用的是項目部署路徑下的資源兩者不一致。Struts2的fileupload攔截器默認(rèn)限制文件大小為2MB圖片稍微大一點就報錯。解決優(yōu)先選小體積圖片測試10KB~500KB的jpg或png如果仍有問題檢查struts.xml里的上傳常量constant namestruts.multipart.maxSize value10485760 /10485760是字節(jié)數(shù)即10MB把默認(rèn)的2MB上限擴(kuò)大五倍。上傳成功后查看項目里設(shè)置的uploadPath通常在配置類或properties里確認(rèn)保存路徑和引用路徑一致。常見做法是保存到WebContent/upload/下引用時用相對路徑upload/xxx.jpg這樣Tomcat部署后路徑不丟。另外確認(rèn)FlowerAction里處理upload的代碼在保存時給文件名加了隨機前綴不然用戶上傳兩個同名文件會互相覆蓋。6. 功能驗收清單與二次開發(fā)把畢設(shè)項目改造成能演示的作品6.1 拿一張表逐項核對九項功能驗收下載后跑通不代表項目就是你的了你需要按功能逐項驗收每一項都做一遍確認(rèn)自己理解業(yè)務(wù)流。我整理一張驗收清單你照著走一遍比看十遍源碼都有效。功能模塊驗收操作預(yù)期結(jié)果商品展示前臺首頁打開按分類展示鮮花列表圖片正常加載分類搜索點擊「玫瑰」分類只顯示玫瑰類鮮花商品詳情點擊某束鮮花跳轉(zhuǎn)詳情頁顯示完整信息游客訪問購物車不登錄點「加購」被攔截跳轉(zhuǎn)到登錄頁用戶登錄輸入1/1登錄成功session寫入customer加入購物車登錄后加購shopcart表新增status0記錄提交訂單購物車頁點結(jié)算庫存扣減shopcart記錄status變?yōu)?后臺訂單管理用1/1登錄后臺看到已提交訂單可改為完成狀態(tài)后臺增刪改鮮花后臺添加鮮花上傳圖片新鮮花出現(xiàn)在前臺列表每一項都過一遍之后你基本就能畫出整個系統(tǒng)的數(shù)據(jù)流和界面跳轉(zhuǎn)關(guān)系。這會讓你在答辯時面對「講講你的系統(tǒng)有哪些功能怎么實現(xiàn)的」這種大而泛的問題時有話可說而且講得清楚。6.2 畢業(yè)設(shè)計答辯加分低成本做三個增強很多人拿到項目以后直接提交換了但這恰恰是答辯容易掛掉的原因——老師對代碼的運行邏輯問兩句就露餡了。我做這行這么多年建議你最少做三個小增強成本很低但答辯效果立竿見影。第一個增強是注冊功能。項目原版只有登錄沒有前臺注冊你可以在CustomerAction里加一個register()方法在JSP加注冊頁在CustomerDao里加一個findByUsername()做重名校驗。這能展示你對注冊流程的完整理解——表單校驗、唯一性約束、密碼存儲。第二個增強是搜索關(guān)鍵字功能。FlowerDao里加一個HQL模糊查詢from Flower where name like ?前臺加一個搜索框。這里你還可以順帶講一下Hibernate的HQL預(yù)編譯防SQL注入原理——這是個很好的答辯亮點。第三個增強是頁面美化。原版JSP頁面其實很樸素你把CSS改一下、把頁面布局調(diào)整成現(xiàn)代風(fēng)格整個項目的觀感能上個檔次。前端用到的技術(shù)還是純JSP HTML CSS不需要引入框架成本低且安全。// CustomerAction.java - 注冊功能增強代碼 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)是增強內(nèi)容在CustomerDao里寫一條HQLfrom Customer where username ?返回null則表示該用戶名可用。密碼存的是純文本你可以在答辯時主動說這個安全缺陷以及改進(jìn)方案MD5或BCrypt加密你會發(fā)現(xiàn)老師非常吃這一套——主動暴露并分析安全問題比被動回答加分不少。6.3 把別人的源碼變成自己的項目還差一步注釋與梳理最后一步也是我最推薦你做的事寫一份「項目說明文檔」。不用很正式但要把關(guān)鍵點記錄清楚——數(shù)據(jù)庫每個表是干什么的、哪些方法負(fù)責(zé)什么功能、訂單狀態(tài)流轉(zhuǎn)的數(shù)值含義、配置了哪些框架常量。這份文檔我不建議寫到項目代碼里單獨放一個Notion或Word文檔就行。從哪里開始建議順序是先讀flower.sql看表結(jié)構(gòu)和表關(guān)系再讀model包看實體映射然后按一條業(yè)務(wù)流從頭到尾追代碼加購 → 結(jié)算 → 扣庫存 → 后臺處理。這條鏈路走通再回頭補充理解登錄、注冊、后臺增刪改等其他模塊。做完這套動作你再回答「這個項目你熟不熟」的時候就有底氣了。從那以后我每次下載開源的畢設(shè)項目都強制自己走一遍「對照數(shù)據(jù)庫理表關(guān)系 → 按業(yè)務(wù)鏈路追三層代碼 → 把理解寫進(jìn)筆記 → 再動手改一個功能」的流程。這四個步驟走完看似是別人的源碼實際成了自己的彈藥。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久久内射良家| 午夜性| 丁香五月社区| 久插不卡| 亚州综合色| 国产精品69人妻无码久久久| 熟女欧美日韩综合婷婷| 全国男人天堂网| 亚洲乱色熟女一区| 视频二区美腿丝袜制服人妻欧美| 大香蕉2017| 特级特黄一级毛片免费| 日韩伦理视频| 日产操逼| 午夜精品久久久久久久男人的天堂 | 日本免费不卡二区| 中文字幕制服诱惑| 女优免费一区二区永久| 亚洲中文字幕在线视频一区二区| 91男女啊啊啊| 亚欧美综合网| 不卡免费av在线播放| 佐山爱中文字幕| 一起草三级AV电影在线观看 | 亚州高清AV| 日韩欧美大力操| 先锋精品av色鲁| 天天影视91看看| 在线国产福利网址导航| 亚洲天堂日本| 91精品伊人久久久大香线蕉91| 中文字幕文字幕无码一区二区三区电影99| 在线v中文字幕一区二区三区| 日本高清熟女久久一区| 人妻81p| 亚洲视频小说| 91精品人妻偷情| 青娱乐av在线| 国产福利在线视频网站| 国产精彩女在线观看视频| 亚洲欧美自拍偷拍| 日韩欧美天天爽爽爽天天爽爽| 天天激情综合站| 熟啊v色欧美热| www熟女乱伦com| 亚洲天堂另类小说男人| 免费一级性爱久久| 97国产综合欧美| 久久99午夜精品一区人妻| 9长久久精品| 日本高清一区二区在线| 97超色| 国产超碰| 日韩在线国产字幕| 日逼五月天| 午夜AV人气不卡| 无码精品啪啪啪一区二区三区三州| 亚洲码专区| 欧美激情 亚洲色图| 性爱动态120秒| 97干在线| yazhouzaixian| 国内外色色色色色成人视频| 亚洲日韩美国人妻| 91精品丝袜久久久久久| 日本亚洲vr欧美不卡高清专区| 69av一区二区三区| 欧美色91| 97 国产一区| 99国产精品视频尤物| 人伦四五区| 欧美成人都市人妻| 台湾成人无码AV| 亚洲人妻色图| 国产精品欧美激在线| 国产伦乱91| 啊啊啊啊啊在线| 国产青青美女玩逼视频| 亚洲欧美精品一区天堂久久 | 久久精品国产亚洲AV成人直播| 不卡在线观看视频| 岛国999| 久久99国产综合精品女同| 日韩无码黄色片| 午夜男人的天堂| 欧美日韩婷婷中文| 日日夜夜天天| 屁屁影院一区二区三区国产| 欧美日韩在线视频网站| 激情内射| 欧美国产成人在线| 麻豆视频test| 蜜臀操逼黄色视频操的好爽| 国产无码久久高清| 一级黄色性爱裸体视频| 综合久久97| 91在线丝袜| 亚洲淫乱骚妇AV| 天天干天天拍| 超AV色女| 97精品综合| 中文字幕日韩电影人妻| 香蕉视频精品亚洲一区二区三区在线播| 青青网三级视频| 国产亚洲在线观看| 337p大胆噜噜噜噜噜91Av| 日本精品中文字幕视频| 视频一区二区免费在线| 日韩啪啪视频| 97久操| 亚洲精品黑丝| 肉丝无码中文高清| 自拍亚洲综合| 97看操| 天天操av懂色| 少妇99成人麻豆| 婷婷综合五月天| 久操网视频| 欧美中文字幕日韩在线| 亚洲一级黄色毛片| 国产精品国产精品国产| 欧美在线天堂| 久久久久久九九九九九| 精品国产乱码久久久久久免费| 999 久久久| 国产视频大全| 综合欧美色图| 亚洲人妻色图| 网友自拍第一页| 欧洲精品一级二级精品综合视频综合| 自拍六区| 亚洲丝袜诱惑| 亚洲**2021在线观看| 亚洲伊人成综合成人网| 成人av性爱电影在线观看| 婷婷丁香激情| 搡老女人老熟女91| 无码直播久久久| 内射小黄片| 人妻偷拍一区二区三区| 一本一道波多野毛片中文在线| 干干干天天| 中国国产精品一区视频| 日韩一区二区三区四区五区 | 男人天堂网站| 日韩成人私密一级精品av| 久久97超碰| 国产精品ⅴ无码大片在线看.| 久久亚州精品成人Av无| 人妻乱仑一区二区三区| 丁香九月激情| 久久久久密臀一区二区| 九九九九免费视频| 精品久久97| 夜夜爽夜夜爽| 在线欧美69V免费观看视频| 无码聚合| 伊人五月天青青草婷婷| 性感女人网页在线观看视频| 久久久久网站-538在线视频-欧美永久乱码| 欧美色图亚州激情| 精品国产乱码久久久影院| 激情综合 婷婷五月 红杏| 久久精品熟妇丰满人妻99| 国产精品福利视频播放| www.亚洲成人一区| 久精品无码av一区二免费国产在线观看 | 97天天做| 97精品一区| 欧美精品97| 国产精品探花在线| 无码99| 淫乱图区| 黄色香蕉视频网站一区| 国产欧美日韩在线不卡第一页| 97午夜剧场日韩| 熟妇高潮精品一区二区三区下载| 3PAV乱伦视频| 依人大香蕉| 国产久久一区二区| 成人午夜高潮av猛片| 思思热免费视频观看| 九九九久千久久激情蜜桃在线看| 啊啊啊啊,啊啊好多水| 99re99| 免费看日产一区二区三区| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 色婷婷丁香五月天| 亚洲天堂一二| 国产传媒操逼视频| 尤物av网站| 五十路熟女,国产欧美精品区一区二区三区| 91狠狠综合网| 色蜜AV| 色偷偷综合91久久噜噜| 第四色奇米影视777| 国产精品大香蕉| 色偷综合| 午夜激情成人在线观看| 草草影院在线视频| 91精品丝袜久久久久久| 久久99久久99久久99人受| 91日产欧美| 欧成人精品一区二区三区| 唐山老熟妇露脸啪啪叫| 国产乱青青草久久| 中文色综合| 最新国产精品久久精品| 亚洲图片视频小说| 天天色播| 亚洲欧美校园| 高清国产av无码| 国产妇女精品视频青青草| 福利视频香蕉免费一区二区在线| 丝袜美腿诱惑亚洲欧美视频在线观看 | 四季av一区二区凹凸精品小说| 久久中出| 亚洲综合888| 久久AV无码AV| 亚洲男人天堂网久久| 日韩大香蕉| 熟妇熟女亚洲天堂网| 亚洲欧美在线丝袜| 激情一区二区三区在线观看| 欧美春色| AV天天在线观看| 玖玖久久久| 国产剧情一区在线观看| 久久97超碰| 极品丝袜无码| 国产福利电影| 欧美影音在线| 99这里有精品| 日本道人妻久久久在线不卡色视频| 黄色成人网久久久久久| 精吧天堂| 色色色五月婷婷| 91欧美综合| 亚洲免费精品一区| 伊人五月天婷婷| 桃色人妻在线视频| 伦理片秋霞免费影院| 操老熟女AV| 91精品大奶人妻| 香蕉99秘 一区精品蜜桃臀| 中文字幕一区 二区三四五 区日 日骚| 中文字幕三四区| 久久不卡一区二区 | 亚洲色性情三级| 一类av片在线看| 妇女乱色二区| 男女91| 亚洲精品一区二区精品| 亚洲欧洲色情高清| 亚洲AV无码国产成人| 久久系列| 亚洲999综合| 极品白嫩美女白浆成人福利在线看| 久久久涩| 少妇99| 日本大片日本一区二区免费高清| 很很操在线| 天天躁狠狠躁av| 一区二区 韩日AV| 欧美日产国产在线成人第一区| 老鸭窝在线视频播放| 亚洲精品久| 激情五月天插| 天美传媒AV在线播放| 人妻 欧美 中文| 欧美久久伊人| 眼镜人妻101.com| 91N综合网| 97色97好| 日韩三级一区 | 亚洲操逼无码| 亚洲一区日韩精品中文字幕| 亚洲精品黄码久久久久| 久久久久78| 亚洲欧美精品一区天堂久久 | 啪一啪免费视频| 久久久久亚洲| 97中文综合| 国产视频一区二区在线| 日本久久网| 乱伦av国产| 中文字幕欧美日韩三级| 亚洲高清91| 中文字幕诱惑制服人妻丝袜美丝袜美| 久久久久久久 九九九九九九九| 丝袜熟女一区二区三区| 在线无码视频| 中文字幕人成乱码熟女香港| 91人人操| 香蕉精品二区二区| 免费国产| 日韩不卡一二三四| 中亚黄色三级大片| 大香蕉欧美国产日韩高潮| 超碰亚洲97| 2024人人操人人摸| 在线岛国新天堂8| 亚洲精品久久久久毛片A片拉屎 | 亚洲自拍小说| julia中文字幕在线观看| 又黄又爽在线观看视频| 五月综合色| 91free福利| 丰满人妻一区二区三区四区| 蜜乳成人AV| 欧美人黑A片无码免视费| 国产激情在线| 91骚熟女| 国产精品无码成人精品| 国产视频一区二区三区在线免费观看| 大二网站亚洲| 色在线综合| 男人女人18禁片免费看网站| 色图综合网| 日本视频在线中文字幕| 久久双插| 亚洲色 国产 欧美 日韩| 国产高清免费不卡av| 欧美探花网| 九九综合久久中文字幕| 国产高清免费不卡av| 人人 操人人 操人人| 黄色人人| 国产亚洲精品第一最新| renqi久久久久久久久久久久| 人妻22p| 精品国产一区二区三区av在线资源| AA丁香综合激情| 玖玖爱免费观看视频| 人人操人人叉人人插人人| 欧美一二三级精品在线| 97欧美性爱| 日韩色欲久久一二三四区| 欧美日韩一区二区三区四区蜜桃| 免费一级精品啪啪视频| 久久久久久国产精品免费网站| 一区二区三区激情在线观看| 亚洲激情网一二三四区| 欧美精品91| 中文字幕AV片| 91精品丝袜久久久久久| A级在线视频| 亚洲欧美成人网站AAA| 国产成年女人免费视频播放a| 操迟操逼在巾线Fre看| 丁香六月激情| 欧美日韩国产传媒在线精品| 色九九综合AV| 视频不卡中文字幕| 国产黄色 A 片免费看| 色色婷婷丁香| 青青三级视频| av黄图片在线观看| 亚洲午夜AV| 色五月69夫妻| 亚洲97资源| 97精品一区二区视频| 亚洲欧洲综合成人av一区| 美國A片| 日韩av不卡在线观看| 91久热这里只有精品| 国产精品一区二区黄片| 久久久久久久亚洲Av无码| 欧美日韩色| 韩国嫰模上门援交视频| 亚洲精品白丝| 大香蕉日韩欧美| 色综合 加勒比| 99在线啪| 激情五月天校园春色网| 亚洲熟女偷拍在线观看| 亚洲色图 91| 中文有码9| 51国产午夜精品视频| 欧美精品97| 夜夜骑夜夜操| 以及麻豆国产入口在线观看免费| 久久精品人人做人人看| 欧美在线永久天堂| 思思热一热婷婷热一热| 久久影视二区三区行押| 人人操人人肉久久精品| 91日韩网站| 欧美天天综合网| 97超碰磁| 久久久国产成人一区二区三区在线| 男人兔费天堂| 偷拍片久久| 白丝AV| 综合欧美激情网| 调教熟妇 久久久久久| 韩日巨乳美女免费视频在线观看| 精品午夜福利| 日韩精品一区二区三区色欲| 60秒免费小视频| 嗯嗯啊啊操我| 欧美日本中字另类在线| 91人妻视频在线| 校园春色AV天堂| WWW.操逼.COM| 熟妇人妻精品一区二区视频色欲| 婷婷五月天色网| 伊人黄色片| 丝袜性亚洲| 欧美不在线| 五月天婷婷激情| 亚洲天天精品| 国产精品午夜高潮呻吟久久av| 超碰97最新人妻| 岛国片在线播放| 色九九九| 免费精品人妻一区二区三| AV天天在线观看| 91丝袜在线观看| 大香蕉在线视频15| 精品三级在线专区| 丝袜狠狠草尤物人妻av91| 色吧5亚洲| 国产人伦精品一区二区三区| 91精品久久久| 91处女在线视频| 粉嫩不卡一区二区性爱| 99精品无码| 97超碰美国| 日婷婷| 亚洲女人毛茸茸91| 天天综合色| 熟女激情综合网| 久久日本熟女精品一区| 日韩成人电影AV| 九九九网站| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 日韩一区二区精品视频| 男女性无套 免费九一| 91处女视频在线观看| 国产精品干干干| 亚州性色| 丁香成人五月天| 色五月激情AV在线| 97视频新免费| 久久久久日本视| www.99中文字幕| 啊啊啊啊操死我| 精品一区二区三区四区外站| 美女刺激久久国产欧美| 不卡av在线中文字幕| 91丝袜| 亚洲欧美日韩电影网站一区| JULIA人妻风俗店中出电影| 欧美午夜视频精品久久| 人人做天天爱| 亚洲色人| 欧美色九九| 啊啊啊啊好疼视频| 中 文字幕一区二区三四 五 区日 日 骚 | 大JI巴好深好爽又大又粗视频| 亚欧美综合网。| 九九久久首页| 亚洲成人av色网| 一起草av| 一区二区三区在线资源| a久久| 大香樵伊人网| 99在线免费观看| 白嫩国模丰满一二三区| 一本一道波多野毛片中文在线| 亚洲国产一区二区日韩专区| 天天视频网站黄| 超清福利精品视频在线| 欧州一区二区三区四区| 操操操五月天婷婷丁香影院| 天天看天天干| a级成人毛片免费视频高清| 国产一区在线观看无码AV| 国产欧美精选激情视频| 亚洲系列第一页| 国产午夜激片Av毛片不卡| 美女黄频a美女大全免费皮| 黄片免费看黄片免费看| 曰韩av中文字幕专区| 黄片无码在线制服| 久久精品国产精品亚洲艾通辽熟妇| 亚洲一区二区在线观看91| 久久这里只精品| 丁香五月天婷婷姐| 亚州人妻| 女生久久网| 岛国黄片网站| 精品性爱无码在线播放| 五月丁香激情综合网| 麻豆黄色五月天| 经典丝袜一区| 啊啊啊啊操死我| 国产A v无码专区| 久久综合五月天| 好舒服视频| 亚洲第一页色网| 日本性感人妻91| 欧美亚洲日本激情在线| 九九九久千久久激情蜜桃在线看 | 亚洲综合第一页| 国产精品黄色三级av| 婷婷亚洲综合| 欧美后入式| 五十路六十路七十路熟婆| 激情综合五| 色偷综合| 九九热久久99精品re| 日韩欧美女优电影| 欧美日韩小说| 久久久精品成人国产| 熟女自慰久久久| 啊啊嗯嗯好爽| 97日本超碰综合| 午夜美女诱惑电源网| 午夜久久无码1000合集| 狠狠夜色午夜久久综合在线| 一级性爱视频免费观看| 极品五月天噜噜| 大奶的诱惑| 99re国产中文字幕| 91精品丝袜久久久久久| 无码99| 欧美亚洲天天| 欧美 亚洲 制服 精品| 91热| 中文字幕一区二区三区蜜臀| 亚州再线| 中文字幕精品一区欧美| 欧美色999| 口爆综合网| 日韩亚洲欧美中文字幕| 国产日韩精品一区二区三区| 日韩精品在线放| 亚洲色图a| 91碰超| 97av,com| 人妻嗯啊啊在线播放| 免费αⅴ在线观看| 精品久久一区二区三区四区五区| 另类欧美色| 99re8超碰| 曰本人妻人人澡人人夹| 91老妇女| 内射中出日韩在线观看视频| 无码精品久久久天天影视| 日本久久久精品电影| 狠狠色色| 欧美,日韩综合久久| 97在线播放| 超碰人妻久久人妻中文97| 国产激情av女片自拍| 怡红院久久老司机| 久久久久921| 91色综| 26uuu性物| 欧美不在线| 日韩av情韩国爱禁区av一区二区| 天天干天天拍| 婷婷久久五月| 日韩精品一区二区日韩| 国产女同在线观看视频| 久久久久久中文| 超碰538| 福利风月五月天影院| 十八禁啪啦拍视频无遮挡| 三级精品三级在线观看| 欧美色图综合网| 日韩熟女精一区二区三区不卡| 九热大香蕉| 日韩熟女精品无码专区一区二区| 蜜桃无码AV一区二区| 日韩综合成人免费视频| 91春色| 啊v在线观看视频| 欧美另类丝袜熟女| 欧美亚州综合网图片| 久久超碰免费的| 国产传媒美日韩av| 97干天天| 日韩中文字幕在线视频观看| 人妻人久久精品中文字幕| 欧美v亚洲v日韩v最新在线二区 | 97超久碰| 夜草欧美| 天天日熟妇| 蜜桃臀AV在线| 91精品导航| 九久精品| 老司机深夜18禁污污网站| 亚洲本色精品一区二区久久| 欧美日韩国产一区二区小黄片大全| 亚洲乱码精品一区二区| 久久无码一区二区二三区性色| 欧美日韩另类在线播放| 99精品视频在线观看免费| 亚洲天堂人妻熟妇视频| 九九碰九九爱97| 色香阁在线| 淫骚熟女一区二区三区| 亚洲第二页| 蜜臀一区二区三区在线| 一二三四视频中文字幕在线看| 台湾成人无码AV| 丰满人妻一区二区三区| 国产欧美日韩臀 | 韩国一级婬片A片无码天美| 性在久久久久久| 操操碰| 操死我了嗯嗯嗯| 色色九区| 丁香五月天激情网站| 久久久久久久久久久久久久久乱码| jiujiujiujingpin| 精品国产Av无码久久久伦古装| 91九色蝌蚪在线观看| 黄网在线播放| 欧美手机在线综合| 免费一级a毛片久久久久久鸭绿欲| 婷婷99狠狠| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 91蜜桃传媒精品久久久一区二区| 国产高清自拍视频| 六月丁香啪啪| 999熟女精品| 久久受www免费人成| 久久9精品视频| 老熟女综合网| 99精品在线观看| 蜜臀一二三区| 十八禁啪啦拍视频无遮挡| 偷拍五区| 97日本超碰综合| 欧美玖玖爱免费玖玖| 熟女一区二区三区四区| 干干干天天| 亚州欧美综合| 无色无码| 性生活性生大爱77AV国产| 色情乱伦AV| yazhouzaixian| 思思在线免费视频| 蜜臀久久99精品久久久久电影| 亚洲色色探花| 熟女熟妇一区二区三四区| 久久久夜夜嗨免费视频| 欧色网址| 亚熟在线| 午夜国产成人福利视频| 密臀成人视频久久久| 久久麻豆一区二区| 色色色日本| 天天天操天天天爱| 啊视频在线| 人妻久久| 欧美大战久久久伊人| 国产精品亚洲免费| 激情五月综合开心五月| 色香综合| 午夜噜噜噜| 爱爱啊啊啊| 成人国产二区三区在线,男女精品。| 激情久久久| 97干97色| 校园春色美腿丝袜 | 九九色影院| 日本操逼视频不卡直接放| 东京热毛片177b2viP| 91在线国产后入风骚翘臀美女素人| 欧美精品第四五页中文字幕在线观看| 99精品网| 在线国产探花| 国产成人www免费人成看片| 精品无码久久久久久国产浪潮| 秋霞 色色| 综合97| 91 欧美| 内射夫妻三片| 国产丝袜欧美在线视频| 亚洲系列第一页| 欧美麻豆成人同性GⅤ在线| 欧美亚洲日本视频久久久| 国产一区二区三区视频在线看| 国产精品久久久九九九| 天综合中文| 第一高清av中文字幕| 亚洲啪啪性视频| 五月天色图影视| 蜜臀久久99精品久久久老,,| 亚洲不卡不卡中文字幕不卡| 东京成人一区| 色九九九综合| 老熟乱一区二区三区四区| 久久九九热| 婷婷丁香人妻| 嗯嗯啊啊好爽| 久久久精品91八戒| 国产视频一区二区三区在线免费观看| 99国产在线 精品 视频| 少妇高潮对白在线观看| 久久这里只精品99re66图| 五月婷婷性爱| 白丝1区2区3区| 日日A∨| 91精品少妇搡搡搡| 无码78| 国产无吗在线播放| 日本视频在线观看污污污| aⅴ日韩成人电影av在线免费看av大全| 97人人模人人爽人人| 97超碰国产精品| 91网站18在线| 人妻蜜桃臀| 国产精品国产精品国产| 国产毛片久久久久久久| 日本在线激情一区二区三区| 98一区二区精品| 亚州色图狠狠干| 91久久精品美女高潮喷水| 亚洲97在线| 思思热在线cao| 九九热精品在线| 国产精品网站免费| 91欧| 国产高清无码一区三区二区| 天天插天天插| 久久亚码| 翔田千里AV无码秘 三区| 日韩欧美tv一区二区在线观看| 91狠狠色丁香婷婷综合久久| 狠狠夜色午夜久久综合在线| 久久久久久久久久久久色网| 性爱乱伦视频免费| 五月婷婷丁香六月| 操淫穴亚洲五月丁香 | 啊啊啊啊好疼视频| 91伊人| 日韩不卡a级视频专区| 97精品一二区| 91日韩网站| 日韩亚洲精品一区二区| 日本三级久| 曰韩香蕉97| www.99色| 狠狠躁AV| 日本欧美不卡| 在线国产一区二区av| 大香蕉中文aV在线| 国产精品天堂| 日本片日本片祼观看网站在线看中文版网页在线看 | 97色97干| 香蕉综合网| 精品妇操一区二区三区| 国产成人99久久亚洲综合| h在线看免费版在线看| 国产丝袜高跟美女av免费观看| 看日韩黄片| 久久99操天天日| 天天日骚逼熟女| 亚洲一级性爱视频免费看| 人妻天天爽夜夜爽精品2| 婷婷色香伊人| 天天干天天干天天干| 少好三P| 强奸乱伦中文字幕AV| 久久久久9999妇女| 一本色道综合久久欧美| 少妇国产不卡| 七月丁香婷婷| 77777亚洲蜜臀精品久久综合蜜臀| 男女啊啊啊啊啊| 亚洲午夜AV| 色悠悠伊人网五月天| 黄色性爱网网| 久久久国产护士丝袜美腿一| 自拍偷拍 日韩无码| 加勒比东京热五月天天堂网| 人人操人人操人人操人人操人人操人人人11.CM | 人妻一区二区三区四区视频| 国产精品天美传媒| 极品色| 蜜臀精品1区2区| 亚洲高清视频在线免费观看| 手机av天堂久久久久| 国产精品白丝| 久久综合中文国产| 啪啪啪精品| 欧美97视频| 亚洲国产麻豆一区二区三区| 精久久久| 久热99| 久久一二三四| 中文字幕人妻色偷偷久久皮| 老熟妇一区二区三区…| 欧美91久久久久| 人人做人人妻人人夜视频| 精品丰满熟妇人妻一区| 屌色在线97视频| 另类图片综合| 综合网欧| 日人妻视频91| 老鸭窝成人免费毛片视频| 91精品电影18| 亚洲免费成人在线高清无码视频 | 亚洲情色第一页| a片在线播放| 国产欧美成人精品| 99热这里是精品| 一区二区三| 国产精品欧美激在线| 色成人Www精品永久观看| 99久久免费看精品国产一区| 人妻激情另类| 国产美女自拍AV| 色777999综合| 亚洲色鬼| 草草网站影院白丝内射| 欲色综合| 久久綜合很很很| 澳门特级毛片免费观看| 欧美91在线| 亚洲欧美日韩电影网站一区 | 国产AAAAAABBBBB| 日本国产二线女色| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 农村妇女精品一二区| 骚乳在线| 日韩中文字幕二区| 国产无码精品成人| 久久激情视频| 男人天堂站| 白嫩国模丰满一二三区| 亚洲一级黄色毛片| 久热这里| 和协影院中文字幕三区| 日韩精品99999| 亚洲va有码在线天堂| 69麻豆天美| 大干人妻| 99操| 亚洲影视综合网| hd成人一区二区在线| 久久男人的天堂| 99re在线视频这里只有精品| 欧美有码亚洲中文字幕一区二区三区四区| 国产一区二区av综合| 精品国产Av无码久久久亚洲| 久久精品无码熟妇一区二区三区视频导航 | 26uuu性| 中文字幕国产在线天堂| 黄页网站成人免费| 97碰碰日本乱偷人妻中文的| 日韩女优中文字幕| 91久久久久久久久18| 亚洲国产尤物yw在线观看| 色图综合网| 欧美激情精品久久久久久| 无码男人天堂| 97人人爱人人做人人乐| 日韩久久三区| 99日精品欧美国产| 精品久久久久av影院| 国产在线能看的你懂的| 久夜视频| 国产精品一区二区密臀| 亚洲亚洲亚洲天堂天堂| 欧美性生活内射| 国产传媒美日韩av| 强上我不卡卡| 九九九九九九九九九九九免费国产| 久久久久9| 日韩黄色一区二区三区| blacked精品一区国产| 国产欧美日本亚洲精品| 97视频网站| 久久一区二区三区四区五区| 亚洲男人的天堂va亚洲男人社| 天美av在线| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 国精品一区二区三| 大香蕉在线视频15| 97天天搞在线| 夫妻四区五区六区| 中文字幕一二三区| 91啪9色| AV一二区| 美欧老女人97| 老女人碰碰在线碰碰视频| 国产白丝在线| 无码人妻精品一区二区三区九九| 欧色性第一页| 国产一区二区三区,在线观看观看| 国产九区| 精人妻无码一区二区三区伊人直播| 嗯,啊。舔我逼| 日韩中文字幕宗合在线| 超碰97资源网亚洲| 中文字幕丝袜| 92久久| 一起草三级AV电影在线观看 | HEYZO高无码国产精品227| 成人福利视频网| 日本99久久| 91狠婷| 人妻社区男人天堂| 黑人精品久久97| AV男人天堂网| 猛猛干| 26uuu成人影片| 91强热人妻| 亚洲激情网| 伊人综合色网| 亚洲AV无码久久精品蜜桃小说| 欧美大干日韩| 色欲久久99国产精品久久久久久| 国产精品com| 精品午夜福利国产一区二区在线观看| 综合欧美日韩在线观看| 色播五月婷婷| 粉嫩少妇自慰在线| 热G综合热G中文| 在线观看中文字幕| 日本性爰一道本| 亚洲国产一区二区三区四区国产| 亚洲天堂,男人| 99www.bibizy香蕉资源国产一区二区三区高清| 69久久久久久久久久久久久| 久久爱97| 大黄片做爱的大的| www.五月天| 色狠人在线99| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 麻豆亚洲Av成人无码一区精品| 亚洲综合小视频小说在线观看| 加勒比性爱成人在线| 中文字幕熟女人妻丝袜| 欧美极品性爱天天射| 99精品热| 国产第二页| 亚洲天天操| 国产精品探花视频| julia在线观看久久| 欧美高潮| 国产精品久久aV| 国产免费久久久久| 欧美日韩大陆黑人少妇99| 91亚洲最新在线| 国产黄色在线播放观看| 国产激情久久| 中文在线视频| 伊人网免费视频| 99久久婷婷| 国产欧美成人精品| 韩国免费播放一级毛片| 午夜丁香婷婷| 中文字幕人乱码中文字的预防方法 | 久久内射| 深夜激情无码| 亚洲欧美精品久| 国产成人亚洲精品无| 日韩AV一起草| 91国产美女丝袜足交精品视频| 中文字幕乱亚洲美女精品一区| 亚洲成熟国产精品美女| 自拍视频大全亚洲专媒视频/一区二区三区 | 蜜臀中文无码午夜| 天天色,天天干,天天干| 欧美熟妇乱码在线一区| 亚洲色婷婷综合久久一区二区三区| 第四色奇米影视777| 超AV色女| 综合久久9| 97色色色| 精品熟妇视频一区二区| 大香网站| 成人片视频| 都市久久精品激情亚洲| 色女网日韩| 亚洲国产综合图区中文字幕| 日韩啪啪网| com 首页 18岁 禁区 女优 免费 精选 同城| 人人操人人摸人人看人人插| 91 国产丝袜在线放观看| 97精品免费视频网站| 东京热免费视频| 日日AAvv| 激情五月天社区| 啊嗯嗯啊好大好爽| 五十路三级片| 黄久在线| 色婷婷九月天天综合| 欧美 综合 亚洲| 中文字幕日韩人妻视频一区二区三区 | av网站国产主播在线| 天天综合,91综合永久| 粉嫩av一区二区三区天美传媒| 久久激情五月| 超碰色97| 插入综合网| 久久久96| 91视频观看网站| 国内毛片欧美香蕉精品| 99国产在线绯色一区| 性无码专区2020| 色综合加勒比四四季| 超碰在线欧美性爱激情| 中文在线久久字幕| 草草影院日本第一页| 欧美熟女丝袜| 欧美日韩国内不卡| 天天影视91看看| 亚洲性爱高潮影院| 老熟妇乱轮| 天堂麻豆天美| 黄色AAAAAAAAAAA大片| 色婷婷一区二区三区久久午夜成人不| 人人插人人搞人人操| 日日躁夜夜躁狠狠躁超爽| 超碰亚洲97| 秋霞网—男女啪啪亚洲免费体验区 | 男人的天堂不卡一区二区| 久久超碰97| 射欧美综合| 手机在线人成免费视频| 性欧美91| 色第一页| hd成人一区二区在线| 精品视频久久| 天天综和| 亚洲天堂无码| 久久久久夜夜夜夜| 青青欧洲黑| 日本久久精品| 91AV入口| 欧美啪啪天堂| 国产精品久久9| 色yeye成人免费视频| 先锋女优在线观看视频| 91麻豆天美国产| 午夜理论片在线观看免费| 欧美天天干| 亚洲限制级| 五月天精品| 性暴力欧美猛交在线直播| 骚日日av| 日本丝袜美腿人妻九九| 伊欧美综合视频| 91天天看| 熟女熟妇伦久久影院毛片一区二区| 91熟女熟妇视频网站| 欧美黄色大片在线观看| 亚洲欧美在线丝袜| 99黄页网站| 色婷婷五月天| 国产精品免费日韩| 屁股久久久久久| 欧洲一区二区三区四区在线观看| 天天淫人人妻日日色| 性爱乱伦一区| 亚洲A曰本VA欧美VA视频| 97资源站国产精品| 天天看高清麻豆| 97爱免费插| 亚洲最新a在线观看| 69国产对白刺激| 精品人妻少妇| 色网综合网| 后入内射蜜桃臀| 91操操| 亚洲欧美国产成人综合不卡| 99久久无码| 青青青青青手机视频| 综合激情一一91| 殴美日韩m| 欧美一区91大爱| 大香蕉综合| 国产网站在线播放| 伊人五月天婷婷| 试看60秒 爽| 日韩久射综合| 久久久国产护士丝袜美腿一| 9久久美女首页| 超碰激情808| 91色艳| 国产精品色色| 天天插天天操| 亚洲综合中文字幕有码| 黄色片,com| 国产91av在线播放| 日韩一级欧美一级国产一级台湾 | 大香蕉琪琪日本女优不卡| 9久久9综合| 亚洲图片欧美91N| 国产精品交换一区二区| 伊人激情| 天天插天天射| 五月天偷拍| 婷婷97| 五月丁香久久| 嗯啊不要在线| 91国产精品在线看| 水野优香在线观看| 五月婷婷基地| 亚洲丁香花色| 五月婷婷激情综合| 狠狠干综合| 五月婷婷激情网| 色蜜AV| 女人天堂AV五区在线| 又黑又大又粗| 成 人 影视 一区 二区 三区 四区| 韩日欧亚a级| 日韩精品国产一区二区| 色在线综合| 黄片免费视频2019| 性久久久| 日韩熟女乱伦中出| 日韩在线性爱免费视频| 黄色AAAAA欧美| 日韩欧美午夜视频在线| 亚洲av影院在线观看| 国产男人又猛又粗又爽| 美女自卫慰黄网站免费| 中文字幕在线高清男人的天堂| 91热爆在线| 蜜臀久久一区二区| 人人妻人人操人人乐| 亚洲日韩青青草色月| 蜜桃久久精品一区二区三区| 久久精品人妻一区二区| 日日嗷| 色吊丝 日日骚 清纯唯美| av天堂电影网| 久久精品 六十路 熟女 欧美| 亚洲欧美在线观看无码| 欧美十八禁导航成人| 性爱1区| 超碰久久中文| 成人久久精品| 超碰97极品9| 91青青草| 无码丰满熟妇一区二区浪潮AV| 爆操无码| 骚货| 精品中文日韩字幕视频| 亚洲性刺激| a级免费在线观看| 国产精品女久久久久av爽| 在线播放中文字幕| 97一区二区蜜臀| 人妻激情在线视频| 国产精品第一页国产大屁股视频免费区 | 69AV女优男人的天堂| 香蕉免费一区二区三区不读 | 锕锕好爽 死我在线观看|