来源于:http://www.cnblogs.com/ylhssn/p/4062757.html

1、概述

Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们简化日常web系统的开发。

Spring MVC框架就是一种MVC框架。其前端控制器是DispatcherServlet主要用于控制流程;应用控制器为Handler Mapping-处理器映射器进行处理器管理和View Resolver-视图解析器进行视图的解析;页面控制器/动作跳转处理器为Controller接口;支持本地化解析、文件上传等;提供了十分灵活的数据校验、格式化和数据绑定机制;采用约定优于配置的契约式编程方式。

Spring MVC框架围绕DispatcherServlet这个核心展开,DispatcherServlet的作用是截获请求并组织一系列组件共同完成请求的处理工作。

2、Spring MVC的特点

l  容易设计清爽干净的web层。

l  与Spring框架集成(IOC容器、AOP等)。

l  提供约定优于配置的契约式编程支持。

l  更加快捷、简单的单元测试。

l  灵活的URL到控制器的映射。

l  支持Rest风格。

l  ...........................

3、Spring MVC体系结构

Spring MVC框架也是一个基于驱动的MVC框架,通过实现Model-View-Controller模式很好的将数据、业务、展现进行分离。Spring Web MVC的设计是围绕前端控制器DispatcherServlet来展开的,DispatcherSerlvet负责将请求根据映射规则分发给相应控制器 (Controller),根据可配置的Handler mappings处理请求并转到相应的视图。Spring MVC的整体处理流程如下:

图3-1 Spring MVC处理流程

由上图可知,Spring MVC大致的执行流程如下:

1、首先浏览器发送请求给前端控制器DispatcherServlet,DispatcherSerlvet根据请求信息,基于一定的原则选择合适的控制器进行处理并把 请求委托给它。

2、页面控制器接收到请求之后进行功能处理,首先需要收集、绑定请求参数到一个对象(命令对象),并进行验证,然后将该对象委托给业务对象进行处理(service层);业务对象处理之后控制器将返回一个ModelAndView(模型数据和逻辑视图名);

3、DispatcherServlet根据返回的逻辑视图名,选择合适的视图进行渲染(界面展示、资源加载),并把模型数据传入以便视图渲染。

4、前端控制器将响应返回个客户端浏览器。

4、Spring MVC版本的helloworld

1)准备jar包

2)文件结构

3)web.xml

在web.xml文件中配置DispatcherServlet,在web.xml文件中添加如下片段:

4)Spring配置文件 hello-servlet.xml

在这个文件中可以定义各种各样的Spring MVC需要使用的Bean。

5)控制器类HelloController

首先通过@Controller注解标示这个类是一个控制器,接下来通过@RequestMapping注解为制定方法sayHello处理哪些请求,在这个例子中,sayHello方法仅仅处理GET类型的/hello请求。

sayHello方法接收一个org.springframework.ui.Model类型的参数model,SpringMVC会自动将请求参数封装进model中,我们可以简单的把model理解为一个Map。我们在方法中从model中取出参数person的值并且打印出来,接下来往 model中添加一个属性msg,值为"Hello,World!",然后返回视图名称hello。

6)在Spring MVC配置文件中配置一个视图解析器

添加了mvc名称空间,接下来启用了spring的自动扫描,并且设置了默认的注解映射支持。

这里需要重点解释的是配置文件中的那个bean。它的类型是是Spring MVC中最常用的一种视图解析器,当然还有很多其他的类型。

其中prefix属性是指视图前缀,suffix是视图后缀,这里配置的是.jsp,我们在控制器的方法 sayHello中返回的是hello,再结合这里的配置,对应的完整的视图是:/WEB-INF/jsp/hello.jsp。

7)hello.jsp

8)演示

5、SSH:Spring MVC+Spring+hibernate

1)准备jar包

此处略

2)文件结构

3)web.xml

配置字符集略

4)spring-bean.xml


5)spring-common.xml

6)后台实现

Dao、entity、manager包下的类实现略。

UserController.java代码实现如下:

7)index.jsp

8)通过注解实现实体类和数据库表的绑定

  1. User Bean

2、spring-common.xml


6、Spring MVC 配置详解

以上4个方法示例,是一个Controller里含有不同的请求url,也可以采用一个url访问,通过url参数来区分访问不同的方法

 其实RequestMapping在Class上,可看做是父Request请求url,而RequestMapping在方法上的可看做是子Request请求url,父子请求url最终会拼起来与页面请求url进行匹配,因此RequestMapping也可以这么写:

在SpringMVC中常用的注解还有@PathVariable,@RequestParam,@PathVariable标记在方法的参数上,利用它标记的参数可以利用请求路径传值,看下面一个例子

7、AJAX+JSON

a) 页面显示

b) 响应事件

c) 效果演示

d) 后台实现

e)         所需jar包

Spring MVC 相关资料整理相关推荐

  1. epoll相关资料整理

    http://www.cppblog.com/converse/archive/2008/10/13/63928.html epoll相关资料整理 学习epoll有一段时间了,最近终于有一个服务器采用 ...

  2. 转:基于iOS上MDM技术相关资料整理及汇总

    转自:http://www.mbaike.net/mdm/6.html 一.MDM相关知识: MDM (Mobile Device Management ),即移动设备管理.在21世纪的今天,数据是企 ...

  3. PRML:Pattern Recognition And Machine Learning 相关资料整理与下载

    Pattern Recognition And Machine Learning 相关资料整理与下载 前言 一.PRML英文原文 二.PRML中文翻译版 三.PRML勘误与附加评论 四.读者整理的笔记 ...

  4. Scaleform相关资料整理

    Scaleform相关资料整理 官方教程: http://udn.epicgames.com/Three/Scaleform.html 麻将桌的视频: http://gameware.autodesk ...

  5. Citrix 相关资料整理

    转载请注明 http://blog.csdn.net/u011046042/article/details/72638345 思杰相关的资料整理: 官方网站 https://www.citrix.co ...

  6. 文本处理相关资料整理

    github 搜索文本相似度 文本处理实践相关资料,包含文本特征提取(TF-IDF),文本分类,文本聚类,word2vec训练词向量及同义词词林中文词语相似度计算.文档自动摘要,信息抽取,情感分析与观 ...

  7. Spring MVC基础知识整理➣国际化和异常处理

    概述 Spring框架为WEB项目提供了国际化以及异常处理机制.所谓的国际化也就是不同国籍,显示不同国籍的语言与符号.异常处理,也就是能够捕获WEB项目下的所有异常信息,并能处理记录这些异常信息机制. ...

  8. 无人机相关资料整理-备忘

    近期一直在学习无人机相关基础知识以及平台搭建方面的知识,搜集了很多网站的相关信息,有一些比较有用的github.中英文资料.谈论区网址.还收藏了一些免费的课程,以及自己已购买的课程的链接.有些普及的教 ...

  9. 源码分析工具Joern的相关资料整理

    随着对joern的了解,发现这个工具的潜能挺大的.但实际上手起来还是有点难度.这里列举一些对学习joern有帮助的相关资料博客. joern官方文档:https://docs.joern.io/ jo ...

最新文章

  1. 关于IOS的屏幕适配(iPhone)——资源适配
  2. 信息与计算机科学好学吗,计算机科学与技术好学吗?
  3. 数学图形(2.7)sphere sine wave
  4. ajax的数据库,AJAX 数据库
  5. concurrent (二)AQS
  6. 用积木做了个无人机。
  7. 棋盘里的数学(qduoj 记忆化搜索)
  8. 低代码开发平台_低代码开发平台测评——伙伴云
  9. UML类图操作(一)
  10. 加分二叉树(洛谷-P1040)
  11. 七.激光SLAM框架学习之A-LOAM框架---速腾Robosense-16线雷达室内建图
  12. go语言 字符串处理
  13. vjudge-Knight Moves(bfs)
  14. Android - 返回上一个界面finish()方法
  15. JSP自定义标签_属性接收复杂类型处理方式
  16. Android KLog源代码分析
  17. BMP图片的旋转以及BMP转YUV(4:2:0)
  18. Configtool
  19. Cisco ISO 计划命令 kron实现配置定时自动备份
  20. 前馈神经网络(FNN)

热门文章

  1. outlook2010 打开总是提示“正在加载配置文件”
  2. matlab中help所有函数功能的英文翻译
  3. 远程控制软件VNC教程和对内网机器控制的实现
  4. RSA签名的PSS模式
  5. 寻找隐形冠军 支付宝、微信用得那么溜,可谁知道背后有一名“上海功臣
  6. 深挖数据价值 阿里云栖开年大会报道
  7. 如何在OpenStack环境中实现多Region
  8. 禁止COOKIE后对SESSION的影响
  9. 百度之星试题每周一练
  10. tomcat7自身调优和JVM调优