Ch13 整合Spring MVC

Justin Lin
Justin LinTechnology / Community Evangelist at Free lancer
1
13
• 整合Spring MVC
學習目標
• 區別程式庫與框架
• 最小套用Spring MVC
• 逐步善用Spring MVC
• 使用Thymeleaf模版
2
程式庫或框架?
• 開發微網誌的過程中,有使用到幾個程式庫,
像是OWASP的HTML Sanitizer、H2 JDBC驅
動程式、Java Mail等
• 應用程式主要流程一直在你的控制之內,你
決定了何時要處理請求參數、取得模型物件、
轉發請求、顯示頁面等各式流程
3
程式庫或框架?
• 在開始使用框架之後,會發現框架主導了程
式運行的流程
• 你必須在框架的規範下定義某些類別,框架
會在適當時候調用你實作的程式
• 對應用程式的流程控制權被反轉了,現在是
框架在定義流程,由框架來呼叫你的程式,
而不是由你來呼叫框架。
4
Inversion of Control
5
程式庫或框架?
• 會被定位為框架,表示它對程式主要流程擁
有更多的控制權
• 框架本身是個半成品
• 要完成整個流程,必須在框架的流程規範下,
實現自定義元件
6
需要使用框架嗎?
• 使用程式庫時,開發者會擁有較高的自由度
• 使用框架時,開發者會受到較大的限制
• 換取而來的益處超越了犧牲掉的流程自由度,
才會使得使用框架具有意義
7
初步套用Spring MVC
• 在gossip專案上按右鍵執行「Configure/Add
Gradle Nature」
• 建立build.gradle檔案
8
9
初始前端控制器
10
組態
11
重構控制器
12
重構控制器
13
在web.xml宣告安全設定
14
注入服務物件與屬性
15
16
17
18
19
簡化控制器
20
21
22
23
24
25
建立表單物件
• JSR303規範了Java Validation API
• Spring可以整合JSR303
• 需要有個JSR303的實作品,在這邊打算使用
Hibernate Validator
26
建立表單物件
27
建立表單物件
28
建立表單物件
29
建立表單物件
30
關於Thymeleaf模版
• JSP已經過時了?
• JSP確實不是唯一的頁面呈現技術
• 如果使用Spring MVC,在其他模版引擎上,
能見度高的選擇之一是Thymeleaf
• 主打的特性之一是自然模版(Natural
template)
31
關於Thymeleaf模版
32
1 of 32

Recommended

1. JavaScript 起步走 by
1. JavaScript 起步走1. JavaScript 起步走
1. JavaScript 起步走Justin Lin
772 views20 slides
Ch09 整合資料庫 by
Ch09 整合資料庫 Ch09 整合資料庫
Ch09 整合資料庫 Justin Lin
468 views103 slides
Ch02 撰寫與設定Servlet by
Ch02 撰寫與設定ServletCh02 撰寫與設定Servlet
Ch02 撰寫與設定ServletJustin Lin
1K views37 slides
Ch13 整合 Spring MVC/Security by
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityJustin Lin
280 views58 slides
Ch01 簡介Web應用程式 by
Ch01 簡介Web應用程式Ch01 簡介Web應用程式
Ch01 簡介Web應用程式Justin Lin
1.7K views55 slides
CH1. 簡介 Web 應用程式 by
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式Justin Lin
1.2K views55 slides

More Related Content

What's hot

Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail by
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMailServlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMailJustin Lin
1.6K views7 slides
Ch03 請求與回應 by
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應Justin Lin
655 views74 slides
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應 by
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應Justin Lin
4.5K views66 slides
Ch10 Web 容器安全管理 by
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Justin Lin
153 views30 slides
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理 by
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理Justin Lin
1.9K views30 slides
Ch03 請求與回應 by
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應Justin Lin
236 views73 slides

What's hot(20)

Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail by Justin Lin
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMailServlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Justin Lin1.6K views
Ch03 請求與回應 by Justin Lin
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin655 views
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應 by Justin Lin
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Justin Lin4.5K views
Ch10 Web 容器安全管理 by Justin Lin
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin153 views
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理 by Justin Lin
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理
Justin Lin1.9K views
Ch03 請求與回應 by Justin Lin
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin236 views
Ch05 Servlet進階API、過濾器與傾聽器 by Justin Lin
Ch05 Servlet進階API、過濾器與傾聽器Ch05 Servlet進階API、過濾器與傾聽器
Ch05 Servlet進階API、過濾器與傾聽器
Justin Lin504 views
Ch06 使用JSP by Justin Lin
Ch06 使用JSP Ch06 使用JSP
Ch06 使用JSP
Justin Lin532 views
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫 by Justin Lin
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Justin Lin3.4K views
Share module by dpf2e
Share moduleShare module
Share module
dpf2e369 views
Ch04 會話管理 by Justin Lin
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin392 views
Ch06 使用 JSP by Justin Lin
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
Justin Lin250 views
Ch07 使用JSTL by Justin Lin
Ch07 使用JSTL Ch07 使用JSTL
Ch07 使用JSTL
Justin Lin431 views
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet by Justin Lin
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 ServletServlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Justin Lin6.1K views
整合資料庫 by Justin Lin
整合資料庫整合資料庫
整合資料庫
Justin Lin855 views
Ch09 整合資料庫 by Justin Lin
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin233 views
Ch02 撰寫與設定 Servlet by Justin Lin
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin352 views
Ch08 自訂標籤 by Justin Lin
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin382 views
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理 by Justin Lin
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Justin Lin2.5K views

Similar to Ch13 整合Spring MVC

How to ASP.NET MVC4 by
How to ASP.NET MVC4How to ASP.NET MVC4
How to ASP.NET MVC4Daniel Chou
987 views78 slides
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4 by
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練42016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4Duran Hsieh
368 views44 slides
Introduction to ASP.NET MVC and MVC 5 Features by
Introduction to ASP.NET MVC and MVC 5 FeaturesIntroduction to ASP.NET MVC and MVC 5 Features
Introduction to ASP.NET MVC and MVC 5 FeaturesJeff Chu
2.2K views42 slides
ASP.net MVC by
ASP.net MVCASP.net MVC
ASP.net MVCGuider Lee
456 views14 slides
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check by
Mvc架构在discuz!插件开发的应用 wps create_msoffice_checkMvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_checkCevin Cheung
647 views21 slides
ASP.Net MVC Framework by
ASP.Net MVC FrameworkASP.Net MVC Framework
ASP.Net MVC Framework國昭 張
1.5K views162 slides

Similar to Ch13 整合Spring MVC (20)

How to ASP.NET MVC4 by Daniel Chou
How to ASP.NET MVC4How to ASP.NET MVC4
How to ASP.NET MVC4
Daniel Chou987 views
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4 by Duran Hsieh
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練42016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
Duran Hsieh368 views
Introduction to ASP.NET MVC and MVC 5 Features by Jeff Chu
Introduction to ASP.NET MVC and MVC 5 FeaturesIntroduction to ASP.NET MVC and MVC 5 Features
Introduction to ASP.NET MVC and MVC 5 Features
Jeff Chu2.2K views
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check by Cevin Cheung
Mvc架构在discuz!插件开发的应用 wps create_msoffice_checkMvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
Cevin Cheung647 views
ASP.Net MVC Framework by 國昭 張
ASP.Net MVC FrameworkASP.Net MVC Framework
ASP.Net MVC Framework
國昭 張1.5K views
Asp.net core v1.0 by 國昭 張
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0
國昭 張254 views
Mock Server的应用与实践 by qi lei
Mock Server的应用与实践Mock Server的应用与实践
Mock Server的应用与实践
qi lei484 views
twMVC#01 | ASP.NET MVC 的第一次親密接觸 by twMVC
twMVC#01 | ASP.NET MVC 的第一次親密接觸twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC5K views
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式 by Justin Lin
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Justin Lin19.2K views
03.wls depoly jdbc by Meng He
03.wls depoly jdbc03.wls depoly jdbc
03.wls depoly jdbc
Meng He308 views
ASP.Net MVC2 简介 by Allen Lsy
ASP.Net MVC2 简介ASP.Net MVC2 简介
ASP.Net MVC2 简介
Allen Lsy520 views
谈谈模块化 by 衡锋 阳
谈谈模块化谈谈模块化
谈谈模块化
衡锋 阳925 views
Asp.net mvc網站的從無到有 by Wade Huang
Asp.net mvc網站的從無到有Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有
Wade Huang6.6K views
ASP.NET MVC 快速上手 by Study4TW
ASP.NET MVC 快速上手ASP.NET MVC 快速上手
ASP.NET MVC 快速上手
Study4TW1.1K views
twMVC#02 | ASP.NET MVC 從無到有 by twMVC
twMVC#02 | ASP.NET MVC 從無到有twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有
twMVC630 views
Asp.net mvc 從無到有 -twMVC#2 by twMVC
Asp.net mvc 從無到有 -twMVC#2Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2
twMVC2K views
twMVC#31網站上線了然後呢 by twMVC
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢
twMVC1.3K views

More from Justin Lin

Ch14 簡介 Spring Boot by
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring BootJustin Lin
872 views22 slides
Ch12 Spring 起步走 by
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走Justin Lin
274 views31 slides
Ch11 簡介 JavaMail by
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMailJustin Lin
157 views8 slides
Ch08 自訂標籤 by
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤Justin Lin
133 views54 slides
Ch07 使用 JSTL by
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTLJustin Lin
161 views74 slides
Ch05 Servlet 進階 API、過濾器與傾聽器 by
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器Justin Lin
204 views69 slides

More from Justin Lin(20)

Ch14 簡介 Spring Boot by Justin Lin
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin872 views
Ch12 Spring 起步走 by Justin Lin
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin274 views
Ch11 簡介 JavaMail by Justin Lin
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin157 views
Ch08 自訂標籤 by Justin Lin
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin133 views
Ch07 使用 JSTL by Justin Lin
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
Justin Lin161 views
Ch05 Servlet 進階 API、過濾器與傾聽器 by Justin Lin
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin204 views
Ch04 會話管理 by Justin Lin
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin238 views
14. 進階主題 by Justin Lin
14. 進階主題14. 進階主題
14. 進階主題
Justin Lin406 views
13.並行、平行與非同步 by Justin Lin
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin237 views
12. 除錯、測試與效能 by Justin Lin
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin153 views
11. 常用內建模組 by Justin Lin
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
Justin Lin149 views
10. 資料永續與交換 by Justin Lin
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
Justin Lin156 views
9. 資料結構 by Justin Lin
9. 資料結構9. 資料結構
9. 資料結構
Justin Lin292 views
8. open() 與 io 模組 by Justin Lin
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin245 views
7. 例外處理 by Justin Lin
7. 例外處理7. 例外處理
7. 例外處理
Justin Lin115 views
6. 類別的繼承 by Justin Lin
6. 類別的繼承6. 類別的繼承
6. 類別的繼承
Justin Lin166 views
5. 從模組到類別 by Justin Lin
5. 從模組到類別5. 從模組到類別
5. 從模組到類別
Justin Lin169 views
4. 流程語法與函式 by Justin Lin
4. 流程語法與函式4. 流程語法與函式
4. 流程語法與函式
Justin Lin188 views
3.型態與運算子 by Justin Lin
3.型態與運算子3.型態與運算子
3.型態與運算子
Justin Lin199 views
1. Python起步走 by Justin Lin
1. Python起步走1. Python起步走
1. Python起步走
Justin Lin663 views

Ch13 整合Spring MVC