紙上得來終覺淺,絕知此事要躬行。
1.介紹springmvc
SpringMVC是基于Java實作的MVC設計模型的
請求驅動類型的輕量級Web架構
,能讓簡單的Java類成為請求的控制器,并且支援RESTful風格
1.一圖一demo
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN2XjlGcjAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL4FkaOhXW61ENFpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLygjN2ETM0ETMwITMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
流程:
①導入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流程圖一覽
過程:請求想通過前端控制器
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中配置的,如下
同樣,我們能通過依賴注入的方式配置自己的元件,比如視圖解析器,跟源碼能知道視圖解析器定義的類中有兩個重要的屬性,并且提供了set/get方法,這不正合我意嗎?咱知道spring的依賴注入原理啊
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執行流程,五大元件