Java Web程序設(shè)計任務(wù)教程(第3版)(AIGC版)-課件 第10章 綜合項目-網(wǎng)上衣櫥_第1頁
Java Web程序設(shè)計任務(wù)教程(第3版)(AIGC版)-課件 第10章 綜合項目-網(wǎng)上衣櫥_第2頁
Java Web程序設(shè)計任務(wù)教程(第3版)(AIGC版)-課件 第10章 綜合項目-網(wǎng)上衣櫥_第3頁
Java Web程序設(shè)計任務(wù)教程(第3版)(AIGC版)-課件 第10章 綜合項目-網(wǎng)上衣櫥_第4頁
Java Web程序設(shè)計任務(wù)教程(第3版)(AIGC版)-課件 第10章 綜合項目-網(wǎng)上衣櫥_第5頁
已閱讀5頁,還剩117頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第10章綜合項目-網(wǎng)上衣櫥《JavaWeb程序設(shè)計任務(wù)教程(第3版)(AIGC版)》學(xué)習(xí)目標/Target掌握項目概述,能簡述網(wǎng)上衣櫥系統(tǒng)的主要功能模塊了解項目開發(fā)準備工作,能夠簡述項目的數(shù)據(jù)庫設(shè)計,并完成項目工程搭建掌握注冊和登錄功能的開發(fā)方法,能夠?qū)崿F(xiàn)前臺用戶端的用戶注冊和登錄,以及后臺管理端的管理員登錄掌握前臺用戶端功能的開發(fā)方法,能夠?qū)崿F(xiàn)服裝查詢功能、服裝詳情功能、購物車功能、我的訂單功能以及個人中心功能掌握后臺管理端功能的開發(fā)方法,能夠?qū)崿F(xiàn)服裝管理功能、訂單管理功能以及用戶管理功能章節(jié)概述/Summary通過前面章節(jié)的學(xué)習(xí),相信大家應(yīng)該已經(jīng)掌握了JavaWeb開發(fā)的基礎(chǔ)知識,包括如何構(gòu)建動態(tài)網(wǎng)頁、處理用戶請求、管理數(shù)據(jù)庫等。為了幫助讀者將這些理論知識應(yīng)用到實際項目中,并進一步提高實戰(zhàn)能力,本章將結(jié)合Vue前端框架和Servlet后端處理技術(shù),開發(fā)一個名為“網(wǎng)上衣櫥”的電商購物系統(tǒng),加深讀者對JavaWeb基礎(chǔ)知識的理解,并帶領(lǐng)讀者掌握Web開發(fā)的基本流程。目錄/Contents0102項目概述項目開發(fā)準備工作03用戶注冊和登錄04前臺用戶端05后臺管理端項目概述10.110.1

項目概述先定一個小目標!

先定一個小目標!掌握項目概述,能簡述網(wǎng)上衣櫥系統(tǒng)的主要功能模塊10.1.1

功能結(jié)構(gòu)10.1.2

項目功能預(yù)覽1.前臺用戶端(1)用戶注冊用戶想要將服裝加入購物車并進行購買需要先登錄賬號,如果沒有賬號需要先進行注冊,注冊時需要輸入用戶名、密碼、手機號、地址。10.1.2

項目功能預(yù)覽(2)用戶登錄注冊完賬號后可以進行登錄,登錄時可以根據(jù)用戶的姓名和密碼或者用戶的手機號和密碼進行登錄。10.1.2

項目功能預(yù)覽(3)服裝查詢用戶在訪問網(wǎng)上衣櫥系統(tǒng)時,首先會進入系統(tǒng)首頁,系統(tǒng)首頁在打開時會查詢所有上架的服裝。10.1.2

項目功能預(yù)覽(4)服裝詳情用戶想要查看服裝詳情時,單擊對應(yīng)服裝下的“查看詳情”按鈕即可進入服裝詳情頁,在詳情頁可以查看服裝的風(fēng)格、類別,可以選擇尺碼并加入購物車。10.1.2

項目功能預(yù)覽(5)購物車用戶登錄賬號后,可以將心儀的服裝添加到購物車,并且可以查看購物車中的服裝。在購物車界面可以修改所購買服裝的數(shù)量、將服裝移出購物車以及批量結(jié)算。10.1.2

項目功能預(yù)覽(6)我的訂單用戶在購物車中提交結(jié)算后,這些商品會存放在我的訂單中,并且默認是未支付狀態(tài)。用戶的訂單可以分為未支付、未發(fā)貨、已發(fā)貨和已收貨四種狀態(tài),在訂單中可以支付商品,支付成功后會由管理員進行發(fā)貨,已發(fā)貨的商品用戶可以進行收貨。10.1.2

項目功能預(yù)覽(7)個人中心用戶可以進入個人中心查看個人信息,并對個人信息進行更新。10.1.2

項目功能預(yù)覽2.后臺管理端(1)管理員登錄后臺管理端只有管理員登錄后才能進行訪問,登錄可以通過用戶名和密碼或者手機號和密碼進行登錄。10.1.2

項目功能預(yù)覽(2)服裝管理管理員登錄成功后可以進行服裝管理,包括查看所有服裝信息、根據(jù)服裝名稱、風(fēng)格、類別進行多條件或單條件查詢服裝、上架服裝、編輯服裝信息、刪除服裝信息等。10.1.2

項目功能預(yù)覽上架服裝和修改服裝的效果如下。10.1.2

項目功能預(yù)覽(3)訂單管理管理員可以進行訂單管理,包括查詢所有訂單,根據(jù)下單用戶的姓名和訂單狀態(tài)進行多條件或單條件查詢訂單。10.1.2

項目功能預(yù)覽(4)用戶管理管理員可以對普通用戶(除管理員外的用戶)進行管理,包括添加用戶、刪除用戶、修改用戶信息、根據(jù)用戶姓名和手機號查找用戶。項目開發(fā)準備工作10.210.2

項目開發(fā)準備工作先定一個小目標!

先定一個小目標!掌握項目開發(fā)準備工作,能夠搭建項目的數(shù)據(jù)庫環(huán)境以及基本工程框架10.2.1

項目開發(fā)及運行環(huán)境網(wǎng)上衣櫥的開發(fā)及運行所需的環(huán)境和相關(guān)軟件進行介紹,具體如下。①操作系統(tǒng):Windows10②JDK版本:JDK17③項目管理工具:Maven3.8.4④開發(fā)工具:IntelliJIDEA2023.2⑤數(shù)據(jù)庫:MySQL8.010.2.2

數(shù)據(jù)庫設(shè)計(1)用戶表(t_user)t_user表用于保存網(wǎng)上衣櫥系統(tǒng)的前臺用戶和后臺管理員的信息。字段名類型長度是否主鍵說明idint0是用戶編號user_namevarchar255否用戶姓名passwordvarchar255否用戶密碼phone255否用戶電話addressvarchar255否用戶地址roleint0否用戶角色(管理員:1、普通用戶:2)10.2.2

數(shù)據(jù)庫設(shè)計(2)服裝表(t_clothes)t_clothes表用于保存網(wǎng)上衣櫥系統(tǒng)中所有的服裝信息,該表的type_id字段與t_type表的主鍵id關(guān)聯(lián)。字段名類型長度是否主鍵說明idint0是服裝編號cloth_namevarchar255否服裝名稱imagevarchar255否服裝圖片type_idint0否服裝類別idstylevarchar255否服裝風(fēng)格pricedecimal10否服裝價格10.2.2

數(shù)據(jù)庫設(shè)計(3)服裝尺碼表(t_size)t_size表用于保存不同類型服裝的尺碼信息,該表的type_id字段與t_type表的主鍵id關(guān)聯(lián)。字段名類型長度是否主鍵說明idint0是尺碼編號size_namevarchar255否尺碼名稱type_idint0否服裝類型id(4)服裝類型表(t_type)t_type表用于保存服裝的類型。字段名類型長度是否主鍵說明idint0是類型編號type_namevarchar255否類型名稱10.2.2

數(shù)據(jù)庫設(shè)計(5)購物車表(t_cart)t_cart表用于保存前臺所有用戶添加到購物車中的服裝數(shù)據(jù),該表的cloth_id字段與t_clothes表的主鍵id關(guān)聯(lián),user_id字段與表t_user的主鍵id關(guān)聯(lián)。字段名類型長度是否主鍵說明idint0是購物車商品編號cloth_iddecimal10否服裝編號cloth_sizevarchar255否服裝尺碼amountint0否服裝數(shù)量user_idint0否用戶編號datevarchar255否添加購物車的時間10.2.2

數(shù)據(jù)庫設(shè)計(6)訂單表(t_order)t_order表用于保存用戶提交的訂單數(shù)據(jù),該表的user_id字段與t_user表的主鍵id關(guān)聯(lián)。字段名類型長度是否主鍵說明idint0是訂單編號clothes_detailsvarchar255否服裝詳細信息pricedecimal10否訂單價格statusvarchar255否訂單狀態(tài)(未支付:0、未發(fā)貨:1、已發(fā)貨:2、已收貨:3)user_idint0否用戶編號addressvarchar255否訂單發(fā)貨地址timevarchar255否提交訂單的時間10.2.3

項目工程搭建(1)創(chuàng)建數(shù)據(jù)庫表在MySQL數(shù)據(jù)庫中創(chuàng)建一個名稱為wardrobe的數(shù)據(jù)庫,在wardrobe數(shù)據(jù)庫中創(chuàng)建系統(tǒng)中相應(yīng)的表。由于測試功能時需要用到一些初始數(shù)據(jù),本書的配套資源中提供了該項目的數(shù)據(jù)庫對應(yīng)的SQL文件,讀者可以直接運行SQL文件進行表的創(chuàng)建和初始數(shù)據(jù)的添加,以便后續(xù)測試。10.2.3

項目工程搭建(2)準備前端項目本網(wǎng)上衣櫥系統(tǒng)為前后端分離的設(shè)計,為了使讀者能夠?qū)W⒂诤蠖薟eb程序的開發(fā),本書的配套資源中提供了該項目所需的2個前端項目的壓縮文件,其中名稱為wardrobe_user.zip的文件為前臺用戶端的項目文件,名稱為wardrobe_admin.zip的文件為后臺管理端的項目文件。將這兩個文件解壓縮到?jīng)]有中文的路徑下,然后運行即可。需要注意的是,本書提供的wardrobe_user項目和wardrobe_admin項目的運行端口號分別為7070和7071,需要確保當前計算機中這兩個端口號沒有被占用,如果已被占用,可以將其修改為其他未占用的端口號。10.2.3

項目工程搭建(3)導(dǎo)入后端初始工程為了便于后續(xù)功能模塊的開發(fā),本章提供了一個初始工程,初始工程中根據(jù)項目功能創(chuàng)建了對應(yīng)的包用于存放項目源代碼,并且提供了項目的依賴信息、工具類、初始的服裝圖片。在IDEA中導(dǎo)入初始工程。用戶注冊和登錄10.310.3.1

用戶注冊先定一個小目標!

先定一個小目標!掌握用戶注冊功能的實現(xiàn)10.3.1

用戶注冊通過用戶注冊可以有效地采集用戶信息,并將合法的用戶信息保存到指定的數(shù)據(jù)表中。用戶注冊成功并登錄后,可以使用網(wǎng)上衣櫥的更多功能,例如添加服裝到購物車、提交訂單和支付訂單,以及查看、修改個人信息等。本系統(tǒng)中用戶注冊的角色為普通用戶,而不提供注冊管理員用戶,下面詳細講解用戶注冊功能的開發(fā)。10.3.1

用戶注冊1.創(chuàng)建用戶持久化處理類由于網(wǎng)上衣櫥系統(tǒng)可以通過用戶名和密碼或者手機號和密碼進行登錄,所以需要保證用戶名和手機號不可以重復(fù)。當用戶注冊時,輸入的用戶名或手機號與已經(jīng)存在的賬號重復(fù)時不能進行注冊,并給出相應(yīng)提示。在com.itheima.dao包中定義類UserDao,用于將用戶信息持久化到數(shù)據(jù)庫。在該類中定義addUser()方法、isUserNameExist()方法、isPhoneExist()方法,分別用于添加用戶信息、判斷用戶名是否存在、判斷手機號是否存在。10.3.1

用戶注冊2.創(chuàng)建用戶業(yè)務(wù)邏輯類在com.itheima.service包中定義類UserService,用于處理用戶相關(guān)的業(yè)務(wù)邏輯。在該類中定義用戶注冊方法register(),用于根據(jù)傳入的User對象調(diào)用UserDao類中相應(yīng)的方法實現(xiàn)用戶注冊的業(yè)務(wù)。10.3.1

用戶注冊3.創(chuàng)建用戶登錄或注冊Servlet類在com.itheima.controller包中定義一個Servlet類LoginOrRegServlet,用于控制如何處理用戶登錄或注冊請求并生成對應(yīng)的響應(yīng)。在LoginOrRegServlet類重寫的service()方法中獲取請求的URL,如果獲取到的URL為“/register”,則從請求中讀取用戶信息并封裝為User對象,然后調(diào)用UserService類中相應(yīng)的方法處理注冊請求。10.3.1

用戶注冊4.測試用戶注冊功能為了簡化代碼,本項目中用戶注冊、修改等表單項的格式校驗都在前端Vue項目中進行處理。用戶注冊中的用戶名、密碼、手機號需要遵循一定格式,具體格式規(guī)定如下。①用戶名:2~10個字符。②密碼:6到16個字符。③手機號:為11位的數(shù)字字符串,并且以1開頭,第二位是3、4、5、7、8中的任意一個數(shù)字,后面跟著9個數(shù)字的字符串。10.3.1

用戶注冊將wardrobe_back項目在IDEA中部署在本地Tomcat中,并指定其訪問根路徑為wardrobe_back。依次啟動wardrobe_back項目和前端項目wardrobe_user,在瀏覽器中訪問“http://localhost:7070/#/register”,進入用戶注冊界面,輸入符合數(shù)據(jù)格式要求用戶信息進行注冊。10.3.1

用戶注冊單擊“注冊”按鈕,效果如下圖。10.3.1

用戶注冊注冊一個用戶,輸入與zhangsan相同的用戶名,效果如下圖。10.3.2

用戶登錄先定一個小目標!

先定一個小目標!掌握用戶登錄功能的實現(xiàn)10.3.2

用戶登錄用戶注冊成功后就可以進行登錄了,用戶登錄即檢查用戶表中是否存在與用戶輸入信息對應(yīng)的用戶信息,如果存在則登錄成功,否則提示錯誤。下面對用戶登錄進行講解。1.UserDao類中定義用戶登錄方法由于系統(tǒng)支持用戶通過用戶名或手機號進行登錄,所以需要分別通過用戶名和密碼以及手機號和密碼查找用戶。在UserDao類中定義login()方法,在該方法中定義根據(jù)用戶名和密碼,以及手機號和密碼查找用戶信息。10.3.2

用戶登錄2.UserService類中定義用戶登錄方法在UserService類中定義用戶登錄方法login(),用于根據(jù)用戶輸入的用戶名或電話與密碼查找對應(yīng)用戶。當查找到對應(yīng)用戶時,根據(jù)該用戶的id信息生成對應(yīng)的token,并將其設(shè)置到該用戶對象的token屬性中。這樣,將用戶信息返回給前端后,前端就可以拿到對應(yīng)的token并將其設(shè)置到請求頭中,以便后續(xù)請求時驗證用戶身份。10.3.2

用戶登錄3.LoginOrRefServlet類中編寫用戶登錄代碼在LoginOrRefServlet類的service()方法中編寫用戶登錄代碼,該代碼用于判斷當前請求URL為“/login”時執(zhí)行用戶登錄。對于前臺用戶端來說,普通用戶和管理員都可以登錄,而對于后臺管理端只能管理員進行登錄。所以在用戶登錄時,需要判斷當前是在前臺登錄還是后臺登錄,若在后臺登錄,則需要驗證用戶角色是否為管理員,若不是則不能進行登錄。10.3.2

用戶登錄4.測試用戶登錄功能首先測試前臺用戶端的用戶登錄功能,依次啟動項目wardrobe_back和前端項目wardrobe_user,在瀏覽器中訪問“http://localhost:7070/#/login”,進入前臺用戶端用戶登錄界面,輸入用戶zhangsan的信息進行登錄。10.3.2

用戶登錄單擊警告框中的“確定”按鈕,會自動跳轉(zhuǎn)到前臺用戶端首頁。10.3.2

用戶登錄下面測試后臺管理端的用戶登錄功能,依次啟動項目wardrobe_back和前端項目wardrobe_admin,然后在瀏覽器中訪問“http://localhost:7071/#/login”,進入后臺管理端的用戶登錄頁面,使用普通用戶zhangsan的信息進行登錄。10.3.2

用戶登錄使用管理員信息進行登錄。前臺用戶端10.410.4

前臺用戶端前臺用戶端是用戶直接與之交互的界面,它是用戶訪問和體驗網(wǎng)站或應(yīng)用的主要渠道。用戶在前臺用戶端可以查看所有服裝數(shù)據(jù),還能根據(jù)服裝類別和風(fēng)格查看篩選對應(yīng)的服裝,用戶可以查看每件服裝的詳細信息,并且當用戶想要購買時還可以將其添加到購物車,并結(jié)算購物車提交訂單。用戶還可以對自己的個人信息進行更新,例如更換電話號碼更換地址等。用戶注冊和登錄的功能已經(jīng)完成,本節(jié)將對前臺用戶端的其他功能進行講解。10.4.1

服裝查詢先定一個小目標!

先定一個小目標!掌握服裝查詢功能的實現(xiàn)10.4.1

服裝查詢1.根據(jù)類別與風(fēng)格查詢服裝(1)創(chuàng)建服裝持久化處理類在com.itheima.dao包中定義ClothesDao類用于處理服裝的持久化處理,在該類中定義getStyles()方法和getTypes()方法,用于獲取所有的服裝風(fēng)格和服裝類別,同時定義getClothes()方法查詢指定類別或風(fēng)格的服裝,如果不指定類別或風(fēng)格則查詢所有。10.4.1

服裝查詢(2)創(chuàng)建服裝業(yè)務(wù)邏輯處理類在com.itheima.service包中定義ClothesService類,用于存放與服裝相關(guān)的業(yè)務(wù)邏輯代碼。在該類中定義獲取所有服裝風(fēng)格的方法getAllStyles()、獲取所有服裝類別的方法getAllTypes()以及根據(jù)參數(shù)獲取所有服裝數(shù)據(jù)的方法getAllClothes()。在這三個方法中,分別調(diào)用ClothesDao類中的getStyles()、getTypes()和getAllClothes()方法,實現(xiàn)服裝列表和分類篩選的邏輯。10.4.1

服裝查詢(3)創(chuàng)建服裝Servlet類在com.itheima.controller包中新建一個Servlet類ClothesServlet,用于處理前臺系統(tǒng)中服裝數(shù)據(jù)相關(guān)的請求。在該類的@WebServlet注解中添加映射路徑“/allClothes”“/allStyles”“/allTypes”,然后在重寫的service()方法中獲取用戶請求的Servlet路徑,并根據(jù)路徑的不同調(diào)用ClothesService類不同的方法。10.4.1

服裝查詢(4)測試服裝查詢啟動項目wardrobe_back,在瀏覽器中訪問“http://localhost:7070/”,進入網(wǎng)上衣櫥前臺用戶端首頁。10.4.1

服裝查詢將鼠標移至服裝類別下拉菜單,效果如下。10.4.1

服裝查詢測試按服裝類別篩選服裝,單擊“帽子”菜單項,效果如下。10.4.1

服裝查詢測試按服裝風(fēng)格篩選服裝,單擊“時尚”菜單項,效果如下。10.4.1

服裝查詢2.根據(jù)服裝名稱查詢前臺系統(tǒng)支持根據(jù)服裝名稱查找服裝,由于用戶有時并不確定系統(tǒng)中的服裝名稱具體都有什么,為了實現(xiàn)用戶可以根據(jù)關(guān)鍵字查找相應(yīng)服裝,可以通過服裝名稱模糊查詢,查找名稱包含用戶輸入的關(guān)鍵字的服裝。具體實現(xiàn)如下。(1)ClothesDao類中定義服裝名稱模糊查詢方法在ClothesDao類中定義方法getClothesByName(),用于根據(jù)服裝名稱模糊查詢服裝。10.4.1

服裝查詢(2)ClothesService類中定義服裝名稱模糊查詢方法在ClothesService類中定義方法getClothesByName(),用于調(diào)用clothesDao對象對應(yīng)方法根據(jù)用戶名稱模糊查詢服裝并返回服裝信息。10.4.1

服裝查詢(3)ClothesServlet類中定義服裝名稱模糊查詢代碼在ClothesServlet類的@WebServlet注解中添加映射路徑“/clothesByName”,然后在doGet()方法的switch語句中添加case塊,目標值為“/clothesByName”,并調(diào)用clothesService對象對應(yīng)方法處理名稱模糊查詢請求。10.4.1

服裝查詢(4)測試根據(jù)服裝名稱查詢重新啟動項目wardrobe_back,在瀏覽器中訪問“http://localhost:7070/”,進入前臺用戶端首頁,在頁面的輸入框中輸入“帽”,模糊查詢名稱中包含“帽”的服裝,效果如下。10.4.2

服裝詳情先定一個小目標!

先定一個小目標!掌握服裝詳情功能的實現(xiàn)10.4.2

服裝詳情當用戶想要查看某件服裝詳情時,單擊服裝對應(yīng)的“查看詳情”按鈕,即可進入服裝詳情頁查看該服裝的詳細信息。下面講解該功能的實現(xiàn)。1.ClothesDao類中實現(xiàn)服裝詳情查詢服裝詳情頁展示了服裝的名稱、風(fēng)格、類別、可選尺碼以及價格。由于服裝的尺碼信息與服裝的類別相關(guān),不同類別的服裝具有不同的可選尺碼,所以在查找到對應(yīng)服裝之后,還需要根據(jù)其類別查找對應(yīng)的尺碼信息。在ClothesDao類中定義兩個方法getSizeByType()和getClothById(),分別用于根據(jù)服裝類別查找尺碼信息以及根據(jù)服裝id查詢對應(yīng)服裝信息。10.4.2

服裝詳情2.ClothesService類中實現(xiàn)服裝詳情查詢在ClothesService類中定義方法getClothDetails(),用于調(diào)用dao層對應(yīng)方法查看服裝詳細信息。10.4.2

服裝詳情3.ClothesServlet類中實現(xiàn)服裝詳情查詢在ClothesServlet類的@WebServlet注解中添加映射路徑“/clothDetails”,然后在switch語句中添加case塊,目標值為“/clothDetails”,并調(diào)用service層對應(yīng)方法處理查看服裝詳情的請求。10.4.2

服裝詳情4.測試服裝詳情功能重啟Tomcat服務(wù)器,在瀏覽器中訪問“http://localhost:7070/”,進入前臺系統(tǒng)首頁后,單擊連衣裙的“查看詳情”按鈕。10.4.3

購物車先定一個小目標!

先定一個小目標!掌握購物車功能的實現(xiàn)10.4.3

購物車在服裝的詳情頁面,可以將對應(yīng)的服裝添加到購物車,服裝添加到購物車之后,用戶可以對購物車中的服裝數(shù)量進行修改,或者將服裝移出購物車。下面詳細講解購物車的實現(xiàn)。1.創(chuàng)建購物車持久化處理類首先在com.itheima.dao包中定義類CartDao,用于存放與購物車相關(guān)的數(shù)據(jù)庫交互方法,包括添加到購物車、查詢購物車數(shù)據(jù)、修改購物車服裝、刪除購物車服裝。具體如下。(1)添加到購物車在添加到購物車時,首先需要判斷當前用戶是否已經(jīng)添加過相同尺碼的同一件服裝到購物車,如果已經(jīng)添加過,則直接修改購物車中該商品的數(shù)量即可,否則需要在購物車表中添加一條新的數(shù)據(jù)。在CartDao類中定義三個方法addClothesToCart()、clothesAmount()和updateClothData(),分別用于向購物車中添加數(shù)據(jù)、查找該服裝相同尺碼在購物車中存在的數(shù)量以及修改購物車服裝數(shù)據(jù)。10.4.3

購物車(2)查詢購物車數(shù)據(jù)用戶在登錄系統(tǒng)后進入購物車可以查看到自己購物車中的所有服裝,為了實現(xiàn)這一功能,需要在CartDao類中定義查詢所有購物車數(shù)據(jù)的方法allCartData(),用于根據(jù)用戶查詢購物車數(shù)據(jù)。遍歷所有購物車數(shù)據(jù)時,需要根據(jù)用戶id查詢出用戶的信息,對此需要在UserDao中定義getUserById()方法實現(xiàn)。10.4.3

購物車(3)刪除購物車數(shù)據(jù)用戶可以將自己購物車中的服裝移出,為了實現(xiàn)這一功能,需要在CartDao類中定義方法delCartData(),用于刪除購物車數(shù)據(jù)。10.4.3

購物車2.創(chuàng)建購物車業(yè)務(wù)邏輯處理類在com.itheima.service包中定義類CartService,用于存放與購物車相關(guān)的業(yè)務(wù)邏輯代碼。在該類中定義方法addToCart()、getAllCartData()、updateCartData()、delCartData(),分別用于添加購物車、獲取所有購物車數(shù)據(jù)、修改購物車數(shù)據(jù)以及刪除購物車數(shù)據(jù)。在這些方法中分別調(diào)用cartDao對象中對應(yīng)方法處理對應(yīng)的業(yè)務(wù)邏輯。10.4.3

購物車3.創(chuàng)建購物車Servlet類在com.itheima.controller包中定義一個Servlet類CartServlet,用于處理購物車的相關(guān)請求并做出響應(yīng)。在該類的@WebServlet注解中添加映射路徑“/addToCart”,“/getCartDataByUser”,“/updateCartData”和“/delCartData”,分別用于接收添加購物車、獲取用戶購物車數(shù)據(jù)、修改購物車數(shù)據(jù)以及刪除購物車數(shù)據(jù)的請求。在該類重寫的service()方法中使用switch語句,并分別在對應(yīng)的case塊中調(diào)用cartService對象的相應(yīng)方法處理對應(yīng)的請求。10.4.3

購物車4.創(chuàng)建訪問過濾器類由于購物車功能需要用戶登錄后才能進行訪問,所以可以定義一個過濾器類AccessFilter,用于過濾用戶的請求,當用戶訪問購物車相關(guān)功能時,需要判斷請求頭中是否攜帶token(即是否登錄,前端項目中在用戶登錄后會將用戶的token添加到所有請求的請求頭中),若已登錄,則放行,否則攔截該請求。10.4.3

購物車5.測試購物車功能重啟wardrobe_back項目,在瀏覽器中訪問“http://localhost:7070/”,進入前臺系統(tǒng)首頁。需要注意的是,由于購物車功能需要用戶登錄后才能使用,因此需要先進行登錄,這里使用用戶zhangsan的信息進行登錄,然后進入“連衣裙”的詳情頁,選擇尺碼S后單擊“添加購物車”按鈕。10.4.3

購物車單擊確定后,進入購物車頁面查看購物車中的服裝。10.4.3

購物車接著向購物車中添加一條S碼的連衣裙、一條M碼的連衣裙、一雙37碼的皮鞋,添加完成后,購物車中的數(shù)據(jù)如下。10.4.3

購物車單擊皮鞋數(shù)量一欄的加號(+),將其變?yōu)?雙。10.4.3

購物車刪除M碼的連衣裙,效果如下圖。10.4.4

我的訂單先定一個小目標!

先定一個小目標!掌握我的訂單功能的實現(xiàn)10.4.4

我的訂單訂單狀態(tài)變化流程如下。10.4.4

我的訂單1.創(chuàng)建訂單持久化處理類在com.itheima.dao包中新建OrderDao類,用于存放預(yù)訂單相關(guān)的數(shù)據(jù)庫交互方法,包括添加訂單、查詢某個用戶的訂單、刪除訂單信息、修改訂單狀態(tài)(支付或收貨等),具體如下。(1)添加訂單在OrderDao類中定義添加訂單的方法addOrder()。10.4.4

我的訂單(2)查詢某個用戶的訂單在OrderDao類中定義根據(jù)用戶id查詢訂單的方法getOrderByUser(),用戶可以查看自己所下單的所有訂單,為了能查詢不同狀態(tài)的訂單,對此需要傳入訂單狀態(tài)參數(shù)。10.4.4

我的訂單(3)刪除訂單在OrderDao類中定義一個刪除訂單信息的方法delOrderData(),為了確保未完成的訂單信息受到保護,在該方法中只能對未支付和已收貨的訂單進行刪除。(4)修改訂單狀態(tài)對于普通用戶來說,只能將未支付的訂單改為已支付,并且把已發(fā)貨的訂單改為已收貨。因此在修改訂單狀態(tài)時,需要判斷該訂單的原始狀態(tài)決定是否可以進行修改。在OrderDao類中定義修改訂單狀態(tài)的方法,在該方法中傳入訂單id、訂單原始狀態(tài)和目標狀態(tài)。10.4.4

我的訂單2.創(chuàng)建訂單業(yè)務(wù)邏輯處理類在com.itheima.service包中定義一個類OrderService,用于存放與訂單相關(guān)的業(yè)務(wù)邏輯代碼。在該類中定義4個方法addOrder、getOrderByUser()、delOrderData()和updateOrderStatus(),分別用于添加訂單、查詢用戶訂單、刪除訂單以及修改訂單狀態(tài)。在這些類中分別調(diào)用dao層對應(yīng)方法,處理訂單邏輯。在CatDao類中,定義方法用于刪除當前登錄用戶購物車中的所有數(shù)據(jù)。10.4.4

我的訂單3.創(chuàng)建訂單Servlet類在com.itheima.controller包中定義一個Servlet類OrderServlet,用于處理用戶訂單相關(guān)的請求。在該類的@WebServlet注解中添加映射路徑"/addOrder","/getOrderByUser","/delOrderData","/payOrder","/receiveOrder",分別用于接收添加訂單、獲取用戶的訂單、刪除訂單、支付訂單以及收貨的請求。在該類的doGet()方法中使用switch語句,并分別在對應(yīng)的case塊中調(diào)用service層相應(yīng)方法處理對應(yīng)的請求。10.4.4

我的訂單4.添加過濾器映射路徑由于訂單功能也需要用戶登錄后才能操作,所以需要在過濾器AccessFilter類中添加訂單訪問攔截的映射,在@WebFilter注解的servletNames屬性中添加值“OrderServlet”。10.4.4

我的訂單5.測試訂單功能重啟wardrobe_back項目,在瀏覽器中訪問“http://localhost:7070/”,進入購物車,單擊“結(jié)算”按鈕,效果如下。10.4.4

我的訂單單擊“確定”按鈕后,進入我的訂單,效果如下。10.4.4

我的訂單單擊訂單編號為11的訂單對應(yīng)的“支付”按鈕,進行支付操作。本項目沒有實現(xiàn)實際的支付功能,當用戶進行支付時,默認設(shè)置為支付成功,支付成功后訂單狀態(tài)會變?yōu)槲窗l(fā)貨,支付之后查看未發(fā)貨的訂單,效果如下圖所示。10.4.5

個人中心先定一個小目標!

先定一個小目標!掌握個人中心功能的實現(xiàn)10.4.5

個人中心1.創(chuàng)建用戶查詢信息類在個人中心中更新個人信息時,不僅包含User類所對應(yīng)的屬性,還包含一個更新后的密碼,為了便于接受更新個人信息提交的信息,對此,在com.itheima.model包下創(chuàng)建一個用戶查詢信息類,繼承User類,并在該類中定義更新后的密碼屬性。10.4.5

個人中心2.UserDao類中定義更新用戶信息方法在UserDao類中定義根據(jù)用戶id更新用戶信息的方法updateUser()。3.UserService類中定義查詢用戶信息和更新用戶信息的方法在UserService類中定義兩個方法getCurrentUser()和updateUser(),分別用于獲取當前用戶和修改用戶信息。需要注意的是,修改用戶信息時,同樣需要判斷用戶修改的用戶名和手機號是否與其他用戶重復(fù),若重復(fù)則不能修改成功。10.4.5

個人中心4.創(chuàng)建用戶Servlet類在com.itheima.controller包中定義UserServlet類,用于處理用戶個人中心里查看信息和修改信息的請求。在該類中通過不同的請求servlet路徑調(diào)用userService對象對應(yīng)的方法處理響應(yīng)請求。5.添加過濾器映射路徑由于個人中心功能需要用戶登錄后才能操作,所以需要在過濾器AccessFilter類中添加訂單訪問攔截的映射,在@WebFilter注解的servletNames屬性中添加值“UserServlet”。10.4.5

個人中心6.測試個人中心功能重啟wardrobe_back項目,在瀏覽器中訪問“http://localhost:7070/”,然后進入個人中心頁面。10.4.5

個人中心在個人信息中將地址修改為“北京市昌平區(qū)”,并填寫錯誤的用戶密碼,效果如圖所示。10.4.5

個人中心重新輸入正確的原始密碼后,提交更新,效果如圖所示。后臺管理端10.510.5

后臺管理端后臺管理端是供網(wǎng)站管理員使用的平臺,在后臺管理端管理員可以對服裝、訂單和用戶的管理操作,本節(jié)將講解后臺管理端的功能開發(fā)。10.5.1

服裝管理先定一個小目標!

先定一個小目標!掌握服裝管理功能的實現(xiàn)10.5.1

服裝管理在后臺管理端中,管理員可以對服裝進行管理,包括查看所有服裝信息、上架服裝、根據(jù)服裝名稱,類別和風(fēng)格進行多條件或單條件查詢、修改服裝信息,以及刪除(下架)服裝。下面分別對上述這些功能的實現(xiàn)進行講解。1.ClothesDao類中定義服裝管理的方法下面針對后臺管理端中服裝管理的對應(yīng)功能,在ClothesDao類中定義相關(guān)實現(xiàn)的方法。(1)添加服裝在ClothesDao類中定義方法addClothes(),用于添加服裝。10.5.1

服裝管理(2)多條件查詢服裝在ClothesDao類中定義方法getClothesByParams(),用于根據(jù)服裝名稱、類別和風(fēng)格進行多條件或單條件查詢。在該方法中,傳入服裝名稱、類別和風(fēng)格三個參數(shù),判斷這三個參數(shù)哪個不為空,將不為空的參數(shù)對應(yīng)的查詢條件拼接到原始查詢所有服裝的SQL中。10.5.1

服裝管理(3)修改服裝信息在ClothesDao類中定義方法editClothes(),用于修改服裝信息。(4)刪除服裝在ClothesDao類中定義方法deleteClothes(),用于刪除服裝。10.5.1

服裝管理2.ClothesService類中定義服裝管理方法在ClothesService類中定義方法getAllClothesData()、addClothes()、getClothesByParams()、editClothes()和delClothes(),在這些方法中分別調(diào)用dao層對應(yīng)方法處理獲取所有服裝數(shù)據(jù)、上架服裝、多條件或單條件查詢服裝、編輯服裝信息和刪除服裝的業(yè)務(wù)邏輯。10.5.1

服裝管理3.創(chuàng)建服裝管理Servlet類在com.itheima.controller包中定義一個Servlet類ManageClothesServlet,用于處理服裝管理的各種請求,在該類中根據(jù)請求servlet路徑的不同,調(diào)用clothesService對象不同的方法處理對應(yīng)的請求,并返回響應(yīng)。10.5.1

服裝管理4.編寫圖片上傳Servlet類在com.itheima.controller包中定義一個Servlet類UploadFileServlet,用于上傳服裝圖片,在該類中指定上傳路徑為wardrobe_back項目在Tomcat服務(wù)器的根路徑下的子目錄images中。由于上傳到服務(wù)器的圖片如果圖片名稱相同會覆蓋,所以可以使用時間戳為圖片名稱添加唯一前綴,以確保圖片名稱不會重復(fù)。10.5.1

服裝管理5.添加過濾器映射路徑后臺管理系統(tǒng)的功能,除登錄之外其他都需要登錄后才能操作,因此需要在過濾器AccessFilter類中添加服裝訪問攔截的映射,在@WebFilter注解的servletNames屬性中添加值“ManageClothesServlet”。10.5.1

服裝管理6.測試服裝管理功能重啟wardrobe_back項目,并且啟動前端項目wardrobe_admin,在瀏覽器中訪問“http://localhost:7071/”,然后登錄后臺管理系統(tǒng),并進入服裝管理界面。10.5.1

服裝管理單擊“上架服裝”按鈕,在彈窗中輸入服裝的名稱、類別、風(fēng)格和價格,并上傳一張.jpg或.png格式的服裝圖片。10.5.1

服裝管理單擊“提交”按鈕完成服裝的上架,上架后在服裝列表中查看剛上傳的服裝。10.5.2

訂單管理先定一個小目標!

先定一個小目標!掌握訂單管理功能的實現(xiàn)10.5.2

訂單管理從后臺管理端中管理員可以對訂單進行管理,包括查詢訂單、對未發(fā)貨的訂單進行發(fā)貨。其中,查詢所有訂單時可以根據(jù)指定的用戶名稱或訂單狀態(tài)進行查詢,對未發(fā)貨的訂單進行發(fā)貨的本質(zhì)就是修改訂單狀態(tài),該功能在之前已經(jīng)實現(xiàn),下面僅對訂單管理中的查詢訂單的實現(xiàn)進行講解。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論