1 水果商品銷售網站概述
1.1 課題簡介
隨著電子商務在當今社會的迅猛發展,水果在線銷售已逐漸演變為一種極為便捷的購物方式,日益受到人們的青睞。本系統的設計初衷便是構建一個功能完備、用戶體驗友好的水果銷售平臺,致力于為用戶提供優質、新鮮水果的在線選購服務,確保他們能夠輕松、便捷地挑選到心儀的水果。與此同時,該平臺也為管理員提供了一套高效的后臺管理系統,助力他們能夠精準、有效地對水果分類、水果詳細信息、系統公告、用戶訂單以及用戶賬戶等進行全面管理。
該系統主要由前端用戶界面和后端管理系統兩大部分組成。前端用戶界面是用戶與系統進行交互的窗口,用戶可以通過該界面輕松地進行水果瀏覽,查看各類水果的詳細信息,包括水果的品種、產地、價格、口感等,從而根據自己的需求和喜好進行選購。此外,用戶還可以方便地將心儀的水果添加至購物車,并進行下單操作,整個過程簡潔流暢,極大地提升了用戶的購物體驗。而后端管理系統則是整個平臺的核心支撐,管理員可以通過該系統對水果分類進行精細管理,包括添加新的分類、編輯現有分類以及刪除不再需要的分類,以確保水果分類的合理性和準確性。同時,管理員還能夠對水果信息進行全面掌控,實時更新水果的價格、庫存以及圖片等信息,保證用戶能夠獲取到最準確的水果資訊。此外,管理員還可以發布和管理系統公告,及時向用戶傳達重要信息,如促銷活動、新品上市等。對于用戶訂單,管理員能夠進行詳細的查看和處理,包括安排發貨、處理退款等操作,確保每一個訂單都能得到妥善處理。最后,管理員還可以對用戶賬戶進行管理,以保障平臺的安全和穩定運行。
1.2 設計目的
滿足忙碌的城市居民通過網絡快速購買新鮮水果的需求,為他們提供極為便捷的購物體驗。在快節奏的現代生活中,城市居民往往面臨著時間緊張的問題,難以抽出時間去傳統市場挑選水果。因此,他們迫切需要一種能夠節省時間、高效便捷的購物方式。本系統的出現,恰好滿足了這一需求,使他們能夠通過網絡輕松地選購新鮮水果,無需花費大量時間在購物途中。同時,系統提供了簡潔明了的界面和流暢的操作流程,讓用戶能夠快速找到所需水果,輕松完成下單購買,極大地提升了購物的便利性和效率。
為水果供應商提供一個高效的在線銷售渠道,助力其擴大市場份額。傳統的銷售模式往往受到地域和時間的限制,水果供應商難以將產品推廣到更廣泛的市場。而通過本系統,水果供應商可以打破這些限制,將水果展示給更多的潛在客戶,從而拓寬銷售渠道,提高產品的曝光度和銷售量。此外,系統還提供了豐富的營銷工具和數據分析功能,幫助水果供應商更好地了解市場需求和用戶喜好,制定更精準的營銷策略,進一步提升市場競爭力,實現市場份額的擴大。
提高水果銷售的效率和管理水平,有效降低運營成本。通過系統化的管理和自動化的流程,本系統能夠實現水果銷售各個環節的高效協同,減少人工操作和溝通成本,提高訂單處理速度和準確性。同時,系統還能夠對庫存進行實時監控和管理,避免庫存積壓和缺貨現象的發生,降低庫存成本。此外,通過數據分析和智能決策支持,系統能夠幫助管理者優化采購計劃、定價策略和銷售渠道,提高資源利用效率,進一步降低運營成本,提升水果銷售的整體效益和競爭力。
1.3 系統開發所采用的技術
1.3.1 開發工具
前端:使用HTML5、CSS3頁面構建。
后端:采用Java語言進行開發,使用idea作為開發工具。
1.3.2 開發使用的數據庫系統
使用MySQL作為數據庫管理系統,存儲水果、用戶、訂單等相關信息。
1.3.3 系統環境
操作系統:Windows 7或更高的Windows版本。
Web服務器:Tomcat 7.0以上。
Java開發包:JDK 1.7以上。
數據庫:MySQL 5.0。
瀏覽器:IE9.0或更高版本。
1.4 系統功能模塊
前端功能:
主頁:展示水果分類、銷量排行榜和水果公告。
購物車:允許用戶添加、刪除和修改購物車中的商品數量。
我的訂單:顯示用戶的所有訂單,包括訂單狀態和歷史記錄。
個人信息:用戶可以修改姓名、收貨地址和手機號。
登錄注冊:提供安全的用戶認證機制,使用JWT進行身份驗證。
后端功能:
分類管理:管理員可以添加、編輯和刪除水果分類。
水果管理:管理水果信息,包括價格、庫存和圖片。
公告管理:發布和管理系統公告。
訂單管理:查看和處理用戶訂單,包括發貨和退款。
用戶管理:管理用戶賬戶,包括權限設置和賬戶狀態。
2 數據庫設計
2.1?建立的數據庫名稱
實際建立的數據庫名稱:‘fruitshop’。
2.2?所使用的表
t_dingdan表:
字段名 | 數據類型 | 允許為空 | 是否為主鍵 | 默認值 | 說明 |
id | int(11) | 否 | 是 | 自動遞增 | 訂單ID |
status | varchar(255) | 是 | 否 | NULL | 訂單狀態 |
userid | int(11) | 是 | 否 | NULL | 用戶ID |
xingming | varchar(255) | 是 | 否 | NULL | 姓名 |
dianhua | varchar(255) | 是 | 否 | NULL | 電話 |
dizhi | varchar(255) | 是 | 否 | NULL | 地址 |
xiangqing | text | 是 | 否 | NULL | 訂單詳情 |
orderid | varchar(255) | 是 | 否 | NULL | 訂單編號 |
beizhu | text | 是 | 否 | NULL | 備注 |
shijian | varchar(255) | 是 | 否 | NULL | 時間 |
zongjia | float | 是 | 否 | NULL | 總價 |
t_fenlei表:
字段名 | 數據類型 | 允許為空 | 是否為主鍵 | 默認值 | 說明 |
id | int(11) | 否 | 是 | 自動遞增 | 分類ID |
fname | varchar(255) | 是 | 否 | NULL | 分類名稱 |
t_gonggao表:
字段名 | 數據類型 | 允許為空 | 是否為主鍵 | 默認值 | 說明 |
id | int(11) | 否 | 是 | 自動遞增 | 公告ID |
biaoti | varchar(255) | 是 | 否 | NULL | 標題 |
neirong | text | 是 | 否 | NULL | 內容 |
shijian | varchar(255) | 是 | 否 | NULL | 時間 |
t_gouwuche表:
字段名 | 數據類型 | 允許為空 | 是否為主鍵 | 默認值 | 說明 |
id | int(11) | 否 | 是 | 自動遞增 | 購物車ID |
userid | int(11) | 是 | 否 | NULL | 用戶ID |
pid | int(11) | 是 | 否 | NULL | 產品ID |
pname | varchar(255) | 是 | 否 | NULL | 產品名稱 |
jiage | float | 是 | 否 | NULL | 價格 |
shuliang | int(11) | 是 | 否 | NULL | 數量 |
t_product表:
字段名 | 數據類型 | 允許為空 | 是否為主鍵 | 默認值 | 說明 |
id | int(11) | 否 | 是 | 自動遞增 | 產品ID |
pname | varchar(255) | 是 | 否 | NULL | 產品名稱 |
imgpath | varchar(255) | 是 | 否 | NULL | 圖片路徑 |
createtime | varchar(255) | 是 | 否 | NULL | 創建時間 |
fenleiid | varchar(255) | 是 | 否 | NULL | 分類ID |
fname | varchar(255) | 是 | 否 | NULL | 分類名稱 |
jiage | float | 是 | 否 | NULL | 價格 |
tuijian | varchar(255) | 是 | 否 | NULL | 推薦狀態 |
dianjishu | int(11) | 是 | 否 | NULL | 點擊數 |
xiaoliang | int(11) | 是 | 否 | NULL | 銷量 |
miaoshu | text | 是 | 否 | NULL | 描述 |
t_user表:
字段名 | 數據類型 | 允許為空 | 是否為主鍵 | 默認值 | 說明 |
id | int(11) | 否 | 是 | 自動遞增 | 用戶ID |
username | varchar(255) | 是 | 否 | NULL | 用戶名 |
password | varchar(255) | 是 | 否 | NULL | 密碼 |
xingming | varchar(255) | 是 | 否 | NULL | 姓名 |
role | int(11) | 是 | 否 | NULL | 角色 |
dianhua | varchar(255) | 是 | 否 | NULL | 電話 |
dizhi | varchar(255) | 是 | 否 | NULL | 地址 |
3 水果商品銷售網站設計與實現
3.1?系統管理首頁
3.1.1模塊視圖
???????????????????圖3-1 主頁
3.2?會員注冊?
3.2.1注冊模塊視圖
???????????????????圖3-1 ??注冊頁面輸入信息效果圖
3.2.2注冊模塊模型?
public class User {
private int id;//主鍵
private String username;//用戶名
private String password;//密碼
private String xingming;//姓名
private int role;//用戶角色 0表示用戶,1表示系統管理員
private String dianhua;//手機
private String dizhi;//收貨地址
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getXingming() {
return xingming;
}
public void setXingming(String xingming) {
this.xingming = xingming;
}
public int getRole() {
return role;
}
public void setRole(int role) {
this.role = role;
}
public String getDianhua() {
return dianhua;
}
public void setDianhua(String dianhua) {
this.dianhua = dianhua;
}
public String getDizhi() {
return dizhi;
}
public void setDizhi(String dizhi) {
this.dizhi = dizhi;
}
3.2.3注冊模塊控制器
//新用戶注冊
if("register".equals(method)){
//從jsp頁面獲取用戶名和密碼
String username = ?request.getParameter("username");
String password = ?request.getParameter("password");
String xingming = ?request.getParameter("xingming");
String dianhua = ?request.getParameter("dianhua");
String dizhi = ?request.getParameter("dizhi");
//查詢該用戶名是否已經注冊
User bean = userDao.selectBean(" where username='"+username+"' ");
if(bean==null){
bean = new User();
bean.setDianhua(dianhua);
bean.setDizhi(dizhi);
bean.setPassword(password);
bean.setRole(0);
bean.setUsername(username);
bean.setXingming(xingming);
userDao.insertBean(bean);
writer.print("<script language='javascript'>alert('注冊成功,請妥善保管您的賬戶');window.location.href='"+basePath+"login.jsp'; </script>");
}else{
writer.print("<script ?language='javascript'>alert('該用戶名已經被注冊,請重新注冊!');window.location.href='"+basePath+"register.jsp';</script>");
}
}
3.3?會員登錄?
3.3.1模塊視圖
????
圖3-3登錄
3.3.2模塊模型?
public class User {
private int id;//主鍵
private String username;//用戶名
private String password;//密碼
private String xingming;//姓名
private int role;//用戶角色 0表示用戶,1表示系統管理員
private String dianhua;//手機
private String dizhi;//收貨地址
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getXingming() {
return xingming;
}
public void setXingming(String xingming) {
this.xingming = xingming;
}
public int getRole() {
return role;
}
public void setRole(int role) {
this.role = role;
}
public String getDianhua() {
return dianhua;
}
public void setDianhua(String dianhua) {
this.dianhua = dianhua;
}
public String getDizhi() {
return dizhi;
}
public void setDizhi(String dizhi) {
this.dizhi = dizhi;
}
3.3.3模塊控制器
//用戶登錄
else if("login".equals(method)){
//從jsp頁面獲取用戶名和密碼
String username = ?request.getParameter("username");
String password = ?request.getParameter("password");
//查詢用戶名和密碼是否匹配
User bean = userDao.selectBean(" where username='"+username+"' and password ='"+password+"' and role=0 ");
if(bean!=null){
HttpSession session = request.getSession();
session.setAttribute("user", bean);
writer.print("<script language='javascript'>alert('登錄成功');window.location.href='"+basePath+".'; </script>");
}else{
writer.print("<script ?language='javascript'>alert('用戶名或者密碼錯誤');window.location.href='"+basePath+"login.jsp';</script>");
}
}
3.4?查看所有產品
3.4.1模塊視圖
圖3-1水果列表
3.7?添加購物車
3.7.1模塊視圖
圖3-8購物車
3.8后臺管理
3.8.1模塊視圖
圖3-9后臺
4 課程設計總結??
在本次課程設計中,我深入參與了水果銷售網站的開發過程,從需求分析、數據庫設計到功能實現和測試,每一個環節都讓我受益匪淺。
通過這個項目,我更加熟練地掌握了Java Web開發的相關技術,包括HTML、CSS、JavaScript、JSP、Servlet和JavaBean等。同時,我也學會了如何使用MySQL數據庫來存儲和管理數據,以及如何通過JDBC連接數據庫進行數據的操作。
在開發過程中,我遇到了一些挑戰,比如如何實現購物車的功能、如何處理用戶的登錄和注冊等。但是,通過查閱資料、請教老師和同學,我最終成功地解決了這些問題。這讓我深刻地體會到了團隊合作和學習的重要性。
此外,我還注重了用戶體驗的優化,努力使網站的界面簡潔美觀、操作方便快捷。通過不斷地測試和改進,我提高了自己的編程能力和解決問題的能力。
總的來說,這次課程設計讓我對Java Web開發有了更深入的理解和認識,也讓我積累了寶貴的實踐經驗。我相信這些經驗將對我今后的學習和工作產生積極的影響。
在未來的學習和工作中,我將繼續努力學習和提升自己的技術水平,不斷完善和優化這個水果銷售網站,為用戶提供更好的服務。同時,我也希望能夠參與更多的項目開發,積累更多的經驗,為自己的職業發展打下堅實的基礎。