網上商城客戶端首頁:http://localhost:8080
網上商城后臺首頁:http://localhost:8080/admin/index.jsp
網上商城繞過后臺首頁:http://locallhost:8080/admin/home.jsp
多表操作,將類的對象做為屬性是為了體現面向對象的思想,數據庫中保存的還是外鍵ID
注冊:
0.有前端數據驗證(為了給客戶更好的體驗,前端響應時間短)
1.后臺異步驗證用戶名是否存在
2.提交之后發送激活郵件給用戶,點擊鏈接激活賬戶
查詢相關熱門商品與最新商品
0.商品表里有熱門字段和最新字段
商品的類別查詢
-
放在頭部導航欄里
-
動態顯示商品類別信息
-
為了保證所有頁面可以用頭部導航欄,所以要用異步請求查詢
-
由于商品類別變化不大,可以將數據存入緩存區,如Redis里面
商品類別子商品列表
-
根據商品類別ID查詢所有子商品,并分頁顯示出來
單個商品的詳細信息
-
根據商品ID查詢
在商品頁返回列表頁時,能查看歷史瀏覽記錄
-
利用cookie技術將商品ID拼接保存(也可以用Redis)
-
然后在歷史記錄里查詢商品
-
注意:cookie里面字符串的拼接操作;如果剛開始商品ID排列為3-2-1;
那么再次瀏覽1后:1-3-2;再瀏覽8為:8-1-3-2
Servlet的抽離
-
將同一個對象的不同操作抽離成同一個servlet
-
創建映射,根據不同的方法名找不同的方法執行
購物車
-
購物車包含購物項;購物項包含商品
-
添加購物項到購物車時用重定向,防止轉發刷新時總計重復的疊加
-
難點在于價錢的邏輯計算
-
要判斷購物車是否有該購物項,有就加數量,沒有直接加該購物項
-
購物車的單獨刪除與清空購物車操作
-
購物車里的數據不用保存到數據庫
訂單提交
-
用戶沒有登錄不能提交訂單
-
訂單信息要保存于數據庫
-
難點在于事務的處理,因為要將訂單和訂單項數據同時傳入數據庫才行
-
訂單包含訂單項;訂單項包含商品信息
-
訂單項與購物項數據一樣,但是意義不同
在將訂單加入數據庫時遇到的問題
java.sql.SQLException: Data truncation: Incorrect datetime value: '' for column 'ordertime' at row 1 Query: insert into orders values(?,?,?,?,?,?,?,?) Parameters: [30c33bd4-3809-4140-8db6-553fa8546742, Mon Aug 20 22:31:18 CST 2018, 9287.0, 0, null, null, null, dffd2494-4b9b-4996-8025-90b5b29d161d]
這是mysq_JDBC驅動包版本引起的,將其引用最新版即可解決
支付平臺
0.選擇三方平臺提供的接口進行付款
獲取我的訂單
0.先根據用戶ID獲取用戶的訂單
1.再根據訂單ID獲取訂單項
2.注意:在查詢訂單項時,因為訂單項與商品是1對1的關系,所以可以多表查詢,所以查詢返回的不能
是單表的集合,所以用List<Map<String,Object>>接收
3.要避免加入分頁時的數據傳輸錯誤
關于權限過濾器的使用
0.可以創建一個文件夾,將需要過濾的文件放到里面,這樣只有滿足過濾器里面的條件,才能訪問相應的
文件;如:用戶只有登錄才能訪問我的訂單功能以及提交訂單功能
用戶退出
0.從session里刪除用戶
1.從cookie里刪除用戶,不然勾選了自動登錄會退出后還顯示用戶名
后臺管理系統
0.注意:登錄頁如果cookie保存有用戶數據,會自動填充,要避免用戶接觸到后臺,更要注重后臺的
安全性
異步獲取商品分類信息
0.將 list 對象轉為 json 對象
添加商品操作
0.注意:因為是post提交,所以不能用
${pageContext.request.contextPath}/admin?method=findAllCategory 這種格式;
因為多次提交,注射會使method值為空,所以也不能用隱藏域來寫
1.這里直接轉到對應select即可
2.添加完去到列表頁面顯示商品
3.目前遇到的問題:上傳圖片時,只有絕對路徑才能將文件拷到文件夾,相對路徑會找不到路徑
4.刪除商品,修改商品,查詢商品,增加分類,刪除分類,修改分類,查詢分類
經驗之談:修改代碼之后,加注釋(功能+名字+時間),后期維護可以通過軟件搜索名字找到所有
自己改過的內容
查詢訂單
0.多表查詢,查詢顯示之后,單擊訂單詳情,獲取所有訂單項,并且彈窗顯示
解耦:(面向接口編程):使用工廠模式+反射+配置文件
浙公網安備 33010602011771號