Spring MVC 工作流程详解

ChromeT 2018-11-14 原文

Spring MVC 工作流程详解

1.首先先来一张图

 

 

 

开始流程—————-》

1.用户发送请求到前端控制器,前端控制器会过滤用户的请求,例如我们在web.xml里面配置的内容;

<!– 配置SpringMVC核心控制器 –>
  <servlet>
    <servlet-name>springMVC</servlet-name>

    //前端控制器是一个Servlet 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:config/spring-mvc.xml</param-value>
    </init-param>
    <!– 启动加载一次 –>
    <load-on-startup>1</load-on-startup>
  </servlet>

<servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <!-- 此处可以可以配置成*.do -->
        <url-pattern>/</url-pattern>
</servlet-mapping>

这里表示过滤以/开始的所有请求

2-3.前端控制器会找到处理器映射器(HandlerMapping),简单来说就是它会去找你配置好@Controller ,然后把请求的url 与处理器绑定在一起

@Controller
public class UserCon {

@Autowired
private UserService userService;

@ResponseBody
@RequestMapping(method = RequestMethod.POST, value = “/login”)
  public String login(HttpServletRequest request) {

  String phone = request.getParameter(“phone”);
  String password = request.getParameter(“password”);
  boolean b = userService.login(phone, password);
  if (b) {
    return “true”;
  }
    return “false”;

}

这里绑定url就是/login 这里吧login和login()方法绑定在一起,并且返回这个绑定后的Map集合

4-5 HandlerAdapter 会将Map集合中的Login()拿出来交给Handler处理器

5-6 Handler处理器处理代码最终会处理器会返回一个ModelAndView对象给HandlerAdapter(这里不返回视图,直接返回String)

7-8 通过HandlerAdapter将ModelAndView对象返回给前端控制器(DispatcherServlet)

9-10 前端控制器请求视图解析器(ViewResolver)去进行视图解析,根据逻辑视图名解析成真正的视图(jsp);

最终返回给用户,呈现在浏览器上

 

发表于 2018-11-14 18:35 朝北 阅读() 评论() 编辑 收藏

 

版权声明:本文为ChromeT原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ChromeT/p/9959644.html

Spring MVC 工作流程详解的更多相关文章

  1. 《SpringMVC从入门到放肆》十四、SpringMVC分组数据校验

    上一篇我们学习了数据校验,但是在实际项目中,还是有些不够灵活,今天我们就来继续学习一种更灵活的数据校验方法—— […]...

  2. Spring Boot从入门到精通(十一)集成Swagger框架,实现自动生成接口文档

    Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Sw […]...

  3. 手撸了一个HTTP框架:支持Sprng MVC、IOC、AOP,拦截器,配置文件读取…

    https://github.com/Snailclimb/jsoncat :仿 Spring Boot 但不 […]...

  4. Spring Security 入门(一):认证和原理分析

    Spring Security是一种基于Spring AOP和Servlet Filter的安全框架,其核心是 […]...

  5. Spring Cloud (十五)Stream 入门、主要概念与自定义消息发送与接收

    前言 不写随笔的日子仿佛就是什么都没有产出一般……上节说到要学Spring Cloud Bus,这里发现按照官 […]...

  6. Spring Boot项目在Mac下使用Maven启动时碰到的神奇问题:Unregistering JMX-exposed beans on shutdown

    错误如下: ➜ springboottest1 mvn spring-boot:run [INFO] Scan […]...

  7. Spring Boot整合@Scheduled定时计划

      SpringBoot集成了@Scheduled的相关依赖(org.springframework.sche […]...

  8. spring cloud (三、服务提供者demo_provider)

           spring cloud (一、服务注册demo_eureka)          spring […]...

随机推荐

  1. 基于Flask框架搭建视频网站的学习日志(三)之原始web表单

    基于Flask框架搭建视频网站的学习日志(三)1.原始Web 表单 本节主要用于体验一下前端后端直接数据的交互 […]...

  2. 文本自动摘要:基于TextRank的中文新闻摘要

    TextRank算法源自于PageRank算法。PageRank算法最初是作为互联网网页排序的方法,经过轻微地 […]...

  3. Android Studio 百度地图导航

       配置就不再多说了,上一篇已经详细说过了,这次就是根据经纬度坐标做地图导航,路径规划。直接上代码: pac […]...

  4. c 中关于int,unsigned int , short 各种类型总结 – youxin

    c 中关于int,unsigned int , short 各种类型总结 2013-08-03 00:52  […]...

  5. 关于全局uuid的一点设想

    在一次公开课上,听别人讲过全局分布式uuid的设计,听过twitter的snowflake的设计。也听过,如果 […]...

  6. SQL Server 2008 R2 Enterprise企业版

    SQL Server 2008 R2 Enterprise企业版 第一步,安装前先安装NET Framewor […]...

  7. iOS性能检测之Instrunments – 几种常用工具简单介绍

    Instrunments:  没错,就是这货,很多人平时开发可能不一定会用到这个,但我要说的是,学会使用它,会 […]...

  8. coding++:都说新的Arraylist 扩容是(1.5倍+1) 看了1.8的源代码发现不是这么回事

     都说新的Arraylist 扩容是(1.5倍+1) 看了1.8的源代码发现不是这么回事 就用下面这段代码在j […]...

展开目录

目录导航