DispatcherServlet:前段控制器

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

HandlerMapping:处理器映射器

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

Hnadler:处理器

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

HandlerAdapter:处理器适配器

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

ViewResolver:视图解析器

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

View:视图

Spring提供了很多的View视图类型的支持,包括:JSTLView、FreeMarkerView、PDFView等,常用的是jsp。一般情况下需要由程序员根据业务需求开发具体的页面。

默认加载的组件:

不做任何配置,就可以使用这些组件,因为框架已经默认加载这些组件了。

组件扫描器:

使用组件扫描器省去了在sprign容器配置每个Controller类的繁琐

使用<context:component-scan>自动扫描标记@Controller的控制器类,在springmvc.xml配置文件如下:

<!--配置controller扫描包,多个包之间用,分隔-->

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

配置处理器映射器:

注解式处理器映射器,对类中标记了@RequestMapping的方法进行映射,根据@RequestMapping定义的url匹配@RequestMapping标记的方法,匹配成功返回HandlerMethod对象给前端控制器。

HandlerMethod对象中封装url对应的方法Method。

在springmvc.xml配置文件中配置如下:

<!--配置处理器映射器--><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

配置处理器适配器:

注解式处理器适配器,对标记@RequestMapping的方法进行适配。

在springmvc.xml配置文件中配置如下:

<!--配置处理器适配器--><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

注解驱动:

直接配置处理器映射器和处理器适配器比较麻烦,可以使用注解驱动来加载。

SpringMVC使用<mvc:annotation-driven>自动加载RequestMappingHandlerMapping和RequestMappingHandlerAdapter

可以在springmvc.xml配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置。

<!--注解驱动--><mvc:annotation-driven/>

视图解析器:

视图解析器使用SpringMVC框架默认的InternalResourceViewResolver,这个视图解析器支持JSP视图解析。

在springmvc.xml配置文件中配置如下:

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

逻辑视图名需要在controller中返回ModelAndView指定,比如逻辑视图名为Item,则最终返回的jsp视图地址:

"WEB-INF/jsp/Item.jsp"

最终jsp物理地址:

前缀+逻辑视图名+后缀

SpringMVC组件说明以及配置代码相关推荐

  1. IDEA + Maven创建SpringMVC项目和XML配置

    IDEA + Maven +SpringMVC + XML配置 1. 运行出默认 index.jsp 页面 1.1 构建Maven项目 1.2 设置pom.xml 1.3 设置Spring MVC框架 ...

  2. Spring框架学习day_02:组件扫描 / 注解内部读解 / 组件扫描中配置作用域和生命周期 / 解耦 / 自动装配(两种方式) / 读取文件

    1. 组件扫描 首先,必须让Spring扫描组件所在的包,并且,组件类的声明之前必须添加@Component注解! 其实,除了@Component注解以外,还可以使用以下注解实现同样的效果: @Con ...

  3. 管理springmvc组件——前端控制器、控制器映射器和适配器、视图解析器、文件上传的、拦截器||消息转化

    管理springmvc组件 概述 在使用springmvc时要配置哪些东西 前端控制器 控制器映射器和适配器 映射器  Map<Set<String>,Object> Set& ...

  4. springMVC+Spring+mybatis整合配置版与注解版

    springMVC+Spring+mybatis整合 , 使用配置版来完成: -----------------------------前端 1.创建web系统,导入jar包: spring的jar包 ...

  5. SSM框架搭建(四) springmvc和mybatis的配置

    SSM框架搭建(一) JDK和MAVEN环境搭建 SSM框架搭建(二) 创建MAVEN项目 SSM框架搭建(三) 数据库创建和MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件 S ...

  6. java用户注册代码解析_java springmvc 注册中央调度器代码解析

    java springmvc 注册中央调度器代码解析 发布时间:2020-08-22 20:58:23 来源:脚本之家 阅读:107 作者:荆棘人 这篇文章主要介绍了java springmvc 注册 ...

  7. CSE 支持spring 4/5 以及spring boot 1/2 maven组件依赖关系配置参考

    [摘要] 本文介绍了CSE如何使用Spring 4或者Spring 5,以及在Spring Boot 1和Spring Boot 2中如何集成CSE,重点介绍了CSE提供的maven管理器,以及如何使 ...

  8. UML--实现图(组件图、配置图)

    一.组件图(构件图) (一)定义 组件图(Component Diagram)又称为构件图庙会上软件组件以及组件之间的关系,组件本身是代码的物理模块,组件图则显示了代码的结构. (二)组成 组件图=组 ...

  9. 持续集成与持续部署(五)03-TravisCI——Travis CI和Docker的持续集成之所使用的基础组件、dockerfile配置、docker部署脚本

    持续集成与持续部署(五)03-TravisCI--Travis CI和Docker的持续集成之所使用的基础组件.dockerfile配置.docker部署脚本 所使用的基础组件 代码托管在Github ...

最新文章

  1. mega_[MEGA DEAL]完整的Android开发人员课程–构建14个应用程序(91%折扣)
  2. IronRuby and ASP.NET MVC
  3. 01、python数据分析与机器学习实战——Python科学计算库-Numpy
  4. 使用Maven进行增量构建
  5. KAFKA 最新版 Shell API单机生产与消费
  6. 工信部推动云计算健康快速发展 催生巨大市场机会
  7. 服务器上使用 git 更新 wordpress 内核方案
  8. binary-tree-maximum-path-sum——二叉树任意一条路径上的最大值
  9. Java 获取系统信息
  10. 今日分享idea精彩好看的主题+网站地址
  11. [软工]可行性分析报告
  12. python贪吃蛇源码下载_Python贪吃蛇源代码
  13. 数控车计算机软件编程的重要性,数控车床有多少人软件编程?
  14. VS2008 SP1安装失败
  15. 我国首个5G地铁站开通:TCL集团重组方案通过;苹果2019新品图泄露|雷锋早报...
  16. 【项目管理软件盛宴】谁才是人气王?
  17. 计算机组成原理学习(哈工大视频)第六章 计算机的运算方法
  18. 计算机电源改60v,晒晒我用电脑电源改的可调电源0-24V非常好用
  19. python中wb什么意思,使用Python,“ wb”在此代码中是什么意思?
  20. 山药玉米排骨汤:非常美味,也营养健康

热门文章

  1. CentOS 7安装GNOME图形界面并设置默认启动
  2. java 部分正确性_深入理解java快速排序的正确性
  3. python实现表格合并_Python实现合并excel表格的方法分析
  4. python中自定义变量名标识符_name是python的标识符吗
  5. android 多个类的对象,android – 为多个对象使用泛型类(actionBar选项卡)
  6. php自定义模块,简单介绍OpenCart自定义模块
  7. java jsonobject转List_java – 将JSONObject转换为List或JSONArray的简单代码?
  8. 子程序与中断程序的异同_【干货】plc怎样理解中断功能,其作用是什么?
  9. L1正则化与数据分布的关系
  10. tool 之gvim 64位安装流程