程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 網上書城+源碼,網上書城

網上書城+源碼,網上書城

編輯:JAVA綜合教程

網上書城+源碼,網上書城


  經過一段時間的Java Web基礎知識的學習,為了將整個知識點串聯起來,自己寫了一個簡單的網上書城小項目。整個項目架構比較簡單,適合像我這種Java Web初學者來學習參考,項目名稱web_bookstore,是基於servlet/jsp和html/css/js實現的。

  整個工程代碼已push到Git,詳見地址:web_bookstore。

整體架構

  該網上書城項目分為前台和後台兩大部分,前台部分包括會員注冊、會員登錄、購買書籍、添加購物車、結算等功能,後台部分包括查看會員、查看商品、添加商品等功能。有些功能模塊還未添加,後續需要的話可以再添加上去。整體架構框圖如下所示:

代碼流程梳理

  通過看整體架構框圖可知,整個項目各個模塊之間關系還是挺清晰的,下面先來一張web_bookstore工程整體圖:

src源碼包說明:

  • admin包:主要是一些管理員有關的Servlet控制邏輯
  • dao包:數據表類和數據表操作類
  • demo包:自己寫的一些測試用例
  • service包:會員相關的一些Servlet控制邏輯
  • util包:一些腳手架程序
  • web.filter:一些攔截器,比如控制網頁編碼等

WebContent文件說明:

  • admin:管理員相關jsp頁面
  • client:會員相關jsp頁面
  • css:全局css文件
  • img/picture:存放一些圖片
  • js:一些js程序
  • util:存放一些頁頭什麼的

  工程整體大致就是這些,下面分模塊大致梳理一下流程。

數據表

  一般項目首先會設計數據表,那咱們就先說說數據表創建^_^。整個項目使用了5個數據表,分別是用戶表、商品表、訂單表、訂單項表(訂單中單個商品項信息)、消息表。具體的表結構和創建表SQL語句見源碼中的db.sql文件。下面是整個個數據庫的圖示:

會員注冊

  會員需要先注冊後才能使用網上書城添加購物車和結算等功能,注意:會員注冊後需要管理員激活該會員後才能登錄。注冊界面如下所示:

加入購物車後就會將該商品添加到購物車中。

  注意:購物車是以Session形式保存在服務端的,因為網上書城是多用戶登錄的,如何保證多個用戶的Session不沖突呢,也就是購物車是如何實現的呢?一個用戶的購物車在服務端對應一個Session,該Session對應的屬性名字為cart+user_id,user_id也就是用戶登錄成功寫入到Cookie的那個user值,因為cart+user_id是和用戶一一對應的,所以這樣就保證了所有用戶的Session不會沖突,對應的源碼在AddCarServlet邏輯中,如下所示:

// 先判斷用戶是否登錄
Cookie cookie = ServletUtils.getCookie(request, "user");
if (cookie == null) {
    response.getWriter().println("抱歉,你當前還未登錄,2秒後調到登錄頁面");
    response.addHeader("refresh", "2;url=" + request.getContextPath() + "/client/login.jsp");
    return;
}

// 獲取購物車對象
HttpSession session = request.getSession();
Map<Product, Integer> cart = (Map<Product, Integer>) session.getAttribute("cart" + cookie.getValue());
if (cart == null) {
    cart = new HashMap<Product, Integer>();
}

商品結算流程

  在購物車頁面點擊現在結賬後,就會跳轉到提交訂單頁面中了。

  填寫收貨地址、收貨人、電話等信息後,點擊提交訂單,就到了計算頁面了,然後輸入支付寶賬號和密碼後,商品購買流程就結束了。

 

管理員流程

  在管理員頁面如果填寫的是管理員賬號的話,就直接到管理員管理頁面了,整圖頁面如下所示:

  目前管理員功能有限,只有添加商品、查看所有商品、查看所有用戶等功能,後續可以添加上去,這裡對照著源碼大致就明白了,就不具體說明了。

  到此,整體項目流程已經梳理完畢,具體請點擊web_bookstore查看源碼。

參考連接

  1、https://github.com/luoxn28

  2、Java Web之會話技術

  3、Java Web之Servlet技術

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved