SpringMVC的入口是DispatcherServlet,可以在web.xml配置DispatcherServlet 的拦截URL的表达式。下面对SpringMVC的运行流程做具体的说明

一、运行流程

1.客户端在发起请求时,会先去检查请求是不是符合DispatcherServlet的url-pattern

a:若不符合则检查是否配置mvc:default-servlet-handler,若配置则,访问目标资源,不存在抛出no mapping found for HTTP request URL(配置:mvc:default-servlet-handler可以访问静态文件,也可以借助<mvc:resources />标签)

b:若存在。则执行下一步(也就是2)

2、由HandlerMapping获取HandlerExecutionChain对象

3、获取HandlerAdapter对,调用拦截器PreHandle方法

4、调用目标Handler的目标方法等到ModelAndView

5、调用拦截器的postHandle方法,查看是否存在异常,若存在有HandlerExceptionResolver组件处理异常,生成新的ModelAndView,在进行下一步,若不存在,进行下一步

6、有viewResolver组件根据ModelAndView对象得到实际的View

7.渲染视图

8.调用拦截器的afterCompletion方法

二、使用步骤(HelloWorld)

1.需要的jar
      commons-logging-1.1.1.jar
      spring-aop-4.0.4.RELEASE.jar
      spring-beans-4.0.4.RELEASE.jar
      spring-context-4.0.4.RELEASE.jar
      spring-core-4.0.4.RELEASE.jar
      spring-expression-4.0.4.RELEASE.jar
      spring-web-4.0.4.RELEASE.jar
      spring-webmvc-4.0.4.RELEASE.jar

2.在web.xml配置文件中配置 DispatcherServlet

<servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置 DispatcherServlet 的一个初始化参数:配置SpringMVC 配置文件的位置和名称 --><!-- 实际也可以不通过contextConfigLocation 来配置SpringMVC 的配置文件, 而使用默认的 默认的配置文件为:/WEB-INF/<servlet-name>-servlet.xml --><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>springDispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

这边url-pattern设置是拦截所有请求,url-pattern可以根据自己的的项目需求自定义,多个请求配置多个url-pattern

3.在src下编写SpringMVC 的配置文件

   <!-- 扫描包 --><context:component-scan base-package="zhuojing.springmvc" ></context:component-scan><!-- 配置视图解析器:如何把handle 方法返回解析实际的物理视图 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/view/"></property><property name="suffix" value=".jsp"></property></bean>

4.Action

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class HelloWorld {/*** 1. 使用@RequestMapping 注解来映射请求的URL* 2. 返回值会通过视图解析器为实际的物理视图,对于InternalResourceViewResolver 视图解析器会做如下的解析*   通过 :prefix + returnVal + 后缀(suffix) 这样的方式得到实际的物理视图,然后做转发* @return*/@RequestMapping("/HelloWorld")public String helloWorld(){System.out.println("Hello World");return "success";}
}

SpringMVC总结-SpringMVC的运行流程以及简单运用相关推荐

  1. 爬虫学习笔记(六)——Scrapy框架(一):安装、运行流程及简单使用

    文章目录 一.简介 二.安装(Windows) 三.运行流程 3.1.数据流 3.2.组件介绍 3.3.简单使用 3.3.1.项目命令 3.3.2.shell 交互式平台 四.小案例:爬取豆瓣电影 4 ...

  2. SpringMVC运行流程分析

    一.运行流程图 下面是 SpringMVC 运行流程的分析图,包括了拦截器的调用过程,目标资源的处理以及异常处理. 二.运行流程中的相关组件 在上面的流程图中有几个比较重要的组件,下面大概描述一下其对 ...

  3. SpringMVC执行流程【简单理解举例】

    请选择你们的任意门: 本文介绍 Spring简单执行示例 改造成SpringMVC 程序执行流程分析 SpringMVC架构图以及执行流程(可以直接跳过来) 架构图 名词解释(官方话): 执行流程 自 ...

  4. SpringMVC的运行流程(一)

    白发戴花君莫笑,岁月从不败美人. 愿,像你我一如既往地好看. 上一章简单介绍了MyBatis的pageHelper分页插件的使用(十五),如果没有看过,请观看上一章. 这节主要是牵扯到SpingMVC ...

  5. SpringMVC的简介和工作流程

    一.简介 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.Spri ...

  6. SSM三大框架+SpringMVC的工作原理及其流程

    SSM三大框架+SpringMVC的工作原理及其流程 一.SSM中各层作用及关系 1.持久层:DAO层(mapper层)(属于mybatis模块)     DAO层(Mapper层):主要负责与数据库 ...

  7. 【 第六章 拦截器,注解配置springMVC,springMVC执行流程】

    第六章 拦截器,注解配置springMVC,springMVC执行流程 1.拦截器: ①springMVC中的拦截器用于拦截控制器方法的执行. ②springMVC的拦截器需要实现HandlerInt ...

  8. springmvc原理+springmvc面试题

    一.MVC模式 MVC是 model.view.和controller的缩写,分别代表web应用程序中的三种职责: model-模型:用于存储数据以及能处理用户请求的业务逻辑 view-视图:向控制器 ...

  9. SSM框架中MVC各层的作用以及运行流程

    这篇博文主要介绍的是SSM(Spring.SpringMVC.Mybatis)框架中,MVC各层的作用以及各层之间的交互和框架整体运行流程. 一.MVC各层级间的作用及关系 表现层(springMVC ...

最新文章

  1. 2022-2028年中国养老保险行业深度调研及投资前景预测报告
  2. 如何像青少年一样玩转 Snapchat
  3. pb mdi窗口多sheet_Filecoin奖励测试网8月3日开启,主网启动窗口:8月31日至9月21日...
  4. python在列表末尾删除一个_从链接列表的尾部移除(Python)
  5. OpenCV3学习笔记二:图像的掩膜操作
  6. Document Builder: Error message No virus scan provider available for scanner group CXP_VSCAN
  7. sql视图 权限_MySQL数据库的SQL语言与视图
  8. 提高SQLITE 大数据量操作效率的方法
  9. javaheapspace解决方案_高手总结的9种 OOM 常见原因及解决方案
  10. Mysql循环查询结果并设置排序编号
  11. 为了不把黑人兄弟认作大猩猩,谷歌的算法连真的大猩猩都不认识了
  12. Django 学习笔记之一 环境搭建
  13. 重新leetcode第2天——递归讲解合集
  14. Laravel Event模块分析
  15. 【SSM项目实战】航班订票系统SpringMVC+MyBatis+LayUI
  16. ASP.NET Core WebApi返回结果统一包装实践
  17. gta5怎么设置画质最好_GTA5画面如何设置最好_GTA5画质设置成最高配置推荐-win7之家...
  18. 分享一个大佬的网站,获取法定节假日
  19. 植物大战僵尸java版视频_Java小项目之:植物大战僵尸,这个僵尸不太冷!
  20. 计算机技巧资讯,玩转电脑需知技巧

热门文章

  1. 【Linux系统】第9节 linux系统中用户分类以及用户与组属性的修改示例
  2. c语言二级编程实例,二级c语言编程 -实例
  3. LayUI 后台管理模板
  4. 【mcuclub】蓝牙模块-ECB02
  5. java8简易学习阶段性总结(一)
  6. 程序员的思维修炼读书笔记(二)
  7. 机器人产业化给导电环行业带来的机遇
  8. linux存储是什么意思,Linux 内存管理中的 RSS 和 VSZ 是什么意思?
  9. 线上支付同时支持支付宝和微信,关于退款问题的测试
  10. outlook邮件撤回方法