Spring MVC开发步骤以及执行流程

开发步骤

1.在web.xml中定义前端控制器DispatcherServlet来拦截用户请求。

2.如果要以post方式提交请求,则定义包含表单数据的jsp页面。如果是以get方式发送请求,则无需经过这一步

3.定义处理用户请求的handler,可以实现Controller接口,或者使用@Controller注解。

这一步是必不可少的,因为DispatcherServlet是MVC的C,也就是前端控制器,该控制器负责接受请求,并将请求分发给对应的handler,即实现Contrller接口的java类,该java类负责调用后台业务逻辑代码来处理请求。

在SpringMVC中,控制器实际上是由两个部分共同完成的。即拦截所有用户请求和处理请求的通用代码都是前端控制器DispatcherServlet完成,而实际的业务控制,比如调用后台业务逻辑代码,返回处理结果,则由Controller处理。

4.配置handler。

<!--配置handler,映射/hello请求--><bean name="/hello" class="com.game.HelloController">

Spring2.5后用注解来配置handler

@Controllerpublic class HelloController{@RequestMapping(value="/hello")public ModelAndView hello(){}}

5.编写视图资源

当handler处理用户请求结束后,通常会返回一个ModelAndView对象,该对象应该包含返回的视图名和模型,这个试图名就代表需要显示的物理视图资源。

执行流程

SpringMVC的应用开发流程实际上按照请求响应流程来开发。

1.用户向服务器发送请求,请求被Spring的前端控制器DispatcherServlet拦截

2.DispatcherServlet对请求URL(统一资源定位符)进行解析,得到URI(请求资源标识符)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象,包括Handler对象以及对应的拦截器,这些对象被封装到一个HandlerExecutionChain对象当中返回

3.DispatcherServlet根据获得Handler,选择一个合适的HandlerAdapter。它会被用于处理多种Handler,调用Handler实际处理请求的方法。

4.提取请求中的模型数据,开始执行Handler

5.Handler执行完成后,想DispatcherServlet返回一个ModelAndView对象。

6.根据返回的ModelAndView对象,选择一个合适的ViewResolver(视图解析器)返回给DispatcherServlet.

7.ViewResolver结合Model和View来渲染视图。

8.将视图渲染结果返回给客户端。

Spring MVC开发步骤以及执行流程相关推荐

  1. Spring MVC拦截器的执行流程

    本节我们主要讲解 SpringMVC 拦截器的执行流程.分两部分介绍,首先介绍单个拦截器执行流程然后介绍多个拦截器的执行流程. 单个拦截器的执行流程 在配置文件中如果只定义了一个拦截器,程序将首先执行 ...

  2. MyBatis+Spring MVC开发指南(一)

    前言 MyBatis+Spring MVC这套组合,在实际互联网项目中非常流行,博主工作中也涉及过,打算由浅入深.系统的写出来!这个系列将会涵盖MyBatis开发详解.Spring MVC开发详解,以 ...

  3. 使用Spring MVC开发Restful Web服务

    REST简介 摘自Wikipedia: REST风格的体系结构由客户端和服务器组成. 客户端向服务器发起请求: 服务器处理请求并返回适当的响应. 请求和响应围绕资源表示的传递而构建. 资源本质上可以是 ...

  4. Spring MVC开发–快速教程

    这是我们的JCG合作伙伴之一,来自Manoj的有关使用Spring开发Web应用程序的简短教程, 网址为" The Khangaonkar Report ". (注意:对原始帖子进 ...

  5. openresty开发系列31--openresty执行流程

    openresty开发系列31--openresty执行流程 我们先看个例子 location /test {     set $a 32;     echo $a;     set $a 56;   ...

  6. spring boot之Spring Mvc开发和常用注解说明

    spring boot之Spring Mvc开发和常用注解说明 Spring boot主要用于开发微服务接口.所以采用的控制层注解主要是restful形式. 创建微服务: 与上一篇文章一致. 依赖多一 ...

  7. data spring 指定时区_Spring 框架基础(05):Mvc架构模式,执行流程详解

    本文源码:GitHub || GitEE 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面, ...

  8. Go003:Go程序开发的步骤+Golang执行流程分析

    开发的步骤 一.开发这个程序页目时,go的目录结构怎么处理 二.开发一个hell.go程序 对上图的说明 1.go文件的后缀是.go 2.package main 表示hello.go文件所在的包是m ...

  9. Struts 2 Spring Hibernate三大框架的执行流程以及原理

    转:http://www.cnblogs.com/System-out-println/p/5974113.html Struts2框架 一.简介 Struts2是一个相当强大的Java Web开源框 ...

最新文章

  1. 汇编试验六:实践课程中的程序
  2. eclipse的菜单栏消失问题解决
  3. ajaxfileupload 跨域 (二级域名) 可行办法
  4. 形容等待时间长的句子_雅思听力该如何准确辨别句子结构?学会结构精听,雅思8分轻松get!...
  5. 如何为 .NET Core CLI 启用 TAB 自动补全功能
  6. 太快了,太变态了:什么会影响Java中的方法调用性能?
  7. jedispool redis哨兵_通过java哨兵JedisSentinelPool代码示例连接对配置的redis哨兵主从模式进行测试验证...
  8. 新增成功到编制为空bug_36 个JS 面试题为你助力,让面试更有力(面试必读)
  9. 【chorme插件开发】第五节:纯js实现的功能插件实例
  10. 【Elasticsearch】如何在 Elasticsearch 中查找并移除重复文档
  11. Java-LockSupport
  12. python装第三方库有几种方法_Python安装第三方库的4种方法
  13. php易宝支付扫码支付代码_谈谈扫码支付
  14. Python基本数据类型(列表)
  15. 英特尔nuc能代替主机吗_拆了拆了!Intel NUC装机!小机箱退烧器啊!主机显示器合体...
  16. 如何修改Excel2016默认的等线字体--亲测可用
  17. 腾讯x5 WebView选择文件的正确姿势
  18. JavaWeb新闻发布系统案例1
  19. Photoshop CS6安装教程
  20. 自动化缺陷检测系统---项目总览

热门文章

  1. 开源日志系统log4cplus(三)
  2. 单实例数据库迁移到rac环境(四)上
  3. 移动一个网站集所使用的内容数据库
  4. 复杂多目录的Makefile模板及示例-转
  5. SDL附着window窗口的方法
  6. [Python] L1-014. 简单题-PAT团体程序设计天梯赛GPLT
  7. 蓝桥杯 ADV-75 算法提高 简单计算器
  8. 蓝桥杯 ALGO-98 算法训练 数位分离
  9. 蓝桥杯 BASIC-19 基础练习 完美的代价
  10. python snmp 自动化2-在python中使用snmp