一、SpringMVC簡介 1、什麼是MVC MVC是一種軟體架構的思想,將軟體按照模型、視圖、控制器來劃分 **M:**Model,模型層,指工程中的JavaBean,作用是處理數據 JavaBean分為兩類: 一類稱為實體類Bean:專門存儲業務數據的,如Student、User等 一類稱為業務 ...
一、SpringMVC簡介
1、什麼是MVC
MVC是一種軟體架構的思想,將軟體按照模型、視圖、控制器來劃分
M:Model,模型層,指工程中的JavaBean,作用是處理數據
JavaBean分為兩類:
- 一類稱為實體類Bean:專門存儲業務數據的,如Student、User等
- 一類稱為業務處理Bean:指Service或Dao對象,專門用於處理業務邏輯和數據訪問
V:View,視圖層,指工程中的html或jsp等頁面,作用是與用戶進行交互,展示數據
C:Controller,控制層,指工程中的servlet,作用是接收請求和響應瀏覽器
MVC的工作流程:
用戶通過視圖層發送請求到瀏覽器,在伺服器中請求被Controller接收,Controller調用相應的Model層處理請求,處理完畢將結果返回到Controller,Controller在根據請求處理的結果找到相應的View視圖,渲染數據後最終響應給瀏覽器
2、什麼是SpringMVC
SpringMVC是Spring的一個後續產品,是Spring的一個子項目
SpringMVC是Spring為表述層開發提供的一整套完備的解決方案,在表述層框架經Strust、WebWork、Strust2等諸多產品的歷代更迭之後,目前業界普遍選擇了SpringMVC作為Java EE項目表述層開發的首選方案
註:三層架構分為表述層(或表示層)、業務邏輯層、數據訪問層、表述層表示前臺頁面和後臺servlet
3、SpringMVC的特點
- Spring家族原生產品,與IOC容器等基礎設施無縫對接
- 基於原生的Servlet,通過了功能強大的前端控制器DispatcherServlet,對請求和響應進行統一處理
- 表述層各細分領域需要解決的問題全方位覆蓋,提供全面解決方案
- 代碼清新簡潔,大幅度提升開發效率
- 內部組件化程度高,可插拔式組件即插即用,想要什麼功能配置相應組件即可
- 性能卓著,尤其適合現代大型、超大型互連網項目要求
二、搭建環境
1、開發環境
IDE:IDEA:2020.3.4
構建工具:maven 3.8.6
伺服器:tomcat 9
Spring版本
2、創建maven工程
(1)添加web模塊
(2)打包方式:war
(3)引入依賴
<?xml version="1.0" encoding="UTF-8"?>
<!--Maven作用:1.用來做項目構建 2.項目jar包管理-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>springMVC_demo1</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<!-- SpringMVC-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.23</version>
</dependency>
<!-- 日誌-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.3</version>
<scope>test</scope>
</dependency>
<!-- ServletAPI-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<!-- 依賴範圍:provided,代表伺服器已經提供-->
<scope>provided</scope>
</dependency>
<!-- thymeleaf和spring5整合包-->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.1.0.M3</version>
</dependency>
</dependencies>
</project>
3、配置web.xml
註冊SpringMVC的前端控制器DispatcherServlet
(1)預設配置方式
此配置作用下,SpringMVC的配置文件預設位於WEB-INF下,預設名稱為<servlet-name>-servlet.xml,例如,以下配置所對應SpringMVC的配置文件位於WEB-INF下,文件名springMVC-servlet.xml
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 配置SpringMVC的前端控制器,對瀏覽器發生的請求進行統一處理-->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<!--
設置springMVC的核心控制器所能處理的請求的請求路徑
'/'所匹配的請求可以是/login或.html或.js或.css方式的請求路徑
但是'/'不能匹配.jsp請求路徑的請求
-->
<url-pattern></url-pattern>
</servlet-mapping>
</web-app>
(2)擴展配置方式
可通過init-param標簽設置SpringMVC配置文件的位置和名稱,通過load-on-startup標簽設置SpringMVC前端控制器DispatcherServlet的初始化時間
<!-- 配置SpringMVC的前端控制器,對瀏覽器發送的請求統一進行處理-->
<servlet>
<servlet-name>SpringMVC</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>
<!-- 將前端控制器DispatcherServlet的初始化時間提前到伺服器啟動時-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>