「貴美網上商城」是北大青鳥經典教學項目,採用 Struts2 + Spring 4 + Hibernate 4 + MySQL 技術棧,採用 C3P0 連接池。項目包含前台購物商城與後台管理系統,適合 1-2 年經驗開發者學習 SSH 整合、MVC 分層、前後端交互全流程。本文梳理項目架構、功能模塊、部署要點及常見問題。
一、技術棧與版本
| 層級 | 技術/組件 | 版本 |
| 展現層 | Struts2、jQuery、jQuery Validate、EasyUI | 2.5 / 3.x / 1.5 |
| 業務層 | Spring IOC / AOP / 事務管理 | 4.x |
| 持久層 | Hibernate ORM、C3P0 連接池 | 4.x / 0.9.5 |
| 數據庫 | MySQL | 5.6+ |
| 構建工具 | Maven / Ant (原項目) | - |
二、功能模塊清單
前台用戶端
- 用戶註冊/登錄(表單驗證、AJAX 異步校驗)
- 商品瀏覽:分類導航、關鍵字搜索、詳情頁(圖片輪播、規格參數)
- 購物車:加入/修改/刪除、Cookie+Session 雙模式持久化
- 訂單流程:收貨地址管理、支付方式選擇、訂單確認、歷史訂單查詢
- 個人中心:信息修改、密碼變更、收藏夾
後台管理端
- 管理員登錄/權限控制(攔截器實現)
- 用戶管理:增刪改查、狀態凍結/解凍
- 商品管理:分類維護、商品 CRUD、圖片上傳、上下架
- 訂單管理:訂單列表、發貨/退款操作、導出報表
- 公告系統:發布/編輯/刪除站內公告
三、項目結構(標準 Maven 目錄)
guimei-mall
├── src/main/java
│ ├── com.guimei.action // Struts2 Action
│ ├── com.guimei.service // 業務接口與實現
│ ├── com.guimei.dao // Hibernate DAO
│ ├── com.guimei.entity // 實體類 (User, Product, Order...)
│ └── com.guimei.util // 工具類 (分頁、上傳、JSON)
├── src/main/resources
│ ├── hibernate.cfg.xml
│ ├── spring-*.xml // applicationContext, transaction, mvc
│ └── struts.xml
├── src/main/webapp
│ ├── WEB-INF
│ │ ├── jsp // 前台/後台 JSP 頁面
│ │ └── lib // 若非 Maven 打包需手動放 jar
│ ├── css/js/images // 靜態資源
│ └── upload // 圖片上傳目錄
└── sql
└── guimei.sql // 建表腳本 + 初始數據
四、快速部署指南
- 數據庫初始化:MySQL 創建庫
guimei,導入 sql/guimei.sql。
- 配置數據源:修改
spring-datasource.xml 或 jdbc.properties 中的 URL/用戶名/密碼。
- 編碼統一:確保項目編碼、數據庫連接、JSP 頁面均為
UTF-8,避免中文亂碼。
- 構建部署:
mvn clean package -DskipTests
# 產出 guimei-mall.war 部署至 Tomcat 8/9 webapps 目錄
- 啟動驗證:訪問
https://localhost:8080/guimei-mall/,前台首頁;/admin/login.jsp 進入後台(默認賬號 admin/123456)。
五、常見問題與修復
| 現象 | 原因 | 解決方案 |
| MyEclipse 導入報錯:缺少 JAR | 舊項目依賴 lib 目錄手動管理 | 轉 Maven 管理依賴,或手動添加 WebRoot/WEB-INF/lib 到 Build Path |
| 中文參數亂碼 | Tomcat 8+ 默認 ISO-8859-1 | server.xml 添加 URIEncoding="UTF-8";Struts2 配置 struts.i18n.encoding=UTF-8 |
| Hibernate 延遲加載失敗 | Session 已關閉 | 配置 OpenSessionInViewFilter 或在 Service 層初始化集合 |
| 文件上傳失敗 | 上傳目錄權限/路徑不存在 | 確保 webapp/upload 可寫,配置 struts.multipart.saveDir |
六、學習價值與擴展方向
- SSH 整合最佳實踐:Spring 管理 Struts2 Action、Hibernate SessionFactory、事務邊界。
- 分頁插件封裝:通用
PageBean + HQL/SQL 分頁查詢。
- 前後端分離遷移:將 JSP 改為 Vue/React + RESTful API,保留 Service/Dao 不變。
- 安全加固:引入 Shiro/JWT、XSS 過濾、SQL 注入防護、CSRF Token。
項目下載地址(CSDN):點擊下載
解壓密碼:www.52itstyle.com
- 上一篇文章: Java 文件 IO 性能大比拼:Stream vs NIO ByteBuffer vs MappedByteBuffer
- 下一篇文章: Java 網絡編程核心:ServerSocket 深度解析與配置優化
Copyright ©
程式碼之家 All Rights Reserved