Spring MVC开发步骤以及执行流程
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开发步骤以及执行流程相关推荐
- Spring MVC拦截器的执行流程
本节我们主要讲解 SpringMVC 拦截器的执行流程.分两部分介绍,首先介绍单个拦截器执行流程然后介绍多个拦截器的执行流程. 单个拦截器的执行流程 在配置文件中如果只定义了一个拦截器,程序将首先执行 ...
- MyBatis+Spring MVC开发指南(一)
前言 MyBatis+Spring MVC这套组合,在实际互联网项目中非常流行,博主工作中也涉及过,打算由浅入深.系统的写出来!这个系列将会涵盖MyBatis开发详解.Spring MVC开发详解,以 ...
- 使用Spring MVC开发Restful Web服务
REST简介 摘自Wikipedia: REST风格的体系结构由客户端和服务器组成. 客户端向服务器发起请求: 服务器处理请求并返回适当的响应. 请求和响应围绕资源表示的传递而构建. 资源本质上可以是 ...
- Spring MVC开发–快速教程
这是我们的JCG合作伙伴之一,来自Manoj的有关使用Spring开发Web应用程序的简短教程, 网址为" The Khangaonkar Report ". (注意:对原始帖子进 ...
- openresty开发系列31--openresty执行流程
openresty开发系列31--openresty执行流程 我们先看个例子 location /test { set $a 32; echo $a; set $a 56; ...
- spring boot之Spring Mvc开发和常用注解说明
spring boot之Spring Mvc开发和常用注解说明 Spring boot主要用于开发微服务接口.所以采用的控制层注解主要是restful形式. 创建微服务: 与上一篇文章一致. 依赖多一 ...
- data spring 指定时区_Spring 框架基础(05):Mvc架构模式,执行流程详解
本文源码:GitHub || GitEE 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面, ...
- Go003:Go程序开发的步骤+Golang执行流程分析
开发的步骤 一.开发这个程序页目时,go的目录结构怎么处理 二.开发一个hell.go程序 对上图的说明 1.go文件的后缀是.go 2.package main 表示hello.go文件所在的包是m ...
- Struts 2 Spring Hibernate三大框架的执行流程以及原理
转:http://www.cnblogs.com/System-out-println/p/5974113.html Struts2框架 一.简介 Struts2是一个相当强大的Java Web开源框 ...
最新文章
- 汇编试验六:实践课程中的程序
- eclipse的菜单栏消失问题解决
- ajaxfileupload 跨域 (二级域名) 可行办法
- 形容等待时间长的句子_雅思听力该如何准确辨别句子结构?学会结构精听,雅思8分轻松get!...
- 如何为 .NET Core CLI 启用 TAB 自动补全功能
- 太快了,太变态了:什么会影响Java中的方法调用性能?
- jedispool redis哨兵_通过java哨兵JedisSentinelPool代码示例连接对配置的redis哨兵主从模式进行测试验证...
- 新增成功到编制为空bug_36 个JS 面试题为你助力,让面试更有力(面试必读)
- 【chorme插件开发】第五节:纯js实现的功能插件实例
- 【Elasticsearch】如何在 Elasticsearch 中查找并移除重复文档
- Java-LockSupport
- python装第三方库有几种方法_Python安装第三方库的4种方法
- php易宝支付扫码支付代码_谈谈扫码支付
- Python基本数据类型(列表)
- 英特尔nuc能代替主机吗_拆了拆了!Intel NUC装机!小机箱退烧器啊!主机显示器合体...
- 如何修改Excel2016默认的等线字体--亲测可用
- 腾讯x5 WebView选择文件的正确姿势
- JavaWeb新闻发布系统案例1
- Photoshop CS6安装教程
- 自动化缺陷检测系统---项目总览