1.springmvc 官网参考地址:

  https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html

2. springmvc 的介绍

   Spring Web MVC是基于Servlet API构建的原始Web框架,所以从一开始就包含在spring框架中。

3.DispatcherServlet

  springmvc像大多数web框架一样,作为一个核心的前端控制器。dispatherServlet 继承servlet 提供了分发客户端发送来的请求到相应的handler 中。这个模型平滑的支持不同的工作流。(页面请求,文件上传等);dispatcherServlet 是一个服务端应用程序,要想实现springmvc  作为控制层,则需要在web.xml 中将这个sevlet 配置进去,以便于这个servlet 使用spring 配置文件中的配置项。例如获取前端的request 请求,将携带的参数绑定到controller 中

4.web.xml  的配置

  其实这个配置很类似于struts2 的配置,都是将核心控制器配置进来,以下是基于springmvc 的配置

<web-app>

<!-- 配置监听,监听配置文件-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- 将springmvc 的配置文件引入 ,这里有多中配置方式-->
<context-param>
<param-name>contextConfigLocation</param-name>
      
      <!--方式1-->
<param-value>/WEB-INF/app-context.xml</param-value>
         <!--方式2->
    <!--     <param-value>classpath:*-context.xml</param-value>   -->
    </context-param>

<!-- 将前端控制器加载进来-->
<servlet>
<servlet-name>app</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring-mvc.xml
</param-value>
        </init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<!-- 配置过滤的请求-->
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping> </web-app>

 5. 特殊的bean

  dispatcherServlet 只是作为前端控制器,具体的业务处理将交给特定的bean 进行处理。你可以自定义或者扩展特殊的bean 处理对应的业务场景。

  A。HandlerMapping :根据客户端发送过来的request 请求,将请求映射到对应的处理器

  B。HandlerAdapter:适配器 根据客户端的请求去匹配那个适配器处理这个请求,根据具体的细节划分对应的适配器

  C。 ViewResolver :视图解析器,将controller 返回的数据封装到视图中,并寻找指定的视图进行展现

  D。MultipartResolver :富文本解析器:例如返回pdf/img/excel 等

   E。 ThemeResolver  :返回不同的主题

6.dispatcher 执行的过程

  首先dispatcher  接受用户的请求,前端控制器接受到请求之后不自己做处理,而是委托给其他解析器进行处理,dispatcher 作为统一站点进行全局的流程控制。

  handlerMapping 把从dispatcher 接收到的请求映射为HandlerExecutionChain 对象(包含一个Handler 处理器对象,多个拦截器)

  handlerAdapter 将会把处理器包装成为适配器,从而支持多种类型的处理器。之后根据适配的结果调用正真的处理器,并返回一个modelAndView 对象(包含模型数据。逻辑视图名)

  viewResolver 把逻辑视图名解析为具体的view

  view 根据传递进来的模型数据将页面进行渲染

  返回控制权给dispatcher ,并由他返回响应给用户

  

springmvc系列一 之配置介绍(包含官网doc)的更多相关文章

  1. Beam编程系列之Python SDK Quickstart(官网的推荐步骤)

    不多说,直接上干货! https://beam.apache.org/get-started/quickstart-py/ Beam编程系列之Java SDK Quickstart(官网的推荐步骤)

  2. Beam编程系列之Java SDK Quickstart(官网的推荐步骤)

    不多说,直接上干货! https://beam.apache.org/get-started/beam-overview/ https://beam.apache.org/get-started/qu ...

  3. CentOS下安装和配置MySQL-JDK-Tomcat-Nginx(个人官网环境搭建手冊)

    今天,又一次弄我的个人云主机的环境.准备运营自己用Java写的个人官网等站点. 服务器环境:阿里云CentOS 6.4位 包含以下脚本在内的绝大部分命令和脚本,都是我亲自运行过,靠谱的. 完整的&qu ...

  4. Nordic官方网络资源介绍(官网/devzone/GitHub)

    本文将介绍Nordic官方网络资源,包括Nordic官网,开发者论坛(devzone),以及Nordic在GitHub上的共享资源. 1. Nordic官网(产品/SDK/工具/文档库) Nordic ...

  5. CentOS下安装和配置MySQL-JDK-Tomcat-Nginx(个人官网环境搭建手册)

    今天,重新弄我的个人云主机的环境,准备运营自己用Java写的个人官网等网站. 服务器环境:阿里云CentOS 6.4位 包括以下脚本在内的绝大部分命令和脚本,都是我亲自执行过,靠谱的. 完整的&quo ...

  6. PHP环境配置-从Apache官网下载windows版apache服务器

    由于个人有强迫倾向,下载软件都喜欢从官网下载,摸索了好久终于摸清楚怎么从Apache官网下载windows安装版的Apache服务器了,现在分享给大家. 进入apache服务器官网http://htt ...

  7. SpringMVC系列之基本配置

    一.概述 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请 ...

  8. tkinter内嵌Matplotlib系列(一)之解读官网教材

    目录 目录 前言 (一)小目标 1.首页卷面: 2.绘制一条函数曲线: 3.绘制多条曲线: (二)官方教材 1.对GUI框架的支持: 2.内嵌于tkinter的说明文档: (三)对官方教程的解读 目录 ...

  9. centos7 安装配置openstack-dashboard (官网openstack-juno版)

    感谢朋友支持本博客.欢迎共同探讨交流.因为能力和时间有限.错误之处在所难免.欢迎指正! 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

随机推荐

  1. 嵌入式开发之davinci--- 8148 中dsp在dsp_drv.c中的processdata()加算法出现下边缘条纹问题

    (1)问题原因 dsp在alglink_priv.c中做灰度处理发现,下面出现条纹,后面发现是cache 缓存没及时写进内存问题 (2)解决办法 for(frameId=0; frameId<f ...

  2. 嵌入式驱动开发之--- 虚拟磁盘SBULL块设备驱动程序分析

     #define SBULL_MINORS  16         /* 每个sbull设备所支持的次设备号的数量 */  #define KERNEL_SECTOR_SIZE 512  // 本地定 ...

  3. Virtual IP address

    https://en.wikipedia.org/wiki/Virtual_IP_address Virtual IP address From Wikipedia, the free encyclo ...

  4. 查询局域网内全部电脑IP和mac地址等信息

    怎么查询局域网内全部电脑IP和mac地址等信息_百度经验 https://jingyan.baidu.com/article/54b6b9c0348e432d583b47c1.html 枚举ping ...

  5. YTU 1004: 1、2、3、4、5...

    1004: 1.2.3.4.5... 时间限制: 1000 Sec  内存限制: 64 MB 提交: 1275  解决: 343 题目描述 浙江工商大学校园里绿树成荫,环境非常舒适,因此也引来一批动物 ...

  6. 比特币客户端Electrum使用介绍

    简介 比特币的客户端很多,为什么选择Electrum. 首先Electrum真的很轻量,安装马上可以用,不用下载几百G的区块链账本.我之前安装bitcoin核心客户端,这是个完整节点.下载账本都要好多 ...

  7. [Usaco2015DEC] Breed Counting

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4397 [算法] 树状数组 时间复杂度 : O(QlogN) [代码] #includ ...

  8. linux设备驱动第三篇:如何写一个简单的字符设备驱动?

    在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动.本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存 ...

  9. hdu 1348【凸包模板】

    #include<iostream> #include<iostream> #include<algorithm> #include<cmath> us ...

  10. bzoj 2194: 快速傅立叶之二【NTT】

    看别的blog好像我用了比较麻烦的方法-- (以下的n都--过 \[ c[i]=\sum_{j=i}^{n}a[i]*b[j-i] \] 设j=i+j \[ c[i]=\sum_{j=0}^{n-i} ...