根據B站視頻整理:https://www.bilibili.com/video/BV1Mt411G7A8?p=1
文章目錄
- 1、SringMVC 概念
- 1.1、三層架構
- 1.2、MVC模型
- 1.3、第一個SpringMVC程式
- 1.4、第一個SpringMVC程式執行流程
- 1.5、RequestMapping注解
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依賴
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
springmvc.xml組態檔,因為要開啟注解掃描和用mvc,所以要加上mvc和context,添加如下圖,

完整springmvc.xml,
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--開啟注解掃描-->
<context:component-scan base-package="com.lu"></context:component-scan>
<!--視圖決議器-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--開啟SpringMVC框架注解的支持-->
<mvc:annotation-driven/>
</beans>
3、撰寫index.jsp,在web.xml中添加攔截器,
index.jsp中在第一行添加,防止亂碼;在body標簽中添加a標簽,
<%--防止中文亂碼--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入門程式</h3>
<a href="hello">入門程式</a>
</body>
</html>
在web.xml中,添加攔截器和加載組態檔
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--加載springmvc組態檔-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--攔截器-->
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
load-on-startup元素標記容器是否應該在web應用程式啟動的時候就加載這個servlet,(實體化并呼叫其init()方法),- 它的值必須是一個整數,表示servlet被加載的先后順序,
- 如果該元素的
值為負數或者沒有設定,則容器會當Servlet被請求時再加載,- 如果值為
正整數或者0時,表示容器在應用啟動時就加載并初始化這個servlet,值越小,servlet的優先級越高,就越先被加載,值相同時,容器就會自己選擇順序來加載,
4、撰寫controller類,匯入tomcat服務器,
撰寫類HelloController
//控制器
@Controller
public class HelloController {
@RequestMapping(path = "/hello")
public String syaHello(){
System.out.println("Hello SpringMVC!");
return "success";
}
}
回傳的是一個success界面,在WEB-INF包下邊建一個pages包,在包里面建一個success.jsp,作為一個點擊后的結果,在springmvc.xml中也加了視圖決議器,為的是可以找到這個檔案,
撰寫success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入門成功</h3>
</body>
</html>
怎么匯入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添加標簽:
<a href="testRequestMapping">testRequestMapping</a>
在測驗類HelloController中添加::
//請求方式為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";
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/179131.html
標籤:其他
上一篇:從零到進階架構,一份覆寫全網所有技術點3283頁筆記、pdf教程
下一篇:干貨收藏 | 如何優化前端性能?
