(3)创建SpringMVC知识汇总

1 SpringMVC知识汇总

在(2)IDEA上编写第一个SpringMVC 文章中,我们成功创建了一个SpringMVC工程

为了加深自己的理解
进一步的去探究它的流程

分为两个步骤:

    1. 启动服务器,加载一些配置文件
    1. 发送请求,后台处理请求
      在这里插入图片描述

1. 启动服务器,加载一些配置文件

首先查看配置文件web.xml

1 DispatcherServlet对象创建
在这里插入图片描述
在web.xml中配置一个前端控制器 ,叫做servlet
servlet第一次发请求,会被创建成对象。
配置这个标签的目的是:

在这里插入图片描述
启动服务器的时候,servlet会直接创建成对象,同时DispatcherServlet对象被创建。
再服务器启动的过程当中,去加载指定 类路径下 springmvc.xml 配置文件

在这里插入图片描述
2 springmvc配置文件被加载

看到第一句话,注解扫描(开扫描就变对象)
在这里插入图片描述
把base-package 底下的类变成一个对象

3 helloController创建成对象
在这里插入图片描述
在这里插入图片描述
扫描到@Controller注解
把指定包底下的helloController这个类变成单例对象,加载到IOC容器当中。

在这里插入图片描述
bean标签,配置bean标签意味着视图解析器也会直接变成对象。
如果调用视图解析器,它能帮我们工作,跳转页面

在这里插入图片描述

开启SpringMVC注解的支持,@RequestMapping也可以生效
helloController对象有了,方法上也加注解了。
以后发请求,我们只要找到这个对象中的方法,然后再让这个方法去执行

2. 发送请求,后台处理请求

找到index.jsp文件
我们能看到一个超链接

在这里插入图片描述
我们点击这个超链接,就能发送这个请求。
发送请求之后,第一个执行servlet

在这里插入图片描述
/ 代表这拦截所有的请求,任何请求都会经过servlet

在这里插入图片描述
DispatcherServlet:前端控制器(核心:控制作用,指挥中心)

超链接里面有一个相对路径在这里插入图片描述
根据注解,通过path这个值,找到对应的方法

在这里插入图片描述
控制台打印:Hello SpringMVC
然后返回success
当方法执行完,等于控制器和方法的活就干完了

在这里插入图片描述
然后控制器再找别的对象去,找到springmvc中的视图解析器对象

在这里插入图片描述
找到视图解析器这个对象之后,会帮助我们跳转页面。
我们调用方法之后返回success,然后视图解析器会跳转到prefix和suffix指定的页面去。

在这里插入图片描述
在这里插入图片描述
然后success.jsp页面显示数据,Servlet把这个事情做完之后。
最后Servlet把请求响应到客户端就可以了
然后客户端最后看到这个结果

在这里插入图片描述

再整个过程中 ,前端控制器是非常重要的。

2 SpringMVC框架基于组件方式执行流程

1 Requesst请求

首先客户端发送一个请求
在这里插入图片描述
到达前端控制器(控制中心)-》找到处理器映射器

2 请求查找Handler

让Controller类中的方法去执行
在这里插入图片描述
那么怎么让这个类中的方法去执行呢?
让HelloController中的sayHello方法执行?
在这里插入图片描述
那么客户端其实会发送一个请求,有一个路径假设为/hello
那么我配的@RequestMapping 也有一个/ hello
两者刚好匹配
那么我就可以知道我调用的是那个方法
在这里插入图片描述

3 返回一个执行链

返回的是:
在这里插入图片描述
前端控制器是不可能帮你执行的,只起到一个控制和中转的作用

4 请求适配器执行(任何的Controller都适配上,帮你去执行这个方法)

处理器指的是: HelloController中的sayHello()这个方法
处理器适配器指的是:它会采用一个适配器的模式

如果以后客户端发送的是别的请求, 比如/saveUse
那么我以后会写一个UserController 里面有一个save的方法
在这里插入图片描述
那么客户端发送任何请求,都是先去找处理器映射器。
都会返回那个具体的Controller和那个方法
那么我们以后写多了,返回的类也不一样方法也不一样

我们的目的就是想让这个方法去执行,那么我们统一的通过适配器
适配器里面可以适配任何情况
访问什么类都会经过适配器

适配器的模式理解,看下图
我们发现右边都是usb的接口,我们电脑都能识别,通过这个我们的电脑可以和任何的物理硬件去连接
这叫适配器模式
在这里插入图片描述

5 执行

那么我们所有的Controller都过来,适配器都可以让它适配上。
都可以让Controller去执行,任何Controller和任何类都可以转换成适配器,然后我们用适配器去执行最终的方法在这里插入图片描述

6 返回ModelAndView

返回视图的页面,比如我们之前的那个success字符串
我们知道往哪里跳,比如我们跳到success.jsp页面在这里插入图片描述

7 请求视图解析器(让你去跳转到XXX页面)

那么我们返回这个跳转页面之后, success.jsp
视图解析器根据你的返回的结果 跳转到xxx页面
在这里插入图片描述

response相应

在这里插入图片描述
当页面完事以后,前端控制器给响应回去给客户端

springmvc.xml配置文件中,下面的这句话
在这里插入图片描述
在这里插入图片描述
相当于默认把处理映射器和处理适配器,默认配上 是一样的效果

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值