一、SpringMVC基礎入門,創建一個HelloWorld程序
1.首先,導入SpringMVC需要的jar包。
2.添加Web.xml配置文件中關於SpringMVC的配置
3.在src下添加springmvc-servlet.xml配置文件
4.在WEB-INF文件夾下創建名爲jsp的文件夾,用來存放jsp視圖。創建一個hello.jsp,在body中添加“Hello World”。
5.建立包及Controller,如下所示
6.編寫Controller代碼
7.啓動服務器,鍵入 http://localhost:8080/項目名/mvc/hello
二、配置解析
1.Dispatcherservlet DispatcherServlet是前置控制器,配置在web.xml文件中的。攔截匹配的請求,Servlet攔截匹配規則要自已定義,把攔截下來的請求,依據相應的規則分發到目標Controller來處理,是配置spring MVC的第一步。
2.InternalResourceViewResolver 視圖名稱解析器 3.以上出現的註解 @Controller 負責註冊一個bean 到spring 上下文中 @RequestMapping 註解爲控制器指定可以處理哪些 URL 請求
三、SpringMVC常用註解
@Controller 負責註冊一個bean 到spring 上下文中 @RequestMapping 註解爲控制器指定可以處理哪些 URL 請求 @RequestBody 該註解用於讀取Request請求的body部分數據,使用系統默認配置的HttpMessageConverter進行解析,然後把相應的數據綁定到要返回的對象上 ,再把HttpMessageConverter返回的對象數據綁定到 controller中方法的參數上 @ResponseBody 該註解用於將Controller的方法返回的對象,通過適當的HttpMessageConverter轉換爲指定格式後,寫入到Response對象的body數據區 @ModelAttribute 在方法定義上使用 @ModelAttribute 註解:Spring MVC 在調用目標處理方法前,會先逐個調用在方法級上標註了@ModelAttribute 的方法 在方法的入參前使用 @ModelAttribute 註解:可以從隱含對象中獲取隱含的模型數據中獲取對象,再將請求參數 –綁定到對象中,再傳入入參將方法入參對象添加到模型中 @RequestParam 在處理方法入參處使用 @RequestParam 可以把請求參 數傳遞給請求方法 @PathVariable 綁定 URL 佔位符到入參 @ExceptionHandler 註解到方法上,出現異常時會執行該方法 @ControllerAdvice 使一個Contoller成爲全局的異常處理類,類中用@ExceptionHandler方法註解的方法可以處理所有Controller發生的異常
四、自動匹配參數
五、自動裝箱
編寫一個Person實體類
2.在Controller裏編寫方法
六、使用InitBinder來處理Date類型的參數
七、向前臺傳遞參數
前臺可在Request域中取到"p"
八、使用Ajax調用
前臺用下面的Jquery代碼調用
九、在Controller中使用redirect方式處理請求
十、文件上傳
1.需要導入兩個jar包
2.在SpringMVC配置文件中加入
3.方法代碼
4.前臺form表單
十一、使用@RequestParam註解指定參數的name
十二、RESTFul風格的SringMVC
RestController
2.form表單發送put和delete請求 在web.xml中配置
在前臺可以用以下代碼產生請求
十三、返回json格式的字符串
1.導入以下jar包
2.方法代碼
十四、異常的處理
處理局部異常(Controller內)
2.處理全局異常(所有Controller)
3.另一種處理全局異常的方法 在SpringMVC配置文件中配置
error是出錯頁面
十五、設置一個自定義攔截器
創建一個MyInterceptor類,並實現HandlerInterceptor接口
2.在SpringMVC的配置文件中配置
3.攔截器執行順序
十六、表單的驗證(使用Hibernate-validate)及國際
1.導入Hibernate-validate需要的jar包
(未選中不用導入)
2.編寫實體類User並加上驗證註解
ps:@Past表示時間必須是一個過去值 3.在jsp中使用SpringMVC的form表單
ps:path對應name 4.Controller中代碼
ps:
因爲jsp中使用了modelAttribute屬性,所以必須在request域中有一個"user". 2.@Valid 表示按照在實體上標記的註解驗證參數 3.返回到原頁面錯誤信息回回顯,表單也會回顯 4.錯誤信息自定義 在src目錄下添加locale.properties
在SpringMVC配置文件中配置
6.國際化顯示 在src下添加locale_zh_CN.properties
locale.properties中添加
創建一個locale.jsp
在SpringMVC中配置
<!-- make the jsp page can be visited -->
<
mvc:view-controller
path
=
"/locale"
view-name
=
"locale"
/>
讓locale.jsp在WEB-INF下也能直接訪問
最後,訪問locale.jsp,切換瀏覽器語言,能看到賬號和密碼的語言也切換了
十七、壓軸大戲--整合SpringIOC和SpringMVC
1.創建一個test.SpringMVC.integrate的包用來演示整合,並創建各類
2.User實體類
3.UserService類
4.UserController
5.Spring配置文件 在src目錄下創建SpringIOC的配置文件applicationContext.xml
在Web.xml中添加配置
6.在SpringMVC中進行一些配置,防止SpringMVC和SpringIOC對同一個對象的管理重合
十八、SpringMVC詳細運行流程圖
十九、SpringMVC與struts2的區別
1、springmvc基於方法開發的,struts2基於類開發的。springmvc將url和controller裏的方法映射。映射成功後springmvc生成一個Handler對象,對象中只包括了一個method。方法執行結束,形參數據銷燬。springmvc的controller開發類似webservice開發。 2、springmvc可以進行單例開發,並且建議使用單例開發,struts2通過類的成員變量接收參數,無法使用單例,只能使用多例。 3、經過實際測試,struts2速度慢,在於使用struts標籤,如果使用struts建議使用jstl。