SpringMVC詳細示例實戰教程

一、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發生的異常

 四、自動匹配參數

五、自動裝箱

  1. 編寫一個Person實體類

2.在Controller裏編寫方法

六、使用InitBinder來處理Date類型的參數

七、向前臺傳遞參數

前臺可在Request域中取到"p"

 八、使用Ajax調用

前臺用下面的Jquery代碼調用



九、在Controller中使用redirect方式處理請求

十、文件上傳

  1.需要導入兩個jar包

  2.在SpringMVC配置文件中加入

3.方法代碼

4.前臺form表單

十一、使用@RequestParam註解指定參數的name

十二、RESTFul風格的SringMVC

  1. RestController

2.form表單發送put和delete請求   在web.xml中配置

在前臺可以用以下代碼產生請求

 十三、返回json格式的字符串

  1.導入以下jar包

  2.方法代碼

十四、異常的處理

  1. 處理局部異常(Controller內)

2.處理全局異常(所有Controller)

3.另一種處理全局異常的方法   在SpringMVC配置文件中配置

error是出錯頁面

 十五、設置一個自定義攔截器

  1. 創建一個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:

  1. 因爲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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章