註冊功能
【web項目-註冊功能-邏輯分析/前臺後臺/三層架構/原生底層】
【技術實現:JavaScript/Ajax&json/Tomcat/MySQL/Spring-JDBC/Druid連接池】
前臺
JavaScript
- 表單檢驗
- 對每一個輸入框進行正則表達式的校驗,並綁定單擊事件
- 判斷是否檢驗成功,並分別設置不同的css表現樣式
- 失焦事件
- 給每一個正則校驗輸入框綁定失焦事件,並傳遞響應的校驗方法名
- 異步請求
- 給表單提交按鈕綁定一個提交事件,並判斷所有校驗方法是否都校驗成功
- 如果所有校驗成功,發送異步請求,將表單對象序列化作爲參數傳遞給後臺,最後接收後臺響應回來的數據進行判斷。
- 如果註冊成功,跳轉註冊成功頁面,給用戶友好提示。
- 如果註冊失敗,將後臺響應回來的錯誤信息展示到當前頁面
- 如果校驗不成功,則直接返回false,不提交表單
後臺
web層
- 爲優化開發,簡化代碼,去重,定義一個BaseServlet類。以後所有的訪問後臺資源路徑的servlet類都要繼承BaseServlet,便於統一管理不同類目的servlet的不同調用請求
- 再寫一個用戶的servlet類,繼承BaseServlet,定義一個用戶註冊方法,私有化聲明UserService業務對象,便於後面重複調用該對象
- 先判斷驗證碼是否正確,減輕訪問數據庫的壓力
- 在驗證碼的servlet類中,通過session域對象設置驗證碼的值
- 通過request對象獲取session對象,並獲取到後臺自動設置的驗證碼的值
- 獲取到驗證碼後,應立即移除session中驗證碼的屬性值,讓驗證碼只能被只用一次,提高安全性
- 如果驗證碼對比失敗,則直接寫回失敗信息,封裝爲一個信息對象,並將信息對象轉爲json對象返回給前臺,最後return
- 如果驗證碼對比成功,繼續進行下一步
- 接收前臺請求發送的數據,並利用工具類轉成一個user對象封裝數據
- 調用service對象的用戶註冊方法,並將封裝好的user對象作爲參數傳遞過去,返回值爲布爾類型
- 判斷是否註冊成功,分別會寫成功或失敗的信息,封裝到info對象中,將info對象轉成json對象,響應給前臺
service層
- 定義一個用戶業務邏輯層的接口,再定義一個用戶業務邏輯層接口的實現類,在實現類裏面進行業務邏輯的處理
- 私有化聲明一個數據訪問對象,便於重複調用
- 定義一個用戶註冊的方法,先調用dao對象的根據用戶名查找用戶的方法
- 如果用戶存在,不爲null,則直接返回false
- 如果用戶不存在,則繼續執行下一步
- 給用戶設置一個激活碼,作爲判斷激活狀態的唯一標識。同時再給用戶設置激活狀態爲’N’
- 調用dao對象保存用戶信息的方法,無返回值
- 利用郵件工具類,給用戶註冊郵箱發送激活郵件。傳遞參數:用戶註冊郵箱、激活跳轉頁面(綁定激活碼參數)、標題信息
- 返回true
dao層
- 定義一個用戶表的數據處理接口,再定義一個用戶表數據處理接口的實現類,在實現類裏面進行對用戶表的CRUD操作
- 私有化聲明一個JdbcTemplate對象。依賴於數據源DataSource(使用Druid連接池)
- 調用template對象的方法,通過用戶名查詢用戶表是否存在該用戶。如果有返回值,最好進行try…catch,並在catch中寫一個輸出語句,記錄數據處理邏輯的結果信息
- 返回查詢結果