1、SringMVC 概念
1.1、三層架構
1、我們開發架構一般都是基於兩中形式:
一種是 Client/Server 架構(C/S架構),也就是客戶端/服務器;
另一種是 Browser/Server 架構(B/S架構),也就是瀏覽器/服務器。
2、在JavaEE開發種,幾乎全都是基於B/S架構的開發。在B/S架構中,又分成了三層架構。
3、三層架構
表現層:web層,用來和客戶端進行數據交互的,表現層一般採用MVC設計模型。
業務層:寫業務邏輯代碼
持久層:用來操作數據庫的
1.2、MVC模型
1、MVC是模型(model)-視圖(view)-控制器(controller)的縮寫,模型視圖控制器。
2、Model:數據模型,JavaBean的類,用來進行數據封裝。
3、View:指用JSP、HTML來展示數據給用戶
4、Controller:用來接受用戶的請求,整個流程的控制器。
5、角色:
前端控制器(DispatcherServlet)
處理映射器(HandlerMapping)
處理適配器(HandlerAdapter)
視圖解析器(ViewResolver)
處理器或頁面控制器(Controller)
驗證器(Validator)
命令對象(Command)
表單對象(From Object)
1.3、第一個SpringMVC程序
步驟:
1、建立一個maven項目,勾選web框架,創建java包和resource包,右擊,把它們作為source root和resource root。
2、導入pom依賴座標,在resources目錄下,新建配置文件springmvc.xml。
3、編寫index.jsp,在web.xml中添加攔截器。
4、編寫controller類,導入tomcat服務器。
5、運行測試
- 整個項目結構
詳細步驟:
1、建立一個maven項目,勾選web框架,創建java包和resource包,右擊,把它們作為source root和resource root,如下圖。
2、導入pom依賴座標,在resources目錄下,新建配置文件springmvc.xml。
pom依賴
<code> org.springframework spring-web 5.2.9.RELEASE org.springframework spring-webmvc 5.2.9.RELEASE org.springframework spring-context 5.2.9.RELEASE junit junit 4.11 test javax.servlet servlet-api 2.5 javax.servlet jsp-api 2.0 123456789101112131415161718192021222324252627282930313233343536/<code>
springmvc.xml配置文件。因為要開啟註解掃描和用mvc,所以要加上mvc和context,添加如下圖。
完整springmvc.xml。
<code> 12345678910111213141516171819202122232425/<code>
3、編寫index.jsp,在web.xml中添加攔截器。
index.jsp中在第一行添加,防止亂碼;在body標籤中添加a標籤。
<code> Title入門程序
入門程序 1234567891011/<code>
在web.xml中,添加攔截器和加載配置文件
<code> dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc.xml 1 dispatcherServlet / 123456789101112131415161718/<code>
load-on-startup 元素標記容器是否應該在web應用程序啟動的時候就加載這個servlet,(實例化並調用其init()方法)。它的值必須是一個整數,表示servlet被加載的先後順序。如果該元素的值為負數或者沒有設置,則容器會當Servlet被請求時再加載。如果值為正整數或者0時,表示容器在應用啟動時就加載並初始化這個servlet,值越小,servlet的優先級越高,就越先被加載。值相同時,容器就會自己選擇順序來加載。
4、編寫controller類,導入tomcat服務器。
編寫類HelloController
<code>//控制器 @Controller public class HelloController { @RequestMapping(path = "/hello") public String syaHello(){ System.out.println("Hello SpringMVC!"); return "success"; } } 12345678910/<code>
返回的是一個success界面。在WEB-INF包下邊建一個pages包,在包裡面建一個success.jsp,作為一個點擊後的結果,在springmvc.xml中添加了視圖解析器,為的是可以找到這個文件。
編寫success.jsp
<code> Title入門成功
123456789/<code>
怎麼導入tomcat,詳細看這篇文章:https://blog.csdn.net/qq_42524288/article/details/103304138
5、運行測試
運行後界面:
點擊入門程序後跳轉到hello界面:
1.4、第一個SpringMVC程序執行流程
1.5、RequestMapping註解
RequestMapping是一個用來處理請求地址映射的註解。
可以作用在類上和方法上。作用在類上,類中的方法都是以該路徑作為父類路徑。
RequestMapping註解有六個屬性
value
:指定請求的url。它和path屬性的作用一樣。method
:指定請求的方式。例如GET、POST、PUT、DELETE等。params
:指定請求中必須包含某些參數值是,才讓該方法處理。headers
:用於指定限制請求消息頭的條件。
在index.jsp添加標籤:
<code>testRequestMapping 1/<code>
在測試類HelloController中添加::
<code> //請求方式為post //@RequestMapping(value = "/testRequestMapping", method = {RequestMethod.POST}) //請求參數必須包含username=lu,否則請求失敗 //@RequestMapping(value = "/testRequestMapping",params = {"username=lu"}) //請求頭必須包含Accept,否則請求失敗 @RequestMapping(value = "/testRequestMapping",headers = {"Accept"}) public String testRequestMapping(){ System.out.println("測試RequestMapping..."); return "success"; }/<code>