1. 程式人生 > >01-JavaWeb專案-註冊功能-底層邏輯分析

01-JavaWeb專案-註冊功能-底層邏輯分析

註冊功能

【web專案-註冊功能-邏輯分析/前臺後臺/三層架構/原生底層】

【技術實現:JavaScript/Ajax&json/Tomcat/MySQL/Spring-JDBC/Druid連線池】

前臺

JavaScript

  • 表單檢驗
    • 對每一個輸入框進行正則表示式的校驗,並繫結單擊事件
    • 判斷是否檢驗成功,並分別設定不同的css表現樣式
  • 失焦事件
    • 給每一個正則校驗輸入框繫結失焦事件,並傳遞響應的校驗方法名
  • 非同步請求
    • 給表單提交按鈕繫結一個提交事件,並判斷所有校驗方法是否都校驗成功
    • 如果所有校驗成功,傳送非同步請求,將表單物件序列化作為引數傳遞給後臺,最後接收後臺響應回來的資料進行判斷。
      • 如果註冊成功,跳轉註冊成功頁面,給使用者友好提示。
      • 如果註冊失敗,將後臺響應回來的錯誤資訊展示到當前頁面
    • 如果校驗不成功,則直接返回false,不提交表單

後臺

web層

  1. 為優化開發,簡化程式碼,去重,定義一個BaseServlet類。以後所有的訪問後臺資源路徑的servlet類都要繼承BaseServlet,便於統一管理不同類目的servlet的不同調用請求
  2. 再寫一個使用者的servlet類,繼承BaseServlet,定義一個使用者註冊方法,私有化宣告UserService業務物件,便於後面重複呼叫該物件
  3. 先判斷驗證碼是否正確,減輕訪問資料庫的壓力
    1. 在驗證碼的servlet類中,通過session域物件設定驗證碼的值
    2. 通過request物件獲取session物件,並獲取到後臺自動設定的驗證碼的值
    3. 獲取到驗證碼後,應立即移除session中驗證碼的屬性值,讓驗證碼只能被只用一次,提高安全性
    4. 如果驗證碼對比失敗,則直接寫回失敗資訊,封裝為一個資訊物件,並將資訊物件轉為json物件返回給前臺,最後return
    5. 如果驗證碼對比成功,繼續進行下一步
  4. 接收前臺請求傳送的資料,並利用工具類轉成一個user物件封裝資料
  5. 呼叫service物件的使用者註冊方法,並將封裝好的user物件作為引數傳遞過去,返回值為布林型別
  6. 判斷是否註冊成功,分別會寫成功或失敗的資訊,封裝到info物件中,將info物件轉成json物件,響應給前臺

service層

  1. 定義一個使用者業務邏輯層的介面,再定義一個使用者業務邏輯層介面的實現類,在實現類裡面進行業務邏輯的處理
  2. 私有化宣告一個數據訪問物件,便於重複呼叫
  3. 定義一個使用者註冊的方法,先呼叫dao物件的根據使用者名稱查詢使用者的方法
    • 如果使用者存在,不為null,則直接返回false
    • 如果使用者不存在,則繼續執行下一步
  4. 給使用者設定一個啟用碼,作為判斷啟用狀態的唯一標識。同時再給使用者設定啟用狀態為’N’
  5. 呼叫dao物件儲存使用者資訊的方法,無返回值
  6. 利用郵件工具類,給使用者註冊郵箱傳送啟用郵件。傳遞引數:使用者註冊郵箱、啟用跳轉頁面(繫結啟用碼引數)、標題資訊
  7. 返回true

dao層

  1. 定義一個使用者表的資料處理介面,再定義一個使用者表資料處理介面的實現類,在實現類裡面進行對使用者表的CRUD操作
  2. 私有化宣告一個JdbcTemplate物件。依賴於資料來源DataSource(使用Druid連線池)
  3. 呼叫template物件的方法,通過使用者名稱查詢使用者表是否存在該使用者。如果有返回值,最好進行try…catch,並在catch中寫一個輸出語句,記錄資料處理邏輯的結果資訊
  4. 返回查詢結果