天天看點

springMVC架構-認識springMVC《一》

springMVC是什麼

SpringMVC 是類似于 Struts2 的一個 MVC 架構,它是屬于Spring基本架構裡面的一個組成部分,屬于SpringFrameWork的後續産品,已經融合在Spring Web Flow裡面,是以我們在後期和 Spring 進行整合的時候,幾乎不需要别的什麼配置。

spring web MVC 等價于springMVC

springMVC架構-認識springMVC《一》

spring源碼-包含springmvc

springMVC架構-認識springMVC《一》

springMVC有什麼用

 1、​清晰的角色劃分​:控制器(controller)、驗證器(validator)、指令對象(command obect)、表單對象(form object)、模型對象(model object)、Servlet分發器(DispatcherServlet)、處理器映射(handler mapping)、試圖解析器(view resoler)等等。每一個角色都可以由一個專門的對象來實作。

2、​強大而直接的配置方式​:将架構類和應用程式類都能作為JavaBean配置,支援跨多個context的引用,例如,在web控制器中對業務對象和驗證器validator)的引用。

3、​可适配、非侵入​:可以根據不同的應用場景,選擇何事的控制器子類(simple型、command型、from型、wizard型、multi-action型或者自定義),而不是一個單一控制器(比如Action/ActionForm)繼承。

4、​可重用的業務代碼​:可以使用現有的業務對象作為指令或表單對象,而不需要去擴充某個特定架構的基類。

5、​可定制的綁定(binding)和驗證(validation)​:比如将類型不比對作為應用級的驗證錯誤,這可以保證錯誤的值。再比如本地化的日期和數字綁定等等。在其他某些架構中,你隻能使用字元串表單對象,需要手動解析它并轉換到業務對象。

6、​可定制的handler mapping和view resolution​:Spring提供從最簡單的URL映射,到複雜的、專用的定制政策。與某些web MVC架構強制開發人員使用單一特定技術相比,Spring顯得更加靈活。

7、​靈活的model轉換​:在Springweb架構中,使用基于Map的鍵/值對來達到輕易的與各種視圖技術內建。

8、​Spring Bean的生命周期可以被限制在目前的HTTp Request或者HTTp Session​。準确的說,這并非Spring MVC架構本身特性,而應歸屬于Spring MVC使用的WebApplicationContext容器。

springMVC怎麼用

思維導圖位址:https://www.processon.com/view/link/5c822847e4b0ed6b42f9a783

springMVC架構-認識springMVC《一》

Controller-編碼過濾器

如果沒有設定編碼處理,那Controller擷取的中文入參,就會出現亂碼!出現亂碼!出現亂碼!

springMVC架構-認識springMVC《一》

解決方案:

第1步、在web.xml設定過濾編碼器。

springMVC架構-認識springMVC《一》
<filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <!--強制覆寫之前的編碼格式-->
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>      

第2步:

用idea tomcat插件時:設定編碼

<uriEncoding>UTF-8</uriEncoding>      
springMVC架構-認識springMVC《一》

如果是tomcat 伺服器,請到tomcat服務下 \conf\server.xml設定編碼

<Connector 
               port="9002" protocol="org.apache.coyote.http11.Http11Protocol"
               connectionTimeout="20000"
               redirectPort="8443"  URIEncoding="UTF-8"/>      

設定後的效果: