開發工具:IDEA
數據庫:mysql
後端框架:ssm
前端框架:jquery,gridmanager插件,freemarker,bootstrap
前臺分爲輪播圖顯示,文章顯示,圖片顯示,視頻顯示
後臺分爲輪播圖管理,文章管理,圖片管理,視頻管理
用戶的登陸註冊註銷,記住我功能
文章模塊
通過數據庫查詢數據,封裝成一個pagebean對象,因爲gridmanager接收的數據格式,爲total:data,
然後通過gridmanager插件進行顯示,gridmanager發送請求會攜帶,當前頁和每頁數據條數,可以根據這個做出分頁,當前頁可以算出從第幾條數據開始,然後根據limit分頁
前臺數據展示,有三個文章類型,所以根據文章類型查詢,查詢的三個list封裝成一個map,回傳給前臺,前臺通過遍歷,展示數據
增加功能
通過靜態頁面化技術生成頁面,每個頁面就可以通過模板生成。這樣的好處就是減少了數據庫的壓力,避免每次都訪問數據庫,以空間換時間
修改功能
通過判斷是否有id來進行修改,修改創建新的頁面,要刪除以前的頁面
刪除功能
刪除改條數據的靜態頁面
點擊次數
前臺傳過來該頁面的url,通過url查詢該條數據,讓點擊數增加1
輪播圖
裏面有一個文件上傳功能,
增加:判斷是否有文件上傳,獲取輸入流,創建輸出流,通過IOutils長傳
隨機生成文件名
修改:判斷是否有id,是否有文件上傳,有,修改刪除以前的文件,沒有,修改文本內容
高級查詢
通過動態sql實現
登陸
給輸入框綁定失去焦點事件,通過ajax請求,前臺傳入用戶名,在數據庫查詢是否有該用戶,實時給前臺反饋,密碼也是一樣。實時判斷,如果有一個是錯誤的,不允許提交,我是通過給輸入框設置隱藏域,通過後臺傳過來的數據,來給隱藏域設置值,如果有該用戶,我給他設置true,沒有,我設置false,最後點擊登陸按鈕時候,我判斷是否兩個都是true,才允許提交,否則我回顯錯誤信息。登陸成功之後,往session域中存放該用戶,保證這次會話都有效。
註銷
清除session
記住我
整個判斷,再登陸成功之後,前臺設置的value值存在,創建cookie,往cookie中存入用戶名,密碼,然後設置跨域路徑,生命週期,響應給前臺,前臺通過document獲取cookie,判斷是否有用戶名,有就通過,截取所得一個數組,然後判斷是否是用戶名密碼,截取用戶名和密碼,回顯到表單
取消記住我,沒有存在value值,獲取cookie,判斷是否存在username和password,有就設置生命週期爲0,響應給前臺取消記住我
總結:
瞭解了springmvc執行流程
附上本人醜陋畫圖
遇到的兩個小問題:
1.在設計表的時候,多表對應問題,沒有使用Lombok,在構造實體只設置了帶參構造,沒有設置無參構造,不是一個完整的javabean。
2.通過gridmanager傳來的分頁屬性,直接通過繼承查詢,會空指針,因爲沒設置初始值