• SpringMVC 框架系列之组件概述与配置详解


    在上一篇文章 SpringMVC 框架系列之初识与入门实例 的实例中,我们已经知道,SpringMVC 框架是一个 web 层的框架,本篇文章就详细解释一下 SpringMVC 框架具体文件的配置以及相关组件的作用。

    1、SpringMVC 架构详解

    (1)、SpringMVC 框架结构:

    (2)、SpringMVC 框架结构执行流程

    • 用户发送请求至前端控制器 DispatcherServlet

    • DispatcherServlet 收到请求调用 HandlerMapping 处理器映射器

    • 处理器映射器根据请求 url 找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给 DispatcherServlet

    • DispatcherServlet 通过 HandlerAdapter 处理器适配器调用处理器

    • 执行处理器(Controller,也叫后端控制器)

    • Controller 执行完成返回 ModelAndView

    • HandlerAdapter 将 controller 执行结果 ModelAndView 返回给 DispatcherServlet

    • DispatcherServlet 将 ModelAndView 传给 ViewReslover 视图解析器

    • ViewReslover 解析后返回具体 View

    • DispatcherServlet 对 View 进行渲染视图(即将模型数据填充至视图中)

    • DispatcherServlet 响应用户

    2、SpringMVC 框架组件概述

    在 SpringMVC 的各个组件中,处理器映射器、处理器适配器、视图解析器称为 SpringMVC 的三大组件。

    (1)、DispatcherServlet:前端控制器

    用户请求到达前端控制器,它就相当于 MVC 模式中的 C 层,DispatcherServlet 是整个流程控制的中心,由它调用其它组件处理用户的请求,DispatcherServlet 的存在降低了组件之间的耦合性。

    (2)、HandlerMapping:处理器映射器

    HandlerMapping 负责根据用户请求 url 找到 Handler 处理器,SpringMVC 提供了不同的映射器实现不同的映射方式,如配置文件方式、实现接口方式、注解方式等。

    (3)、Handler:处理器

    Handler 是继 DispatcherServlet 前端控制器的后端控制器,在 DispatcherServlet 的控制下 Handler 对具体的用户请求进行处理。由于 Handler 涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发 Handler 。

    (4)、HandlAdapter:处理器适配器

    通过 HandlerAdapter 对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

    (5)、ViewResolver:视图解析器

    View Resolver 负责将处理结果生成 View 视图,View Resolver 首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View 视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

    (6)、View:视图

    SpringMVC 框架提供了很多的 View 视图类型的支持,w而我们开发中最常用的视图是 jsp 。

    3、SpringMVC 配置详解

    springmvc.xml

    (1)、配置组件扫描器

    <context:component-scan base-package="com.springmvc.controller" />

    (2)、配置处理器映射器

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />

    (3)、配置处理器适配器

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />

    (4)、配置注解驱动

    <mvc:annotation-driven />

    (5)、配置视图解析器

    <bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!-- 配置逻辑视图的前缀 -->
    <property name="prefix" value="/jsp/" />
    <!-- 配置逻辑视图的后缀 -->
    <property name="suffix" value=".jsp" />
    </bean>

    最终 jsp 物理地址:前缀 + 逻辑视图名 + 后缀

    注:部分知识源于网络,侵权联删。

    扫描关注微信公众号,了解更多

  • 相关阅读:
    warning: LF will be replaced by CRLF in ***. The file will have its original line endings in your working directory.
    GitHub出现Permissiondenied (publickey).
    浏览器编辑web页面的方法
    用scikit-learn进行LDA降维
    支持向量机原理(二) 线性支持向量机的软间隔最大化模型
    奇异值分解(SVD)原理与在降维中的应用
    scikit-learn K近邻法类库使用小结
    矩阵分解在协同过滤推荐算法中的应用
    精确率与召回率,RoC曲线与PR曲线
    异常点检测算法小结
  • 原文地址:https://www.cnblogs.com/compassblog/p/8547047.html
Copyright © 2020-2023  润新知