SpringMVC

小公羊 發表於 2021-09-19
Spring

SpringMVC

啟動順序

1、 首先部署到本地,匯入Eclipse中的載入到伺服器中

在瀏覽器中輸入網址:http://localhost/springmvc/index

出現如下頁面表示部署成功:
在這裡插入圖片描述

2、 根據地址,http://localhost/springmvc/index的訪問流程

在這裡插入圖片描述

DispatcherServlet找到sping-xml下面的controller.IndexController資源

在IndexController去找到ModelAndView去找到對應的index檔案

在這裡插入圖片描述

配置的xml

web-xml

在這裡插入圖片描述

1)load-on-startup元素標記容器是否在啟動的時候就載入這個servlet(例項化並呼叫其init()方法)。

2)它的值必須是一個整數,表示servlet應該被載入的順序

3)當值為0或者大於0時,表示容器在應用啟動時就載入並初始化這個servlet;

4)當值小於0或者沒有指定時,則表示容器在該servlet被選擇時才會去載入。

5)正數的值越小,該servlet的優先順序越高,應用啟動時就越先載入。

6)當值相同時,容器就會自己選擇順序來載入。

所以,x,中x的取值1,2,3,4,5代表的是優先順序,而非啟動延遲時間。

spring-xml
在這裡插入圖片描述
Spring MVC的請求流程:

第一步:發起請求到前端控制器(DispatcherServlet)
第二步:前端控制器請求HandlerMapping查詢Handler可以根據xml配置、註解進行查詢
第三步:處理器對映器HandlerMapping向前端控制器返回Handler
第四步:前端控制器呼叫處理器介面卡去執行Handler
第五步:處理器介面卡去執行Handler
第六步:Handler執行完成給介面卡返回ModelAndView
第七步:處理器介面卡向前端控制器返回ModelAndView。ModelAndView是springmvc框架的一個底層物件,包括 Model和view
第八步:前端控制器請求檢視解析器去進行檢視解析,根據邏輯檢視名解析成真正的檢視(jsp)
第九步:檢視解析器向前端控制器返回View
第十步:前端控制器進行檢視渲染。檢視渲染將模型資料(在ModelAndView物件中)填充到request域
第十一步:前端控制器向使用者響應結果

\9. web.xml的配置

在這裡插入圖片描述

檢視配置

spring-xml在這裡插入圖片描述
java檔案中的配置在這裡插入圖片描述
效果:
在這裡插入圖片描述

使用註解

使用註解完成配置減少使用
在這裡插入圖片描述
配置修改如下:

1) 在spring-xml中加入:
在這裡插入圖片描述
2)IndexController修改為以下
在這裡插入圖片描述
顯示效果如圖:
在這裡插入圖片描述

使用註解後傳值

新建一個jsp檔案,顯示如下圖的介面:
在這裡插入圖片描述
jsp程式碼:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isELIgnored="false"%>
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>

	<form action="addPerson" method="post">
	身份證:<input type="text" name="idcard"/><br>
	名   字:<input type="text" name="name"/><br>
	<input type="submit" value="新增"/>
	
	</form>
</body>
</html>

java程式碼:controller層的:

package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import pojo.Person;

@Controller
public class PersonController {
	@RequestMapping("/addPerson")
	public ModelAndView addPerson(Person person) {
		//modelandview就是springMVC框架用來傳值的,我們理解成request的一種特殊形式即可,結構是map
		ModelAndView model = new ModelAndView("showPerson");
		model.addObject("person",person);
		return model;
	}
}

執行後的效果如下:
在這裡插入圖片描述
框架整體結構
在這裡插入圖片描述