日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

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)??磒roject正文里的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ù)需求最強(qiáng)的業(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比只會背概念強(qiáng)得多。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的代碼在保存時給文件名加了隨機(jī)前綴不然用戶上傳兩個同名文件會互相覆蓋。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è)計答辯加分低成本做三個增強(qiáng)很多人拿到項目以后直接提交換了但這恰恰是答辯容易掛掉的原因——老師對代碼的運行邏輯問兩句就露餡了。我做這行這么多年建議你最少做三個小增強(qiáng)成本很低但答辯效果立竿見影。第一個增強(qiáng)是注冊功能。項目原版只有登錄沒有前臺注冊你可以在CustomerAction里加一個register()方法在JSP加注冊頁在CustomerDao里加一個findByUsername()做重名校驗。這能展示你對注冊流程的完整理解——表單校驗、唯一性約束、密碼存儲。第二個增強(qiáng)是搜索關(guān)鍵字功能。FlowerDao里加一個HQL模糊查詢from Flower where name like ?前臺加一個搜索框。這里你還可以順帶講一下Hibernate的HQL預(yù)編譯防SQL注入原理——這是個很好的答辯亮點。第三個增強(qiáng)是頁面美化。原版JSP頁面其實很樸素你把CSS改一下、把頁面布局調(diào)整成現(xiàn)代風(fēng)格整個項目的觀感能上個檔次。前端用到的技術(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則表示該用戶名可用。密碼存的是純文本你可以在答辯時主動說這個安全缺陷以及改進(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é)算 → 扣庫存 → 后臺處理。這條鏈路走通再回頭補(bǔ)充理解登錄、注冊、后臺增刪改等其他模塊。做完這套動作你再回答「這個項目你熟不熟」的時候就有底氣了。從那以后我每次下載開源的畢設(shè)項目都強(qiáng)制自己走一遍「對照數(shù)據(jù)庫理表關(guān)系 → 按業(yè)務(wù)鏈路追三層代碼 → 把理解寫進(jìn)筆記 → 再動手改一個功能」的流程。這四個步驟走完看似是別人的源碼實際成了自己的彈藥。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产成人无码啪| 中日无幕一二三四区| 综合自拍| 97国产色图 | 日韩精品一二三四| 国产精品极品美女视频| 国产精品成人AV片免费看网站| 天天综合麻豆视频| 国产熟女精品区| 丰满人妻一区二区三区免费,| AA级电影三区| 精品无码一区二区三区| 2017av无码免费无线播| 欧美色偷偷| 97ai亚洲| 亚洲成人在线乱码色午夜| 操人妻逼91| 青青草密桃在线播放| 欧美一级A片在线看视频性色| 3PAV乱伦视频| 岛国黄片网站| 性爱视频无打码在线观看| 96精品久久久久久久久久| www.av不卡中文字幕| 久久国产视频专区一二三| 黑丝内射一区二区三区| 91在线美女| 国产玖玖| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 亚洲九九九| 日韩一卡二卡三卡| 九九九九9999| 无遮挡男女激烈动态图| V A在线| 又粗又长又大国产不卡| 免费a v| 国产精品免费久久久久久久久久| 久久久96| 17c嫩草51久久91嫩草| 友优传媒精品在线一区二区| 超碰97人妻在线| 91视频综合网| 一本精品日本在线视频精品| 人人 操人人 操人人| 大香蕉中文| 亚洲牲交| 免费精品中文字幕| 日本熟妇人妻中出视频| wwwss在线观看| 91狠狠色丁香婷婷综合久久精品| 久久精品国产精品亚洲艾通辽熟妇 | 超碰狠狠操| 久久麻豆一区二区| 99综合自拍| 大香蕉啪啪啪啪在线| 操操操操网黑人| 国产九区| 91亚洲情色| 亚洲欧美小说| 亚洲最大AV网| 天天射影院| 99久久com免费视频′| 中文乱码99| 人妻内射一区二区在线视频| 亚洲人妻五月丁香婷婷| 欧美熟女操屄| 欧美亚男人的天堂| 国产风韵犹存熟妇三区| 麻豆AV一区二区天美传媒| 草草电影院| 99在线无码精品秘 入口黑人| www黄片免费看com| 欧美后入视频| 精品国产乱子伦一区二区三区,精品一| 搡老女人老91二区| 国产精品天美传媒| 少妇丝袜在线观看AV| 欧美日韩精品久久久久东北老熟妇| 日韩成人小视频| av爱爱爱| 中文伊人大香蕉视频| baiduhicn.com。| 久久久久久999| 国产精品999zyz| 亚洲午夜免费狠狠干| 欧美色图天堂网m| 久久成人精品| 国模私拍一区二区三区神乳| 精品久久99| 1二区9| 青青青在线高清视频在线一二三四区| 一区二区视频在线播放| 久插不卡| 人人看人人爰人人操| 丁香久久| 在线视频资源| 九九综合久久| 九九九九精| 韩国午夜理伦三级好看| 综合网久久| 精品人妻一区二区三区日产| 激情久久av一区av二区av| 亚热日本熟女| 性爱视频无打码在线观看| 最新AVzaixian| 国产精品久久久久婷婷二区次| 黄页视频网站野外| 欧美在线视频播放| 精品亚洲国产成人精品| 鸥美插入视频| 99热这里只有精| Julia Annxxxxx| 精品九九国产无码| 欧美少妇高潮| 青青草自拍视频在线播放| 人妻少妇精品视频一区二区三区| 亚洲欧美精品一区天堂久久| 国产亚洲99久久精品熟| 第45页一区二区| 国产97在线视频| 大香蕉碰| 日韩中文字幕国产| 国产精品一区二区后入| 久久肏大逼| 另类老少妇| 日韩一级成人毛片免费观看 | 亚洲青青草| 性色av蜜臀av色欲aV| 欧美72网页| 6080YYY午夜理论片在线观看| 91伊人影视综合| 国产精品点击进入在线影院高清| 激情五月天校园春色网| 素人播放一区| www.亚洲成人一区| 日本精品性生活久久久| 日欧操屄视频| 亚洲欧美日韩免费观看| 欧美亚洲高清晰| 色色色色网站| 婷婷婷婷婷婷久久久久| 久久久九九| 99热啪啪| 欧美1区二区三区公司| 久操在97| 激情综合网激情五月天| 国产黄色剧情影片麻豆免费播放| 精品乱码久久久久| 六月丁香五月婷婷| 日韩无码视频黄色| 久久有码视频| 九九九九日本| 天天干2019| 中文字幕国产| 久久久精品网| 久久久性少妇| 日韩在线人妻网站| 91在线页| 99精品久久| 中文字幕在线免费观看2| 91高潮喷水美女| 屌逼传媒| 久久亚洲婷婷| 亚洲无吗在线视频| 日语五十路和六十路亚洲国产精品 | 国模久久在线| 国产老熟女| 天天躁日日躁AAAXX| a亚洲欧美色欲| 亚洲狠狠入| 屌妞视频久久久久久久久久久久| 国产尹人在线视频免费| 黄色性爱网网| 国产精品久久久久久高清无码免费看| 婷婷人妻激情| 久久噜噜噜精品国产亚洲综合| 91精品电影18| 欧美图片偷拍| 在线播放成人网站| 啊视频在线| 欧美一级久久久丰满| 青青五月天| 丝袜狂射91| 殴美日韩m| 日韩熟妇二区| 在线只有精品| 婷婷丁香五月综合| 久久久久久午夜男人的天堂| 女人爽到高潮潮喷18禁网站| 人妻中文字幕日韩电影| 萌白酱自拍视频| 三上悠亚在线毛片91| 色综合 加勒比| 午夜精品久久久久久久99热影院| 中文字幕人妻色偷偷久久皮| 亚洲……91| 六月婷激情福利天堂69| 精品人妻二区三区| 亚洲情色1区| 嗯啊啊啊轻点视频 | 91AV天堂| 欧美青青草视频| 国产视频小说| 中文欧丝袜诱惑| 性色av一区二区| 国产传媒1234区| 夜夜嗨av午夜成人| 亚洲人妻熟妇三十三区| 蜜桃视频一区二区三区在线观看| 久久国产视频专区一二三| 青青操97| 99re8免费高清在线| 久插不卡| 欧美综合网1| 天天操天天谢| 91麻豆天美国产欧美高潮| 久草久日| 人妻少妇精品| 亚洲影院365| 亚洲天堂五月天国产| 日韩免费簧片| 一级特级aaaa毛片免费观看 | 一区中文字幕二区日韩| 桃色人妻在线视频| 亚洲精品久久一区二区三区蜜桃臀| 亚洲国产精品无码AV久久久| 2018天天干在线视频| 青草视频人妻在线观看| 久艹99| 亚洲人精品久久久| 91人人操| 欧美aaaaaaa| 欧美色综合影院| 六月婷婷五月丁香| 麻豆黄四叶草网站| 国产97色在线 | 亚洲| 春色91| 久久欲| 欧美在线观看综合国产| 熟妇一区二区三区| 91美女在线| 日韩综合无码一区久久92| 日日操免费视频| 青娱乐欧美激情一区二区| 综合久久六月久久婷婷| 欧美嗯啊……在线观看视频免费| 麻豆成人av| 啪啪啪男女亚洲中文字幕99| 无码人妻精品一区二区三区99不卡| 9丨亚洲一区二区在线| 日本一区二区做爱的视频| 亚洲综合激情五月久久| 热久日综合| 久久精品国产亚洲粉嫩| 变态乱伦伪娘灌肠一区二区| 欧美日韩99| 青青草国产盗摄一二三区| 狠狠爱夜夜| 国产免a费看黄片在线| 欧美淫穴| 日本一线产区和二线产区伦理片| 国产浮力影院第1页| 日本一区二区三区欧美日韩中文字幕| 日韩欧美天堂| 国产久久av| 亚洲成人av色网| 人人爽人人精品乱人伦AV| 久久久91| 五月婷视频| 日本高清加勒比| 色色毛片| 男人的天堂2019AV| 国产伊人精品在线| 久久毛卡| 91欧美丨精品丨入口| 97在线免费| 国产热RE99久久6国产精品首| 97色欧州| 伊人国产成人av网站| 天天躁日日躁XXXXYY| 大香蕉色网| 97精品免费| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 天堂性色| 日本三级久| 97综合激情| 亚洲最大无码中文字幕网站 | 欧美日韩激情无码专区| 日韩无码AB| 亚欧毛片基地国产毛片基地 | 国产精品亚洲无码| 天天热精品| 成人免费在线网站| 亚洲自拍青操视频| 日韩在线观看中文字幕视频| 性欧美| 国产精品久久伊人| 久久激情四射婷婷丁香五月天| 殴美在线AⅤ| 日日干夜夜欢| 五月色网| 起碰97| 色老汉色| 日本操色导航| 强乱老妇中文字幕| 亚洲宅男天堂| 婷婷色综合欧美日韩| 美国美女AV在线| 青娱乐休闲视频在线观看| 91偷拍欧美亚洲| 亚洲无码太久| 男人的天堂无码| 色播五月婷婷| 日韩综合无码一区久久92| 久久人人爽爽爽人久久久| 国产视频一区二区三区在线免费观看| 91真人天天在线| 亚欧成人中文字幕一区| 少妇天堂| 香蕉大久久久| 在线啊啊啊啊| 精品一区二区成人动漫| 2019天天干| 中文字幕人妻色偷偷久久皮| 手机在线看片免费人成视频| 无码一区免费在线不卡| 午夜综合在线| 91色碰| 在线a v| 亚洲深夜福利| 亚洲一本色码中文字幕| 五月婷婷影院| 欧美日韩香蕉| 大香蕉乱级| 黄站在线免费观看| 亚洲青色欧美| 日韩无码嘿咻黑热久| 久久黄片国产一区二区| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 另类欧美色| 青青草久久一区网| 丁香五月婷婷啪啪| 日韩操逼HD| 亚洲男人在线观看天堂| 老女人碰碰在线碰碰视频| 99精品网| 美国一区二区免费视频| 日本性爱欧美性爱| 久久男人天堂| 精品欧美乱码久| 欧美影音在线| 在线 亚洲 网爆 自拍| 日本道久久综合色色| 国产不良强奸视频免费看| 大香蕉淫人| 内射黑丝袜| 偷拍亚洲高清图片| 久久不卡一区二区| 亚洲不卡AV在线| 国产亲戚伦亲在线| 成人亚欧免费视频| 啪啪啪东京| 国产精品一区二区a| 九九热精品视频六| 精品人妻久久久| 日本一级不卡一二区| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 小少妇| 婷婷中文字幕| 伊人久久婷婷| 亚洲,欧美,春色,另类| 美女黄频a美女大全免费皮| 日韩欧美成人综合在线| 蜜乳成人AV| 国产精品96| 精品人妻一区二区三区日产| 日韩小电影| AV天堂因数| 农村少妇久久久久久久| 最新制服中文第一页| 亚洲清纯综合| 亚洲综合在线91| av影院十区| 久久久啊啊啊| 亚洲天天更新| AⅤ片水多多| av在线播放国产一区| 欧美18 在线观看| 色综合久久av| 亚洲最新中文字幕免费| 久久久久久国产无码精品| 人人插人人摸人人| 中文字幕一区日韩精| 亚洲aV无码成人在线观看| 亚洲AV无码国产精品久久久久| 日本免费专区| 婷婷五月天小说| 国产亚洲 中文欧美久久| 精品一区二区啪啪啪| 一区二区久久天天干狠狠| 99热99re超碰精品| 欧美色图下一页| 1204金沙人妻懂旧版免费| 夜草欧美| 五月天久久人妻| 国产深夜福利| 日韩一级特黄av毛片| 超碰人妻在线| 久艹伊人精品综合在线| 国外91| 综合亚州欧美| 亚洲国产成人精品999| av强奸乱轮| 五月婷婷激情综合| 日韩三级在线观看mp4| 长久操视频| 亚洲丝袜诱惑| 日本一本道A级黄色毛片试看60分钟| 激情久久av一区av二区av| 丁香五月AV| 美女主播色欲91抠b在线播放| 大香蕉92| 日韩无码一级黄色av片| 玖玖资源综合在线视频| 美中韩AV综合网| 五月开心久久AV官网| 后入人妻无码| jizzjizz欧美| 色九月综合| 色97欧美| 久久久国产亚洲精品系列| 老女人爆菊| 日本黄色天堂| 91精品微拍福利| 色五月丁香五月| 久久99精品国产| 少妇蹲下露出大唇5| 嫩呦国产一区二区三区AV| 五月丁香啪啪网| 国产美女激情| 韩日色费| 久久AV无码1区2区3区| 性生活性生大爱77AV国产| 久久精品 六十路 熟女 欧美| 色婷婷综合视频| 久久色一区二区| 淫荡网址| 性站 | 中文激情网| 天天干人妻| 秋霞色色影院| 青青草日本无码| 人人澡人人干| 婷婷五月丁香五月| 嗯嗯啊好爽| 激情色色| 天天干夜夜鈤| 五月天婷婷色色| 精品二区三四区五电影 | 日本免费专区| 日日妻色网| 亚洲日本激情| 欧美亚州综合图片| 亚洲AV无码翔田千里网站| 亚洲美女精品| 国产一区二区二区按摩精品啪视频| 九久9精品| 97国产精品在线观看| 国产三级中文有码在线视频| 超碰97久久国| 国产三级日产三级韩国三级| 中文字幕无码不卡啪啪| 思思热免费视频观看| 在线五区| 国产又爽又黄| 91精品91久久久中77777| 99免费在线视频| 9Ⅰ超碰| 欧美亚洲玖玖玖| 狠狠操使劲操| 成人片视频| 成人性爱美曰韩| 九一国产精品| 粉嫩国产精品久久粉嫩| 国产精品直播在线观看直播| 好好的日:com久久九九| 黄色AAAAAAAAAAA大片| 亚洲精品 欧美精品| 在线中文字幕极品av| 91超碰在线观看| 噜噜在线| 亚洲欧美国产中文视频| 亚洲青色欧美| 丁香六月婷婷久久综合| 超碰免费人妻人人| 屁股久久久久久久久| 国产一区二区三区影片| 欧美成人性活片| 在线亚洲精品久久久| 97摸视频| 青草草免费网站av| 9久9久9久9久视频网站| 午夜福利久久久噜久噜久久综合| 国产日韩精品人妻久久久久色欲网站| 青青草在线视频美女| 天天影视色香色欲| 久久夜黄色无码A级大片| 丝袜美腿91| 91在线限制级| 婷婷丁香成人| 久久久久久久久久va| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | jazzjazz国产精品麻豆| 亚州高清av| 欧美亚洲玖玖玖| 一区二区三区 日韩欧美| 久草这里只有精品| 国产99999久久精品| 青娱乐 成人娱乐在线| 国产偷拍自拍在线视频| 国产肏逼网站| 欧美色97| 中出后入| 97超碰热线| 婷婷激情四射| 日本一级性爱| 亚洲欧美自拍偷拍| 欧美18 在线观看| 99re欧美| 国产国产亚洲一二三久久| 丁香婷婷激情五月天无毒不卡| 伊人91| 午夜福利免费福利视频| 伊人久久综合影院精品久久久| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 2019男人的天堂| 999综合色| 色呦呦、国产精品| 五月天开心网| 欧美在线干| 中国国国产一级特黄毛片| 69XX一中文字幕人妻91| 成人怡红院| 欧美另类丝袜熟女| 国产精品一二三| 1024午夜激情男人的天堂| 秋霞男人网| 婷婷五月天久久精品视频一区二区三区| 久久思思热| 一级免费啪啪片| 久久高清欧美国产| 综合自拍| 五月丁香婷婷啪啪| 涩五月婷婷| 国产亚洲精品自在线亚洲情侣| 免费伦费视频在线观看| 国产网站在线播放| 69精品久久久久中文字幕| 探花在线免费观看视频国产一区| 久操com| 国产一级内射无挡观看| 乱伦图av| 久久久国产三级黄色片| av资源在线播放天堂| 新版天堂中文资源8在线| 日韩性爱小视频在线观看| 欧美性爱十八禁| 9999免费精彩视频| 日韩草久视频| 精品人妻一区二区免费蜜桃| 美国久久一二三四| 大香蕉92| 超碰吊日色| 蜜臀99久| 国产福利电影| 国产精品制服丝袜清纯唯美| 日韩欧美亚洲一区二区三区影院| 十八禁视频网站| 99热免费| 精产国品一区二三产品| 日本加勒比无码专区一二三| AV中文字幕三四五| 97免费视频在线观看| 日韩无码视频黄色| JIZZJIZZ国产精品喷水| 久久婷婷五月| 天天干天天日天天射黄色片| 亚洲系列欧美| 日本女人久久久| 国产在线综合网| 人妻系列无码专区中文有码| 久久免费精彩视频| 中文字日本乱码| 色香91| 97综合| 欧美大香蕉同搞| 99热在线观看| 国产 大胆 对白| 一卡二卡在线播放| 欧美爱三级日韩久久| 手机看av网站在线看| 色性综合| 日本亚欧爱爱| 少妇厨房愉情理伦片bd在线观看| av日韩在线观看电影| 天美AV片| 99视频自拍区| 一级特黄aaa大片在线观看成人一级片在线观看 | 看看小穴| 97在线免费公开视频| 日本性爱视频一级| 嗯嗯啊中文字幕| 91黑丝操| 国产对白刺激视频| www四虎| 欧美性第1页| 日本三级一区二区 在线| 夜夜操二区| 成人久久久精品| 精品亚洲成人免费在线| 国产精品久久久亚洲一区| 国产免费一区| 天天激情干| 天天综合网久久ww| 超碰色综合| 99爱爱| 97综合久第一页| 日本免费一级AAA大片器| 91女在线观看| 国产精品福利视频| 99这里只有精品| 密臀成人视频久久久| 亚洲国产精品无码AV在线| AND人妻系列| 天天日天天干天天操| 99久久婷婷| 9久9久| 91精品黄在线观看| 蜜臀在线网站| 日韩乱插| 97国产|免费| 婷婷五月色| 色九九久九九| 五月色综合| 男同专区一区二区三区在线| 午夜免费视频1000| 中文字幕熟女人妻丝袜| 综合色图区| 蜜臀视频网站| 久久免费看高潮毛片韩国| 欧美日韩在线视频网站| 人人综合| 强奸乱伦中文字幕AV| 国产丸一视频| 久久婷婷亚洲| 啊啊啊啊操死我| 一区二区三区 丝袜 高跟 美腿 | 自拍欧美| 乳欲人妻办公室奶水| 中出后入| 婷婷99狠狠躁天天躁| 玖玖综合网| 国产精品对白内射| 99久久久无码精品国产人| 亚洲精品97中文字幕| 亚洲一区二区精品福利| 精品人妻一区二区三区免费视频| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 亚洲操人| 日本女人久久久| 久久侵犯人妻爽爽爽| 欧美日韩大香蕉| 91精品婷婷国产综合久久竹菊| 天堂中文资源在线bt| 亚洲一区二区中文字幕| 人人手机欧洲亚洲国产人妻| 久久黄色视频一区二区三区| 男人的天堂三级| 欧美性猛交美女自慰91| 成人AV超碰免费在线| 久久久久久久久国产| 长长久久免费视频| 国产精品区在线12p| 97在线播放| 69综合网| 大地资源在线观看中文第二页| 久久久91| 91丝袜熟女| 国产刺激视频| 一类av片在线看| 亚欧洲日韩国产精品| 草伊人高潮喷水超碰| 乱伦系列一区二区| 欧美色www亚洲国产阿娇要播| 青青三级视频| 日韩亚洲美女一区久久| 国产剧情AV不卡在线观看| 青青草久草| 91欧美巨乳| 亚洲男人的天堂一区二区| 日本亚洲熟女视频| 久久欲| 一区二区视频在看| 曰韩香蕉97| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 亚洲精品久久久久毛片A片拉屎| 伊人少妇久久久| 精品人妻一区二区免费蜜桃| 啪啪啪综合网| 岛国黄色大片网站| 八戒无码国产午夜福利| 九九热九九| 日日骚av| 亚洲亚洲亚洲天堂天堂 | 人妻 丝袜美腿 中文字幕| 一区二区三区国产在线播放 | 高清无码国产亚洲| 中文字幕日韩人妻视频一区二区三区| 啊啊啊啊啊啊好多水| 国产久9| 日韩亚洲97| 熟女一区二区三区| 精品十三区| 草b在线 | 欧美亚洲丝袜人妻制服中文99| 欧美丝袜美女电影一二三四区| 麻豆性爱视频在线播放| 欧美色图亚洲色图成人在在线| 色99在线| 免费看毛片操穴| 91啪啪视频| 免費黃色視頻觀看一| 久久肏大逼| 乱伦日本色图AⅤ| 亚洲精品影视老司机| 中国国产精品一区视频| 国产高清精品一区二区三区毛片| 久9re热视频这里只有精品| 另类图片综合| 国产日韩精品suv| 国产精品成人AV片免费看网站| 欧美综合天天| 精品一级毛片在线观看| 国产强奸无码乱伦| 欧美极品美女aaaaaa级黄片| 欧美精品精品一区二区| 欧美一级AAAAAAA| 一级做a爰片性色毛片久久| 69XX一中文字幕人妻91| 91色人妻| 日va操| 黄网色一区二区三区四区精品| 亚洲国产高清福利视频| 天天精品| 裸体美女国产免费久久久网站| 熟女丰满人妻一区| 亚洲妇色| 色爽——AV| 97国产|免费| 精品九九九| 精品国产无码中文| 午夜精品探花| 欧亚综合一卡二卡中文字幕| 青青草视频久久久久| 91老熟女老女人国产老太| 欧美高清在线| 97综合久久| 密乳AV免费观看| 静品嫩模一区二区| 久热久一区二区三区| 麻豆国产成人精品| 综合五月天| 人妻干天天| 国产小u女在线观看| 男人天堂2019亚洲| 久久久久久波多野吉衣高潮| 久久精品女同亚洲女同13| 性色A∨91| 日韩性爱1级片视频| 亚洲AV成人无码一区二区三区在线观看 | 天天操夜夜操| oumeizonghese,www| 亚洲第一男人天堂| 性夜影院爽黄A爽免费动漫| 一类av片在线看| 夜夜操二区| 色网综合网| 欧美劲爆第一页| 国产一在线观看| 大奶啊啊好爽 | 男女猛烈无遮掩视频免费软件| 91三级理论片播放器| 大香蕉伊利av| 热G综合热G中文| 欧美的性爱网站免费| 91操操| 五毛骚逼极品美女怕怕| 91内射| 婷婷亚洲五月***久久| 亚洲综合影片| 五十路熟女人妻一区二区三区四区五| 日欧亚洲二三区大片不卡| 日韩pv中文| 91丝袜人妻| 国产亚洲精品美女久久久m| 国产怡红院| 大逼色网站| 中国东北熟女老太婆内谢| 亚洲精品欧美专业| 蜜臀视频网站| 激情婷婷丁香| 欧美色图亚洲色,麻豆| 一区二区三区黄片免费观看| 骚乳在线| 屁股久久久久久| 色婷婷成人| 大香蕉2017| 爆操无码| 91劲爆| 欧美性爱三区二区| 久久99精品国产| 飘花国产午夜精品不卡| 亭亭丁香激情| 啪啪啪综合网| 97天天爽| 精品午夜福利| 色欧美天天| 屁股久久久久久久久久| 99视频内射三四| 一级AAA片一区二区三区| 亚洲色图欧美视频| 亚洲男人天堂2| 深夜激情无码| 亚洲性刺激| 色色五月天激情| 久热精品在线| 91久久久久久| 99re99| 99久久久无码| 日韩激情无码影院| 精品无码一二三四区| 免费一级性爱久久| 久久啊啊啊视频| 精品一区二区成人| 亚洲精品国产熟女久久久| 深夜激情无码| 十八禁黄色| 熟女人妻av在线资源,黄色的资源| 97在线免费看视频| 奸色色 男人天堂 天天射| 黄片www视频免费| 五月天色电影| 国产www色在线观看| 看看日B真人视频| 中文字幕在线免费观看视频| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | jiujiujiujingpin| 性爱乱伦一区| 加勒比海人人操超碰在线| 日本 欧美 亚中文字幕| TS人妖另类精品视频系列| 国产又大又粗又长视频在线| 凹凸久久人人| 大香蕉视频啪啪啪啪| 精精夜夜| 亚洲色色探花| 成人一二三区| 无码人妻丰满熟妇奶水区毛片| 久久东京伊人一本到鬼色| 九99久久| 少妇国产不卡| 日本色色色色色视频| 色九久| 日韩国产十八禁| 8050午夜少妇无码| 天天日天天干天天操| 97视频900| 婷婷五月天影院| 强奸乱伦AV网址| 国产麻豆91欧美一区二区久久婷婷国产精品 | 伊人成人情色综合| 亚洲色图欧美视频| www国产无码| 中文欧丝袜诱惑| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 风骚少妇视频中文字幕| 亚洲欧美大| 黄页网站免费高清在线观看| 清纯唯美亚洲综合| 亚洲天堂美臀在线| 懂色综合久久久| 首页中文字幕中文字幕免费| 亚洲欧洲成人在线电影| 搡老熟女国产1000部| 这里是精品| 99久久婷婷| 大香蕉强奸乱伦| 啪啪视频免费在线观看| 91天堂丝袜美腿| 蜜臀亚洲综合一二三四区| 性爱动态120秒| 美女自卫慰黄网站免费| 亚洲精品白浆高清久久久久久| 97欧美资源| 国产丸一视频| 你草精品在线视频| 蜜桃色色网站视频三区| 亚洲精品成人激情在线| 久久男人精品| 久久久久久99AV无码免费网站| 变态另类专区| 国产精品3| 麻豆一区二区三区精品| 亚洲综合另类欧美久久久| 九九热精品| 亚洲精品日日夜夜52| 国内毛片婷婷六月色| 人人看人人插| 久久久999| 中文字幕乱亚洲美女精品一区| 啊啊啊啊,啊啊好多水 | 亚洲导航深夜福利| 在线观看亚洲成人精品| 另类天堂| 97日韩| 97色在线视频| 久久无码精品| 色与欲影视| 97资源亚洲| 伦理第一页| 91无码精品| 亚洲人妻爽爽爽| 国产999精品久久久| 欧美淫乱视频| 后入日本1234| 亚洲日韩97| 午夜亚洲| 9久久久久久| 欧美大的香蕉有线电视视频| 日日躁天天躁狠狠躁| 九九九偷拍| 欧美性性性| 精品国产AV一区天美传媒| 中文字幕视频在线观看| 999热这里只有精品| 久久久久久久唑| 97视频在线免费观看| 白嫩少妇| 精品久久久久久无码| 国产黄色影片在线观看| 八人操人人摸人人看| 国产真实野战在线视频| 去干网最新版| 920日本午夜免费| 99re这里只有精品中心播放| 九一综合精品视品av| 久久仑合| 91精品少妇搡搡搡| 有码专区最新中文字幕有码| 91国模| A片大香蕉在线| 超97在线精品视频| www.色操逼| ′ !γ}丶。。久久精品欧美一区二区三区| 亚码激情| 人人搡人人肉久久精品| 亚洲素人综合| 放黄片放3级黄片没穿衣服| 精品国产乱码| 久久久久久AV无码免费网站| 女优视频第10页| 1区2区3区中文字幕日韩| 97久久国产亚洲精品超碰热| 国产熟女无套内射| 黄片免费日韩| 首页中文字幕中文字幕免费| 看日韩美女二区三区免费操逼视频 | 凹凸 69堂 在线播放| 秋霞色色影院| 黄色免费网页无码| 亚洲综合色男人网| 熟妇高潮精品一区二区三区下载| 97久久久网站| 亚洲小电影免费涩涩成人在线高清| 日本在线不卡v二区| 日韩精品一区二区三区四虎影视| 91在线丝袜视频| 9久久久久久| 国内精品a| 大香交伊人网| 欧洲亚洲人人爽爽视频| 日韩兔费看黄片| 成人免费福利网站国产| 国产精品91一样| 色五月AV在线| 国产精品人妻一区二区| 激情专区综合| 97精品97| 超碰免费人妻在线| 性爱av在线免费观看| 欧美综合加勒比在线| 蜜桃香蕉久草精品在线| 亚洲图片色图欧美另类| 天天日天天插| 国产精品国产| 国模无码人体一区二区三| 五月天婷婷基地| 人妻少妇久久中文| 欧美人人操人人插| 乱人伦 国语对白:视频直接看| 天天日美女的B| 性爱网站一区二区| 欧美乱色| 黄页| 乱伦熟女区| 大香蕉色欲AV| 一级@啪啪视频| 久久e6只有精品| 欧美激情专区| 人妻少妇一区二区| 日韩精品人妻中文字幕不卡乱码| 免费一级黄色录像影片| 欧美久久久15P| 亚洲麻豆av一区二区| 婷婷五月天社区| 色老大| 99re国产中文字幕| 一级免费精品| 爱av免费| 日韩成人人妻网站| 亚洲中文字幕久久人妻| 熟女天天干| 久操操AV电影| 精品97精品97| 熟女这里只有精品6| 亚洲日韩青青草色月| 成人五月天丁香激情综合| 91人人看| 被操高清无码视频| 欧美熟妇精品黑人巨大一二三区| 久久久久亚洲| 亚洲国产剧情少妇激情| V A在线| 色哟哟-国产专区| 日韩免费中文字幕视频| 91嫩草欧美| 国内偷自视频区视频综合| 青青草日本中文字幕| 日日插夜夜| 99国内熟女露脸视频| 人妻中文字幕日韩电影| 色婷婷日韩精品一区二区三区| 亚洲图片偷拍视频区| 欧美综合色图网| 熟妇熟女视频一区二区三区| 色五月AV| 啊啊啊快操我视频| 亚洲中文国际强奸字幕| 老鸭窝日丰县女人| 亚洲av乱伦色图网站| 亚洲无码一区成人免费午夜| 丰满人妻-区二区三区免费| 国产精品操| 中文字幕亚洲欧美在线不卡| 黄色视频60分钟| 久久骚| 色五月综合| 超碰在线人人射| 97在线观看免费视频l| 能直接看AV的网站| 美女91AV| 狠综合网| 99久久99久久综合| 日韩欧无码一区二区三区免费不卡| yiren97| 亚洲AV无码国产精品久久久久| 青青草大香蕉视频| 97大色网| 亚洲精品aa久久伊人| 中文字幕乱码在线观看| 国产精品午夜成人福利| 免费A V在线播放| 亚洲人妻久久| 美女黄码视频午夜| 五月婷婷综合在线| AV一区观看| 亚洲人妻精品一区二区| 久久精品老司| 涩五月婷婷| 欧美性爱无码一区二区三区| 老熟女综合网| 丁香婷婷激情五月天无毒不卡 | 大鸡巴久久久| 亚洲综合中文字幕有码| 精品九九九| 毛片99-全集电影手机免费观看完整-B029AV | 少妇激情AV| 久久天天躁日日躁狠狠躁| 美女自卫慰黄网站免费| 偷拍亚洲熟女视频播放| 伊人超碰97| 欧美成人国产精品| 春色校园综合网| 能看的AV| 欧美日韩操操操| 国产v片在线免费观看| 午夜传煤十二区精品| 成人片视频| 欧洲中文字幕| 99国产人成精品| 日日碰狠狠添天天爽超| 91精品微拍福利| 久操视频在线观看| 无码二级三级| 久久中文字幕女同性恋一区| 美骚妇av高清在线| 超碰久久性爱| 长长久久88视频| 强奸乱亚洲| 欧美性爱十八禁| 国产成年精品高清在线观看91| 日本操逼视频免费| 亚洲成成熟女人综合一区二区| 加勒比av官网在线| 成人五月天色网| 91色综合激情| 国产欧美日韩女同性恋ww喷水精品| 六十路日本| 大香蕉一线视频| 精品成人动漫一区二区| AV一起草在线| 日本爽爽爽爽爽爽免费视频| 久久久久久久9| juliaann欧美丝袜办公室| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 粉嫩在线一区二区懂色| 牛黄色久午久| 特级丰满少妇一级AAAA爱毛片| 人妻一区二区三区视频| 日本不卡一区| 欧美性爱第1 页| 91麻豆天美| 欧美精品三区| 伊人天天久久动态图| 欧美人妻少妇| 超碰97欧美| 很很操在线| 秋霞操逼片| 中国女人内射6XXXXX| 天天搞在线综合网| 18禁美女裸体无遮挡啪啪| 欧美一级久久久丰满| 做爱A级亚欧| 天天干天天操天天干天天操| 偷看洗澡一二三区美女| 2020国产精品| 开心激情站| 九九久久久久久爱| 麻豆人妻少妇在线免费观看| 中文字幕人妻色偷偷久久皮|