Spring MVC 相关资料整理

摘要:
起源:http://www.cnblogs.com/ylhssn/p/4062757.html1概述Spring MVC是一个轻量级的Web框架,它实现了基于Java的MVC设计模式,这是一种请求驱动类型。也就是说,它使用MVC架构模式的思想来分离web层。基于请求-响应模型,它帮助我们简化日常web系统的开发。Spring MVC框架是一个MVC框架。它的前端控制器是DispatcherServlet的主要部分

来源于: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的整体处理流程如下:

 Spring MVC 相关资料整理第1张

图3-1 Spring MVC处理流程

 

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

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

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

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

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

4、Spring MVC版本的helloworld

1)准备jar包

 Spring MVC 相关资料整理第2张

2)文件结构

 Spring MVC 相关资料整理第3张

3)web.xml

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

 Spring MVC 相关资料整理第4张

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

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

5)控制器类HelloController

 Spring MVC 相关资料整理第5张

首先通过@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配置文件中配置一个视图解析器

 Spring MVC 相关资料整理第6张

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

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

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

7)hello.jsp

 Spring MVC 相关资料整理第7张

8)演示

 Spring MVC 相关资料整理第8张

5、SSH:Spring MVC+Spring+hibernate

1)准备jar包

此处略

2)文件结构

 Spring MVC 相关资料整理第9张

3)web.xml

 Spring MVC 相关资料整理第10张

配置字符集略

 Spring MVC 相关资料整理第11张

4)spring-bean.xml

Spring MVC 相关资料整理第12张

5)spring-common.xml

 Spring MVC 相关资料整理第13张

6)后台实现

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

UserController.java代码实现如下:

Spring MVC 相关资料整理第14张   

 Spring MVC 相关资料整理第15张  

7)index.jsp

 Spring MVC 相关资料整理第16张

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

  1. User Bean

 Spring MVC 相关资料整理第17张

2、spring-common.xml

Spring MVC 相关资料整理第18张

6、Spring MVC 配置详解

 Spring MVC 相关资料整理第19张

 Spring MVC 相关资料整理第20张

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

 Spring MVC 相关资料整理第21张

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

 Spring MVC 相关资料整理第22张

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

 Spring MVC 相关资料整理第23张

7、AJAX+JSON

a) 页面显示

 Spring MVC 相关资料整理第24张

b) 响应事件

 Spring MVC 相关资料整理第25张

c) 效果演示

 Spring MVC 相关资料整理第26张

Spring MVC 相关资料整理第27张

d) 后台实现

 Spring MVC 相关资料整理第28张

e)         所需jar包

Spring MVC 相关资料整理第29张

免责声明:文章转载自《Spring MVC 相关资料整理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇截断字符串,取指定长度字符(中英文通用)【转】70个经典的 Shell 脚本面试问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

1.AngularJS初探

1.需要什么前端开发环境 1)代码编辑工具 webstorm 2)断点调试工具 chrome插件Batarang 3)版本管理 tortoiseGit 4)代码合并和混淆工具   grunt-contrib-uglify     grunt-contrib-jshint     grunt-contrib-qunit     grunt-contrib...

微软CRM系统二次开发步骤以及注意事项

微软CRM系统的二次开发主要包括四个方面:1)自定义实体的设置;2):站点图的设置;3)ISV.Config文件(实体页面导航条以及功能菜单)的配置;4)客户端JavaScript的设计。 特别注意:对系统中进行的二次开发之后一定要在自定义界面选择“发布”,不然是不能使用的。 一:自定义实体的设置 微软CRM系统提供按照自己需求要求,对CRM系统功能进行扩...

Django之DRF框架

1 概述 Django REST framwork 提供的视图的主要作用 控制序列化器的执行(检验、保存、转换数据) 控制数据库查询的执行 2 视图继承关系 3 两个视图基类 3.1 APIView 继承了原生Django的view from rest_framework.views import APIView APIView是REST fra...

整理分布式锁:业务场景&分布式锁家族&实现原理

1、引入业务场景 业务场景一出现: 因为小T刚接手项目,正在吭哧吭哧对熟悉着代码、部署架构。在看代码过程中发现,下单这块代码可能会出现问题,这可是分布式部署的,如果多个用户同时购买同一个商品,就可能导致商品出现库存超卖 (数据不一致)现象,对于这种情况代码中并没有做任何控制。 原来一问才知道,以前他们都是售卖的虚拟商品,没啥库存一说,所以当时没有考虑那么多...

数据库部署之导入的视图数量少于脚本中的视图、函数/存储过程导入完毕存在大红叹号问题原因及解决方法

Oracle数据库从测试环境部署至生产环境,遇到一些小问题,记录一下 遇到的问题:1、导入的视图数量少于脚本中的视图 2、函数/存储过程导入完毕存在大红叹号 以上两个问题详见下列步骤中的4和5 整个过程如下: 1、 先从测试环境导出TPME用户的sql脚本,入下图中TPME.sql ①②③④⑤是对TPME.sql的拆分,文件名即表示其意思 2、 在生产环...

springcloud(一)-初识

springCloud简介   尽管springCloud带有“cloud”字样,但它并不是云计算解决方案,而是在SpringBoot基础上构建的,用于快速构建分布式系统的通用的工具集。从技术架构上降低了对大型系统构建的要求,使我们以非常低的成本(技术或者硬件)搭建一套高效、分布式、容错的平台,但Spring Cloud也不是没有缺点,小型独立的项目不适合...