-
如上图所示,首先,传入的请求(
request
)被工作在 前端控制器(front Controller
)的DispatcherServlet
接收并拦截; -
然后
DispatcherServlet
从 XML 配置文件中获取 处理器映射器(Handler Mapping
)的条目,处理器根据请求找到对应Handler
, 同时将请求转发给控制器(Controller
); -
接着 控制器(
Controller
)解析返回一个ModelAndeView
对象给DispatcherServlet
; -
最后
DispatcherServlet
根据控制器(Controller
)返回的对象去检查 XML 配置文件中对应的 视图解析器(ViewResolver
)条目,同时调用指定的视图组件,在前端呈现出视图(View
)。
-
简化 Web 层的开发,易于维护;
-
天生与 Spring 框架集成;
-
提供强大的约定大于配置的契约式编程支持;
-
易于对 Web 单元测试;
-
支持灵活的 URL 到页面控制器的映射;
-
支持静态资源;
-
支持 RESTful 风格;
-
灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架 API;
-
提供强大的 JSP 标签库,简化 JSP 开发;
-
支持灵活的本地化、主题等解析;
-
更加简单的异常处理;
上面我们讲了 Spring MVC 的结构、工作流程以及其优缺点,下面我们就来看看,如何创建一个 Spring MVC 实例。
- 首先创建一个普通的 Maven 项目;
好了,完成上面两步之后,我们的普通 Maven 项目就创建 OK 了。
- 既然是 Web 项目,那肯定得加入 Web 框架的支持,选中项目后右键,选择
Add Framework Support
,然后选中Web Application
添加即可;
- 创建 Maven 项目,并添加 Web 框架之后之后,我们的项目结构如下图:
- 接下来,在
pom.xml
中添加相关依赖,一般需要 Junit、Servlet、Spring MVC 等框架的依赖;
junit
junit
4.13
test
org.springframework
spring-webmvc
5.2.7.RELEASE
javax.servlet
servlet-api
2.5
javax.servlet.jsp
javax.servlet.jsp-api
2.3.3
javax.servlet
jstl
1.2
除此之外,为了避免后面有可能出现的静态资源导出问题,我们也可以在 pom.xml
添加如下配置:
src/main/java
**/*.properties
**/*.xml
false
src/main/resources
**/*.properties
**/*.xml
false
- 接下来,在
web.xml
中注册DispatcherServlet
;
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc-servlet.xml
1
springmvc
/
同时在 /src/main/resources
目录下新建一个 Spring MVC 配置文件 springmvc-servlet.xml
(文件名可以自定义,可以根据自己喜好自定义);
- 配置 Spring MVC 的配置文件,即上一步中所创建的
springmvc-servlet.xml
;
<beans xmlns=“http://www.springframework.org/schema/beans”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xmlns:context=“http://www.springframework.org/schema/context”
xmlns:mvc=“http://www.springframework.org/schema/mvc”
xsi:schemaLocation=“http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd”>
<context:component-scan base-package=“com.cunyu.controller”/>
mvc:default-servlet-handler/
mvc:annotation-driven/
- 创建控制类 Controller
package com.cunyu.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.Scanner;
/**
-
@author : cunyu
-
@version : 1.0
-
@className : HelloController
-
@date : 2020/7/21 8:19
-
@description : 控制器
*/
@Controller
public class HelloController {
// 浏览器访问 ip:port/项目名/hello
@GetMapping(“/hello”)
public String sayHello(Model model) {
String name = “村雨遥”;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

结尾
这不止是一份面试清单,更是一种”被期望的责任“,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的”钥匙“,所以上面每道选题都是结合我自身的经验于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再次对好答案和格式做出来的,面试的答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。
由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
是一份面试清单,更是一种”被期望的责任“,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的”钥匙“,所以上面每道选题都是结合我自身的经验于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再次对好答案和格式做出来的,面试的答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。
由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!