01-JavaWeb專案-註冊功能-底層邏輯分析
阿新 • • 發佈:2018-11-14
註冊功能
【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中寫一個輸出語句,記錄資料處理邏輯的結果資訊
- 返回查詢結果