我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringMVC五大组件与执行原理分析总结

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringMVC五大组件与执行原理分析总结

Spring MVC是包含在spring中的一个基于MVC设计思想的Web应用程序框架,目的是简化开发工作,提高开发效率。

优点

  • 和Spring框架无缝集成,能直接使用Spring的IoC容器、AOP支持;
  • 提供了多种将请求URL映射到控制器的机制;并支持参数的类型转换,自动装载,校验等功能;
  • 具有强大的扩展性,可根据需要方便的扩展框架的功能。

SpringMVC 五大组件

  • DispatcherServlet 负责分发请求(前端(核心)控制器)
  • HandlerMapping 负责根据请求 找到对应的控制器(处理器映射器)
  • Controller 处理请求的控制器
  • ModelAndView 封装数据信息以及视图信息
  • ViewResolver 通过处理找到对应的页面(视图解析器)

1、DispatcherServlet(前端(核心)控制器)

DispatcherServlet 是SpringMVC 最核心的一个控件。它是前端核心控制器,在web.xml中进行相关的配置。它可以将发送过来的请求进行匹配操作,再进行拦截。将拦截下来的所有请求根据对应的规则发送到对应的Controller进行处理。它是前端控制器设计模式的实现,能够提供Spring Web MVC的集中节点,而且负责职责的分派,而且与Spring IoC容器无缝集成。

配置DispatcherServlet :

<!-- 配置前端控制器,配置Servlet -->
<servlet>
     <servlet-name>springMvc</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>springMvc</servlet-name>
    <url-pattern>*.form</url-pattern>
</servlet-mapping>

DispatcherServlet配置在web.xml文件中。init-param为Servlet启动所需参数。DispatcherServlet会读取初始shucontextConfigLocation参数里面的值从而获取springmvc的配置位置自启动容器

2、HandlerMapping(处理器映射器)

HandlerMapping 是处理器映射,它的关键作用是将请求进行派发,负责请将求与控制器建立互相对应的关系。它最终由 DispatcherServlet 调用,DispatcherServlet 会从容器中取出所有 HandlerMapping 实例并遍历,让 HandlerMapping 实例根据自己实现类的方式去尝试查找 Handler。它标明了路径与Controller的对应关系,不同的路径访问不同的Controller

配置HandlerMapping :

<!--开启mvc注解扫描-->
<mvc:annotation-driven/>
<!--创建Controller  bean-->
<bean id="helloController" class="包名+类名"/>
<bean class="org.springframework.web.servlrt.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <props>
            <prop key="/hello">helloController</prop>
        </props>
    </property>
</bean>

3、Controller(处理请求的控制器)

处理请求的控制器,负责处理由DispatcherServlet 分发的请求,把用户请求的数据发送到业务处理层处理之后封装成一个Model ,然后把该Model 返回给对应的View 进行展示。它实际上就是用来处理业务逻辑的Java类。

配置Controller类 :

@Controller
public class DataController {
    @RequestMapping("getData")
    public ModeAndView hello(String Id) {
        System.out.println("hello");
        return new ModeAndView("hello")
    }
}

4、ModelAndView(封装数据和视图信息)

ModelAndView 是进行封装数据信息和视图信息的模型。使用ModelAndView类用来存储处理完后的结果数据。ModelAndView中的Model代表模型,View代表视图,很好地解释了该类的作用。业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后返回给SpringMVC框架。框架通过调用配置文件中定义的视图解析器,对该对象进行解析,最后把结果数据显示在指定的页面上。

5、ViewResolver(视图解析器)

视图解析器ViewResolver 的主要作用是把一个逻辑上的视图名称解析为一个视图。

配置ViewResolver :

<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResour    ceViewResolver">
    <property name="prefix" value="/WEB-INF/"/>
    <property name="suffix" value=".html"></property>
</bean>

SpringMVC执行原理

  • 发起请求到前端控制器DispatcherServlet
  • 前端控制器调用处理器映射器HandlerMapping查找Handler
  • 处理器映射器向前端控制器返回找到的Handler
  • 前端控制器调用处理器适配器HandlerAdapter执行Handler
  • 处理器适配器去执行Handler
  • Handler执行完成给处理器适配器返回ModelAndView
  • 处理器适配器向前端控制器返回ModelAndView
  • 前端控制器请求视图解析器ViewResolver去进行视图解析
  • 视图解析器向前端控制器返回视图View
  • 前端控制器进行视图渲染向用户响应结果

总结

DispatcherServlet(前端控制器)接收来自客户端的URL请求。请求分发器借助处理器映射器(HandlerMapping)来查找对应的处理器Handler(控制器),分发本次请求。请求分发器利用处理器适配器(HandlerAdapter)来执行对应的处理器(控制器)。处理器调用方法处理本次请求,返回模型视图对象(ModelAndView)。请求分发器借助视图解析器(ViewResolver)解析模型视图,得到对应的视图(View)。请求分发器调用视图中的方法,同时将数据模型交给视图对象,完成给客户端的应答。

到此这篇关于SpringMVC五大组件与执行原理分析总结的文章就介绍到这了,更多相关SpringMVC五大组件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringMVC五大组件与执行原理分析总结

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringMVC五大组件与执行原理分析总结

这篇文章主要介绍了SpringMVC五大组件与执行原理分析总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2023-01-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录