本文demo教學視頻下載地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1088java
實例介紹了Java實現的Web網絡書店, 含有項目源碼, 論文, 代碼講解和數據庫腳本, 網絡書店分爲多個欄目, 每一個欄目有相應的書籍列表,點擊後可查看書籍詳情,而後能夠購買並經過工商銀行進行付款mysql
如遇視頻不清晰,請最大化觀看演示web
項目對應的實例代碼能夠經過右側【下載實例】按鈕獲取ajax
開發工具: MyEclipse10, JDK1.7, Tomcat7, MySql5.5.60sql
【項目包含內容】(見下圖):數據庫
【論文】 論文文章json
【數據庫設計】 數據庫腳本服務器
【文檔】 代碼詳情講解cookie
【項目源代碼】 Web項目源代碼網絡
【實例功能】
前臺:
1). 用戶模塊功能有:
* 用戶註冊:
> 表單頁面是jQuery作校驗(包含了ajax異步請求)
# 在輸入框失去焦點時進行校驗;
# 在提交時對全部輸入框進行校驗;
# 在輸入框獲得焦點時,隱藏錯誤信息。
> 表單頁面使用一次性圖形驗證碼;
> 在servlet中再次作了表單校驗。
> 註冊成功時,使用javaMail給註冊用戶發送激活郵件,郵件中包含用於激活的連接,連接包含激活碼參數;
* 用戶激活:經過激活碼查詢用戶,若是查詢不到用戶,那麼無效激活碼!激活碼使用uuid生成!
* 用戶登陸:
> 表單校驗與註冊功能相同;
> 登陸成功時會把當前用戶名保存到cookie中,爲了在登陸頁面的輸入框中顯示!
* 用戶退出:銷燬session
2). 分類模塊
* 查詢全部分類:
> 有1級和2級分類
> 在頁面中使用手風琴式菜單(Javascript組件)顯示分類。
3). 圖書模塊:
* 按分類查詢
* 按做者查詢
* 按出版社查詢
* 按書名模糊查詢
* 多條件組合查詢
* 按id查詢
除按id查詢外,其餘都是分頁查詢。
技術難點:
> 組合查詢:根據多個條件拼湊sql語句。
> 帶條件分頁查詢:條件可能會丟失。使用自定義的PageBean來傳遞分頁數據!
> 頁面上的分頁導航:頁碼列表的顯示很差計算!
4). 購物車模塊:
* 添加條目
* 修改條目數量
* 刪除條目
* 批量刪除條目
* 個人購物車
* 查詢被勾選條目
購物車沒有使用sesson或cookie,而是存儲到數據庫中。
技術難點:
> 添加條目時,若是兩次添加針對同一本書的條目,不是添加,而是合併;
> 修改數量時使用ajax時請求服務器端,服務器端返回json。
> 大量js代碼
5). 訂單模塊:
* 生成訂單
* 個人訂單
* 查看訂單詳細
* 訂單支付
* 訂單確認收貨
* 取消訂單
技術難點:
> 使用易寶在線支付平臺:
# 按照易寶支付範圍與易寶支付網關對接。
# 接收易寶的兩種應答機制,針對點對點應答給予回覆。
# 處理屢次應答照成的數據庫重複確認。
後臺
1). 管理員
* 管理員登陸
2). 分類管理
* 添加1級分類
* 添加2級分類: 須要爲2級分類指定所屬1級分類
* 編輯1級分類
* 編輯2級分類: 能夠修改所屬1級分類
* 刪除1級分類: 存在子分類時,不能刪除
* 刪除2級分類: 當前2級分類下存在圖書時不能刪除
* 查看全部分類
3). 圖書管理
* 各類查詢:與前臺相同
* 添加圖書:
> 上傳圖片
> 頁面中使用動態下拉列表顯示2級分類,當指定1級分類後,2級分類下拉列表中動態顯示該1級分類下全部2級分類名稱
* 修改圖書: 與添加圖書類似,也使用動態下拉列表
* 刪除圖書: 須要刪除圖書對應圖片,再刪除圖書
4). 訂單管理
* 各類查詢
* 訂單發貨
* 訂單取消
【項目配置】
1.c3p0-config.xml中修改數據源配置信息
<c3p0-config> <default-config> <property name="jdbcUrl"> <![CDATA[ jdbc:mysql://localhost:3306/goods?useUnicode=true&characterEncoding=UTF8&useServerPrepStmts=true&prepStmtCacheSqlLimit=256&cachePrepStmts=true&prepStmtCacheSize=256&rewriteBatchedStatements=true ]]> </property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="user">root</property> <property name="password">root</property> <property name="acquireIncrement">3</property> <property name="initialPoolSize">10</property> <property name="minPoolSize">2</property> <property name="maxPoolSize">10</property> </default-config> </c3p0-config>
2. 將 goods.sql 導入到數據庫中
【實例效果圖】
訪問連接: http://localhost:8080/goods/ 登陸信息: liSi/123