Spring實戰 | 第二部分 Web中的Spring(第五章 構建Spring Web應用程式)
第五章 構建Spring Web應用程式
對映請求到Spring控制器
透明地繫結表單引數
校驗表單提交
一、Spring MVC起步
1、跟蹤spring MVC的請求
在請求離開瀏覽器時,會帶有使用者所請求內容的資訊,至少會包含請求的URL。但是還可能帶有其它的資訊,例如使用者提交的表單資訊。
請求旅程的第一站時候Spring的DispatcherServlet。與大多數基於java的web框架一樣,spring MVC所有的請求都會通過一個前端控制器(front controller)servlet。前端控制器是常用的web應用程式模式,在這裡一個單例項的servlet將請求委託給應用程式的其它元件來執行實際的處理。在springMVC中,DispatcherServlet就是前端控制器。
DispatcherServlet的任務時將請求傳送給spring MVC控制器(controller)。控制器是一個用於處理請求的spring元件。在典型的應用程式中可能會有多個控制器,DispatcherServlet需要知道應該將請求傳送給哪個控制器。所以DispatcherServlet以會查詢一個或多個處理器對映(handler mapping)來確定請求的下一站在哪裡。處理器對映會根據請求所攜帶的URL資訊來進行決策。
一旦選擇了合適的控制器,DispatcherServlet會將請求傳送給選中的控制器。到了控制器,請求會將使用者提交的資訊發給控制器,並等待其處理這些資訊。
控制器在完成邏輯處理後,通常會產生一些資訊,這些資訊需要返回給使用者並在瀏覽器上顯示。這些資訊被稱為模型(model)。不過僅僅給使用者返回原始的資訊是不夠的,這些資訊需要以使用者友好的方式進行格式化,一般會是HTML。所以,資訊需要傳送一個檢視(view),通常會是JSP。
控制器所做的最後一件事是將模型資料打包,並且標示出用於渲染輸出的檢視名。它接下來將請求連同模型和檢視名傳送回DispatcherServlet。
這樣,控制器就不會與特定的檢視相耦合,傳遞給DispatcherServlet的檢視名並不直接標示某個特定的JSP。
2、搭建spring MVC
3、Spittr應用簡介
二、編寫基本的控制器
在springMVC中,控制器只是方法上添加了@RequestMapping註解的類,這個註解聲明瞭它們所要處理的請求。
package oschina; @Controller public class HomeController{ @RequestMapping(value="/",method=GET) public String home(){ return "home"; } }
1、測試控制器
2、定義類級別的請求處理
3、傳遞模型資料到檢視中
三、接受請求的輸入
未完待續...
Spring in action有點看不動了,到此為止吧,不煎熬了...