閱讀314 返回首頁    go 阿裏雲 go 技術社區[雲棲]


《Spring 3.0就這麼簡單》——1.2 實例功能概述

本節書摘來自異步社區《Spring 3.0就這麼簡單》一書中的第1章,第1.2節,作者: 陳雄華 , 林開雄著,更多章節內容可以訪問雲棲社區“異步社區”公眾號查看

1.2 實例功能概述

1.2.1 比Hello World更適用的實例
快速對Spring有一個切身的認識,沒有什麼比通過一個實際的例子更適合的了。Hello World是比較經典的入門實例,但Hello World太過簡單,很難展現Spring的全貌,為了讓Spring的功能輪廓更加清晰,通過一個功能涵蓋麵更廣的景區網站登錄模塊替換經典的Hello World實例。選擇登錄功能模塊是出於以下3個原因。

大家對於登錄模塊的業務功能再熟悉不過了,無須在業務功能介紹上花費時間。
登錄模塊麻雀雖小,五髒俱全,它涵蓋了持久層數據訪問操作、業務層事務管理以及展現層MVC等企業應用常見的功能。
本書希望通過一個景區網站貫穿始終,以便能夠由點及麵,使讀者在單純技術性學習的酣戰中深刻理解應用程序的整體開發流程。
Spring擁有持久層、業務層和展現層的“原生技術”,分別是Spring JDBC、聲明式事務和Spring MVC。為了充分展現Spring本身的魅力,在本章中僅使用Spring的這些原生技術,在以後的章節中,我們將學習其他的持久層和展現層技術,隻要用戶願意,就可以平滑地將其過渡到其他技術實現中。

1.2.2 實例功能簡介
景區網站登錄模塊的功能很簡單,首先登錄頁麵提供一個帶用戶名/密碼的輸入表單,用戶填寫並提交表單後,服務端程序檢查是否有匹配的用戶名/密碼。如果用戶名/密碼不匹配,返回到登錄頁麵,並給出提示。如果用戶名/密碼匹配,記錄用戶的成功登錄日誌,更新用戶的最後登錄時間和IP地址,然後重定向到景區後台歡迎頁麵,如圖1-2所示。

在持久層擁有兩個DAO類,分別是UserDao和LoginLogDao,在業務層對應一個業務類UserService,在展現層擁有一個LoginController類和兩個JSP頁麵,分別是登錄頁麵login.jsp和歡迎頁麵main.jsp。

下麵通過如圖1-3所示的時序圖來描述景區網站登錄模塊的整體交互流程。

(1)首先用戶訪問login.jsp,返回帶用戶名/密碼表單的登錄頁麵。

screenshot

圖1-3 登錄模塊整體交互流程

(2)用戶在登錄頁麵輸入用戶名/密碼,提交表單到服務器,Spring根據配置調用LoginController控製器來響應登錄請求。

(3)LoginController調用UserService#hashMatchUser()方法,根據用戶名和密碼查詢是否存在匹配的用戶,UserService內部通過調用持久層的UserDao完成具體的數據庫訪問操作。

(4)如果不存在匹配的用戶,重定向到login.jsp頁麵,並報告錯誤,否則到下一步。

(5)LoginController調用UserService#findUserByUserName()方法,加載匹配的User對象並更新用戶最近一次的登錄時間和登錄IP地址。

(6)LoginController調用UserService#loginSuccess()方法,進行登錄成功的業務處理,創建一個LoginLog對象,並利用LoginLogDao將其插入數據庫中。

(7)重定向到歡迎頁麵main.jsp,歡迎頁麵產生響應返回給用戶。

實例的所有程序代碼都位於chapter1目錄下,本章後麵的內容將逐一實現以上步驟的功能,完成這個實例的所有細節。

最後更新:2017-05-31 14:01:43

  上一篇:go  國家電網應用北鬥精準服務開展規模化應用
  下一篇:go  《Spring 3.0就這麼簡單》——第1章 快速入門 1.1 Spring概述