天天看點

1.springmvc_由淺入深springmvc

紙上得來終覺淺,絕知此事要躬行。

1.介紹springmvc

SpringMVC是基于Java實作的MVC設計模型的

請求驅動類型的輕量級Web架構

,能讓簡單的Java類成為請求的控制器,并且支援RESTful風格

1.一圖一demo

1.springmvc_由淺入深springmvc

流程:

①導入springmvc依賴坐标

②在web.xml配置springmvc核心控制器(DispatcherServlet和核心配置檔案的位置)

③建立Controller類和視圖頁面

④在配置檔案中開啟元件掃描

2.spring內建springmvc

在web.xml中配置如下

<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!--初始化全局參數-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    <!--spring前端控制器-->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
           

2.詳解

1.springmvc流程圖一覽

1.springmvc_由淺入深springmvc

過程:請求想通過前端控制器

DispatcherServlet

,會調用

HandlerMapping

處理器映射器,會傳回一串執行鍊(請求不止會通路一個Controller還會經曆filter,會傳回執行的流程),會調用

HandlerAdapter

處理器擴充卡,而具體指向的是

Controller

(具體的處理器),會傳回

ModelAndView

教給

DispatherServlet

,再傳給

ViewReslover

視圖解析器,傳回具體的View,再交由View進行渲染視圖,再響應

終上所述:

springmvc的五大元件包括:

DispatcherServlet

,

Handlermapping

,

HandlerAdapter

,

Controller

,

ViewResolver

2.springmvc注解解析

@RequestMapping

屬性包括:

value:用于指定請求的URL

method:用于指定請求的方式(RequestMethod枚舉中定義了很多請求方式)

params:用于指定限制請求參數的條件,支援簡單的表達式

//params中表示必須要有名為username參數
@RequestMapping(value = "quick1",method = RequestMethod.DELETE,params = {"username"})
    public String quick1(){
        return "success.jsp";
    }
           

3.springmvc的xml配置解析(配置視圖解析器)

Springmvc的預設配置都是DispatcherServlet.properties中配置的,如下

1.springmvc_由淺入深springmvc

同樣,我們能通過依賴注入的方式配置自己的元件,比如視圖解析器,跟源碼能知道視圖解析器定義的類中有兩個重要的屬性,并且提供了set/get方法,這不正合我意嗎?咱知道spring的依賴注入原理啊

1.springmvc_由淺入深springmvc

spring-mvc.xml檔案中配置如下

<!--增加視圖解析器的前字尾-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/jsp"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
           

當現在配置這行配置,咱就不會太疑惑了吧,

prefix

表示字首

suffix

表示字尾當需要調整/jsp/index.jsp時,咱隻需要知道傳回是index就行了,最後經過前字尾拼接成了/jsp/index.jsp

總結,本章節主要介紹springmvc的簡單使用,以及一些簡單的配置,需要掌握的是springmvc執行流程,五大元件