文档章节

SpringMvc

ZGXQ
 ZGXQ
发布于 2017/02/12 08:21
字数 898
阅读 248
收藏 22
点赞 1
评论 1

1、什么是springMVC

springmvc是spring公司出品的一个表现层框架

2、springMvc的作用

A、从请求中接收参数

B、将处理好的数据返回给页面

3、怎么用

springMvc处理流程

1).spring mvc将所有的请求都提交给DispatcherServlet。

2).DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller,请求提交到目标Controller

3).Controller进行业务逻辑处理后,会返回一个ModelAndView

4).Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象,视图对象负责渲染返回给客户端。

4、SpringMvc的三大组件:处理器映射器,处理器适配器,试图解析器

需要程序员编写的组件:处理器(也就是controller),试图(相当于jsp)

注解驱动和注解扫描是否都需要配置,为什么,区别是什么?

注解驱动:是为我们自动配置最新版的注解形式的处理器映射器和处理器适配器

注解扫描:扫描指定包下游@controller注解的类

两个东西不是一回事,不能混淆视听

5、架构整合思路

Dao层:

映射文件。接口文件,pojo使用逆向工程自动生成

sqlMapConfig.xml mybatis核心配置文件中可以为空,但是必须有

ApplicationContext-dao.xml 数据源,连接池,会话工厂,mapper包扫描

Service层:

ApplicationContext-service.xml 配置@service注解扫描

ApplicationContext-trans.xml配置事务

Controller层:

sprinMvc.xml 注解扫描,注解驱动,试图解析器

Web.xml

Spring监听,springMvc前端控制器

6、参数绑定:(从页面中接收参数)

 

A、默认支持的类型:HttpServletRequest,HttpServletResponse,HttpSession,model,默认支持的参数可以加也可以不加,加不加看自己需求,需要就加,不需要就不加

B、简单类型:string,double,integer,long,Boolean等

要求:接收变量名称必须等于页面上input框的name属性值,springmvc会自动进行类型转换

C、pojo类型

要求:页面上input框的name属性值必须等于pojo中德属性名称

D、pojo的包装类型QueryVo;

要求:如果传入的queryVo,那么页面上input框的name属性必须等于vo中的属性.属性.属性......

E、自定义转换器converter:

作用:springMvc可以进行简单类型的自动类型转换,但是无法转换日期类型,所以需要手动编写转换器来进行类型转换。

7、springMvc和struts2的区别

Struts2:

A、struts2的核心控制器是filter

B、接收参数:struts2使用全局类型的成员变量来接收参数,由于全局类型的成员变量是线程不安全的,所以struts2的action需要配置成多例

C、返回数据:struts2使用值栈

SpringMvc:

A、spring的核心控制器是servlet

B、接收参数:springMvc采用方法级别的局部变量来接收参数,局部变量用完就销毁,线程是安全的,所以spring的controller是单例的

C、返回值:springMvc使用request域

8、springMvc中对图片上传有接口的支持, 但是没有实现,所以需要第三方实现.

9、 json数据交互:

作用: 让springMvc自动将接收的json格式字符串转换成pojo对象,将pojo对象自动转换成json串返回给页面

springMvc中对json的支持有接口但是无实现, 所以需要第三方实现, 杰克逊的jar包,在开发中springMvc.xml配置注解驱动, 那么这样springMvc就跟杰克逊的jar包完美集成不用任何配置.

 

 

© 著作权归作者所有

共有 人打赏支持
ZGXQ
粉丝 1
博文 3
码字总数 2745
作品 0
石家庄
加载中

评论(1)

orientals
orientals
简单易懂
spring 相关jar包详解

spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到spring-mock.jar来进行辅助测试,正式应...

满风
2011/10/20
0
0
Spring Boot实战与原理分析

Spring Boot实战与原理分析 1:Spring Boot概述与课程概要介绍 2:Spring4 快速入门 3:Spring4 扩展分析(一) 4:Spring4 扩展分析(二) 5:Spring Boot 快速入门 6:Spring Boot 配置分析...

刘宗泽
06/26
0
0
2014-03-09 Spring的学习(0)-----Spring目录文件组织

Spring压缩包目录说明 目录名 相关介绍 aspectj 在Spring框架下使用aspectj的源代码和测试程序文, 是java最早的提供AOP的应用框架 dist Spring 的发布包,关于发布包下面会详细进行说明。 do...

查封炉台
2014/03/09
0
0
Spring Boot中Starter是什么

比如我们要在Spring Boot中引入Web MVC的支持时,我们通常会引入这个模块spring-boot-starter-web,而这个模块如果解压包出来会发现里面什么都没有,只定义了一些POM依赖。 经过研究,Start...

easonjim
2017/09/30
0
0
详解spring 每个jar的作用

spring.jar 是包含有完整发布模块的单个jar 包。但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar。 spring-src.zip就是所有的源代码压缩包。 除了spring....

mosaic101
2015/03/06
0
0
Spring MVC 到 Spring BOOT的简化之路

背景 从Servlet技术到Spring和Spring MVC,开发Web应用变得越来越简捷。但是Spring和Spring MVC的众多配置有时却让人望而却步,相信有过Spring MVC开发经验的朋友能深刻体会到这一痛苦。因为...

临江仙卜算子
05/09
0
0
spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包

下载spring http://spring.io/ 最重要是在特征下面的这段话,需要注意: All avaible features and modules are described in the Modules section of the reference documentation. Their ......

noteless
2016/02/24
0
0
Spring Boot 2.0 新特性解读

点击上方“程序员小灰”,选择“置顶公众号” 有趣有内涵的文章第一时间送达! 本文转载自公众号 InfoQ 作者|翟永超编辑|郭蕾Spring Boot 2.0 来啦,有哪些新特性?升级吗?写在前面 北京时...

bjweimengshu
04/13
0
0
Spring 源码解读 推荐流程

Spring源代码解析(一):IOC容器:http://www.javaeye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的启动:http://www.javaeye.com/topic/86594 Spring源代码解析(三):Sprin...

2k10
2015/04/02
0
0
Spring Cloud Finchley 正式发布,兼容 Spring Boot 2.0.x

经过数个前期测试版本,Spring Cloud Finchley 终于迎来了正式版本: 下载地址 发行说明 显著变化: 与 Spring Boot 2.0.x 兼容 不支持 Spring Boot 1.5.x 最低要求 Java 8 新增 Spring Clo...

淡漠悠然
06/20
0
12

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Django时区详解

引言 相信使用Django的各位开发者在存储时间的时候经常会遇到这样子的错误: RuntimeWarning: DateTimeField received a naive datetime while time zone support is active. 这个错误到底...

bobway
9分钟前
0
0
改造工程步骤

背景: 对于存在有问题的项目(包括 代码不规范 数据库表命名不规范 )需要改造 步骤: 1 新建工程 : 将需要改造的项目拷贝一份 修改项目名称 2 将相应的表结构拷贝到新的数据库中 修改不直...

猿神出窍
16分钟前
0
0
node报错{ xxx, xxx}

nodemon 启动语法报错 重新打开项目node代码报错,在node4.4.2下报错,把node版本切换到6就没有问题

x29
18分钟前
0
0
防火墙未来的发展趋势在哪里?

防火墙(Firewall),也称防护墙,是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网。当下互联网时代,无论是大小企业,大部分都会部署有防火墙的设备,但这些防火墙往往并不是都利...

六库科技
19分钟前
0
0
Elasitcsearch High Level Rest Client学习笔记(二) 基础API

1、index API IndexRequest request = new IndexRequest( "posts", //index "doc",  //type 类型,我对类型的理解有点类似于数据库中的表 index类似于数据库中的datab...

木子SMZ
22分钟前
0
0
[DUBBO] Ignore empty notify urls for subscribe url

学习dubbo,按照官方文档编写了 provider consumer 使用的注册中心是Multicast 多播(组播),报了上面的警告,客户端服务端都有类似的警告,并且服务消费者不能发现服务。网上找了各种解决办...

颖辉小居
34分钟前
0
0
unorder_map 随机元素

对于hash的结构来说 思路1:直接随机内部list 即可,但是数据量大的话 iter 要定位起来是个很麻烦的事情 思路2:先随机到一个可用bucket 然后再里面随机一个元素即可

梦想游戏人
40分钟前
0
0
g++编译过程

gcc & g++现在是gnu中最主要和最流行的c & c++编译器 。 g++是将默认语言设为c++,链接时自动使用C++标准库而不用 c标准库 C++标准库:http://www.runoob.com/cplusplus/cpp-standard-librar...

SibylY
41分钟前
0
0
docker更换镜像源

国内下载docker镜像大部分都比较慢,下面给大家介绍2个镜像源。 一、阿里云的docker镜像源 注册一个阿里云用户,访问 https://cr.console.aliyun.com/#/accelerator 获取专属Docker加速器地址...

xiaomin0322
43分钟前
0
0
7.07-获取多少天之前(之后)的日期

public String getDate(Date date,int days){ Calendar calendar=Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DATE,days); ......

静以修身2025
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部