目錄
?
一、SpringMVC簡(jiǎn)介
1.1?MVC模型
1.2?SpringMVC
二、SpringMVC入門案例
2.1?創(chuàng)建項(xiàng)目
2.2?引入依賴和tomcat插件
2.3?修改web.xml文件?
2.4?新建springmvc.xml文件
2.5 編寫控制器?
2.6?配置運(yùn)行方式
2.7?運(yùn)行測(cè)試?
三、SpringMVC執(zhí)行流程
3.1?SpringMVC的組件
3.2?組件的工作流程
往期專欄&文章相關(guān)導(dǎo)讀?
1. Maven系列專欄文章
2. Mybatis系列專欄文章
3. Spring系列專欄文章?
4. Spring MVC系列專欄文章?
一、SpringMVC簡(jiǎn)介
1.1?MVC模型
MVC全稱Model View Controller,是一種設(shè)計(jì)創(chuàng)建Web應(yīng)用程序的模式。這三個(gè)單詞分別代表Web應(yīng)用程序的三個(gè)部分:
- Model(模型):指數(shù)據(jù)模型。用于存儲(chǔ)數(shù)據(jù)以及處理用戶請(qǐng)求的業(yè)務(wù)邏輯。在Web應(yīng)用中,JavaBean對(duì)象,業(yè)務(wù)模型等都屬于Model。
- View(視圖):用于展示模型中的數(shù)據(jù)的,一般為jsp或html文件。
- Controller(控制器):是應(yīng)用程序中處理用戶交互的部分。接受視圖提出的請(qǐng)求,將數(shù)據(jù)交給模型處理,并將處理后的結(jié)果交給視圖顯示。
?
1.2?SpringMVC
????????SpringMVC是一個(gè)基于MVC模式的輕量級(jí)Web框架,是Spring框架的一個(gè)模塊,和Spring可以直接整合使用。SpringMVC代替了Servlet技術(shù),它通過一套注解,讓一個(gè)簡(jiǎn)單的Java類成為處理請(qǐng)求的控制器,而無須實(shí)現(xiàn)任何接口。
二、SpringMVC入門案例
2.1?創(chuàng)建項(xiàng)目
先建立一個(gè)空項(xiàng)目:
?
一直Next,直到下圖,確定好項(xiàng)目名和項(xiàng)目位置。點(diǎn)擊finish
?
接下來我們寫一個(gè)SpringMVC的入門案例,此時(shí)我們新建一個(gè)模塊即可,首先使用maven創(chuàng)建web項(xiàng)目,補(bǔ)齊包結(jié)構(gòu) ,
?
?點(diǎn)擊Next,如下圖?
?
????????因?yàn)槲乙呀?jīng)建好了,所以上面方框中是紅色提示符。配置好對(duì)應(yīng)的id,點(diǎn)擊next,爆紅是點(diǎn)擊不了下一步的,為了給你們看我下面就是隨便改了一下。知道大概意思就可以了。
?
?OK,確定沒有問題就點(diǎn)擊finish。
??
建好之后如上圖?
2.2?引入依賴和tomcat插件
pom.xml文件內(nèi)容:
<?xml version="1.0" encoding="UTF-8"?>
<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>com.example</groupId>
<artifactId>mvc_demo1</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>mvc_demo1 Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>https://www.example.com</url>
<dependencies>
<!-- Spring核心模塊 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
<!-- springWeb模塊 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
<!-- SpringMVC模塊 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<!-- JSP -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<build>
<plugins>
<!-- tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>8080</port>
<path>/</path>
<uriEncoding>UTF-8</uriEncoding>
<server>tomcat7</server>
<systemProperties>
<java.util.logging.SimpleFormatter.format>%1$tH:%1$tM:%1$tS%2 $s%n%4$s: %5$s%6$s%n
</java.util.logging.SimpleFormatter.format>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
</project>
2.3?修改web.xml文件?
????????然后在資源webapp目錄下的WEB-INF目錄下的web.xml文件,這是webapp核心配置文件,并配置相關(guān)內(nèi)容
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<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_3_1.xsd" version="3.1">
<display-name>Archetype Created Web Application</display-name>
<!-- SpringMVC前端控制器,本質(zhì)是一個(gè)Servlet,接受所有請(qǐng)求,在容器啟動(dòng)時(shí)就會(huì)加載 -->
<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: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>
<!-- 默認(rèn)進(jìn)入obj2Param.jsp頁(yè)面 -->
<welcome-file-list>
<welcome-file>obj2Param.jsp</welcome-file>
</welcome-file-list>
</web-app>
2.4?新建springmvc.xml文件
????????編寫SpringMVC核心配置文件springmvc.xml,該文件和Spring配置文件寫法一樣。
<?xml version="1.0" encoding="UTF-8" ?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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.example"/>
<!-- 開啟SpringMVC注解的支持 -->
<mvc:annotation-driven/>
</beans>
2.5 編寫控制器?
com.example.controller.MyController1.java控制器文件內(nèi)容:
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class MyController1 {
// 該方法的訪問路徑是/c1/hello1
@RequestMapping("/c/hello1")
public void helloMCV(){
System.out.println("hello springmvc");
}
}
@Controller說明這是一個(gè)控制類
@RequestMapping說明他的上下文路徑為:/c/hello1
待會(huì)運(yùn)行的時(shí)候可以觀察控制臺(tái)是否輸出hello springmvc即可?
2.6?配置運(yùn)行方式
右擊,如下圖?
?
點(diǎn)擊+號(hào),然后選擇maven,然后選擇要運(yùn)行的項(xiàng)目目錄,?運(yùn)行命令為:tomcat7:run
?
OK,點(diǎn)擊OK,完成運(yùn)行配置
2.7?運(yùn)行測(cè)試?
在網(wǎng)址欄輸入localhost:8080/c/hello1?回車運(yùn)行,可以看到如下圖,
?
????????其實(shí)這里報(bào)404是正常的,因?yàn)檫@里要返回的是一個(gè)視圖,但是我并沒有寫這個(gè)視圖,所以就報(bào)404not found,但是觀察控制臺(tái)有沒有輸出hello springmvc,如果成功打印出則說明確實(shí)是運(yùn)行成功了,如下圖?
?
三、SpringMVC執(zhí)行流程
?
3.1?SpringMVC的組件
- DispatcherServlet:前端控制器,接受所有請(qǐng)求,調(diào)用其他組件。
- HandlerMapping:處理器映射器,根據(jù)配置找到方法的執(zhí)行鏈。
- HandlerAdapter:處理器適配器,根據(jù)方法類型找到對(duì)應(yīng)的處理器。
- ViewResolver:視圖解析器,找到指定視圖。
3.2?組件的工作流程
- 客戶端將請(qǐng)求發(fā)送給前端控制器。
- 前端控制器將請(qǐng)求發(fā)送給處理器映射器,處理器映射器根據(jù)路徑找到方法的執(zhí)行鏈,返回給前端控制器。
- 前端控制器將方法的執(zhí)行鏈發(fā)送給處理器適配器,處理器適配器根據(jù)方法類型找到對(duì)應(yīng)的處理器。
- 處理器執(zhí)行方法,將結(jié)果返回給前端控制器。
- 前端控制器將結(jié)果發(fā)送給視圖解析器,視圖解析器找到視圖文件位置。
- 視圖渲染數(shù)據(jù)并將結(jié)果顯示到客戶端。
往期專欄&文章相關(guān)導(dǎo)讀?
?????大家如果對(duì)于本期內(nèi)容有什么不了解的話也可以去看看往期的內(nèi)容,下面列出了博主往期精心制作的Maven,Mybatis等專欄系列文章,走過路過不要錯(cuò)過哎!如果對(duì)您有所幫助的話就點(diǎn)點(diǎn)贊,收藏一下啪。其中Spring專欄有些正在更,所以無法查看,但是當(dāng)博主全部更完之后就可以看啦。文章來源:http://www.zghlxwxcb.cn/news/detail-492658.html
1. Maven系列專欄文章
Maven系列專欄 | Maven工程開發(fā) |
Maven聚合開發(fā)【實(shí)例詳解---5555字】 |
2. Mybatis系列專欄文章
Mybatis系列專欄 | MyBatis入門配置 |
Mybatis入門案例【超詳細(xì)】 | |
MyBatis配置文件 —— 相關(guān)標(biāo)簽詳解 | |
Mybatis模糊查詢——三種定義參數(shù)方法和聚合查詢、主鍵回填 | |
Mybatis動(dòng)態(tài)SQL查詢 --(附實(shí)戰(zhàn)案例--8888個(gè)字--88質(zhì)量分) | |
Mybatis分頁(yè)查詢——四種傳參方式 | |
Mybatis一級(jí)緩存和二級(jí)緩存(帶測(cè)試方法) | |
Mybatis分解式查詢 | |
Mybatis關(guān)聯(lián)查詢【附實(shí)戰(zhàn)案例】 | |
MyBatis注解開發(fā)---實(shí)現(xiàn)增刪查改和動(dòng)態(tài)SQL | |
MyBatis注解開發(fā)---實(shí)現(xiàn)自定義映射關(guān)系和關(guān)聯(lián)查詢 |
3. Spring系列專欄文章?
Spring系列專欄 | Spring IOC 入門簡(jiǎn)介【自定義容器實(shí)例】 |
IOC使用Spring實(shí)現(xiàn)附實(shí)例詳解 | |
Spring IOC之對(duì)象的創(chuàng)建方式、策略及銷毀時(shí)機(jī)和生命周期且獲取方式 | |
Spring DI簡(jiǎn)介及依賴注入方式和依賴注入類型 | |
Spring IOC相關(guān)注解運(yùn)用——上篇 | |
Spring IOC相關(guān)注解運(yùn)用——下篇 | |
Spring AOP簡(jiǎn)介及相關(guān)案例 | |
注解、原生Spring、SchemaBased三種方式實(shí)現(xiàn)AOP【附詳細(xì)案例】 | |
Spring事務(wù)簡(jiǎn)介及相關(guān)案例 | |
Spring 事務(wù)管理方案和事務(wù)管理器及事務(wù)控制的API | |
Spring 事務(wù)的相關(guān)配置、傳播行為、隔離級(jí)別及注解配置聲明式事務(wù) |
4. Spring MVC系列專欄文章?
SpringMVC系列專欄 | Spring MVC簡(jiǎn)介附入門案例 |
Spring MVC各種參數(shù)獲取及獲取方式自定義類型轉(zhuǎn)換器和編碼過濾器 | |
Spring MVC獲取參數(shù)和自定義參數(shù)類型轉(zhuǎn)換器及編碼過濾器 | |
Spring MVC處理響應(yīng)附案例詳解 | |
Spring MVC相關(guān)注解運(yùn)用 —— 上篇 | |
Spring MVC相關(guān)注解運(yùn)用 —— 中篇文章來源地址http://www.zghlxwxcb.cn/news/detail-492658.html | |
Spring MVC相關(guān)注解運(yùn)用 —— 下篇 | |
Spring MVC多種情況下的文件上傳 | |
Spring MVC異步上傳、跨服務(wù)器上傳和文件下載 | |
Spring MVC異常處理【單個(gè)控制異常處理器、全局異常處理器、自定義異常處理器】 | |
Spring MVC攔截器和跨域請(qǐng)求 | |
SSM整合案例【C站講解最詳細(xì)流程的案例】 |
到了這里,關(guān)于Spring MVC簡(jiǎn)介附入門案例的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!