本系統分爲兩個模塊,普通讀者模塊和圖書管理員模塊。在登錄時選擇不一樣的登陸界面進行身份驗證。html
普通讀者模塊:實現讀者的借書、還書、查詢書籍、我的信息等功能。ajax
圖 1 用戶登陸部分代碼數據庫
管理員模塊:實現圖書管理員的書籍管理、用戶管理、借閱管理。json
圖 2 管理員登錄部分代碼瀏覽器
圖 3 用戶借書部分代碼服務器
圖 4 用戶還書部分代碼網絡
布爾類型返回至json,json數據傳至html頁面 session
圖 5 管理員錄入新書部分代碼app
圖 6 類別查詢書籍結果部分代碼函數
圖 7 查詢全部書籍種類部分代碼
表現層的實現主要是表格和模態框,經過Thymeleaf模板引擎接收數據和部分js接收來自後臺的數據。
①登陸界面:
圖 8 用戶登陸界面
圖 9 管理員登錄界面
登陸採用json提交用戶名和密碼,在後臺實現登錄用戶的查詢,若是返回的用戶存在(/isUserExist /isAdminExist)則跳入index頁面。
圖 10 JQuery校驗管理員用戶名和密碼
圖 11 JQurey校驗普通用戶用戶名和密碼
將身份信息部分存入session中,登錄成功:
圖 12 登陸狀態展現代碼
圖 13 登陸狀態展現
②登陸後的index頁面
普通讀者端:
圖 14 普通讀者端登陸界面
側邊導航欄的代碼是相同的,經過li標籤和js實現開合效果
圖 15 左側導航欄代碼
圖 16 垂直導航欄子功能代碼
③一些功能頁面
管理:
圖 17 添加書籍界面
圖 18 新建類別界面
圖 19 查詢用戶界面
圖 20 新增用戶界面
圖 21 借書記錄界面
圖 22 用戶借書界面
圖 23 用戶還書界面
圖 24 查詢書籍界面
圖 25 我的信息界面
圖 25 修改信息界面
剛開始使用攔截器沒有注意靜態資源的問題,致使首頁jQuery等靜態資源嘗試從localhost加載產生異常,如圖。
圖 26 未加載靜態資源
圖 27 瀏覽器開發者工具網絡加載狀態
通過排查發現,攔截器要放開不須要登陸的其餘全部能夠訪問的路徑,包括靜態資源的路徑,通過幾番嘗試,摸索出來了合適的結果
圖 28 資源路徑
圖 29 過濾器部分代碼
圖 30 錯誤代碼500/502
JDBC和Mapping配置有誤
圖 31 靜態資源路徑src路徑
靜態資源路徑src路徑指向有誤
以借書還書功能爲例:
①用戶輸入書籍ID後,點擊submit提交表單
圖 32 用戶借書界面
圖 33 界面實現代碼
②Jquery開始處理submit,調用borrowingBook函數
圖 34 借書部分Jquery代碼
③borrowingBook實現,ajax發起請求,成功獲得json返回的數據,彈窗借書的狀態,失敗則彈窗失敗
圖 35 borrowingBook實現代碼
④UserController負責接收處理ajax的請求。
圖 36 接受處理請求代碼
⑤調用service接口中借書處理的API.
圖 37 調用service API處理借書代碼
⑥借書操做API的具體實現。
首先,從session得到當前用戶名。
而後,檢查該書是否可借,從借書記錄表中查詢該書是否已借出,若已借出則返回false。
最後,增長一條借書記錄。
完成借書操做,返回true。
圖 38 借書操做API實現代碼
⑦還書操做API的實現。
首先,從session得到當前用戶名。
而後,刪除數據庫中user_d等於userId,book_id等於bookId的記錄。
完成還書操做,返回true。
圖 39 還書操做API的實現代碼