springMVC知识点学习笔记

一、 springMVC开发框架原理图
springMVC知识点学习笔记_第1张图片
springMVC知识点学习笔记_第2张图片
其中的组件:
1,前端控制器DispatcherServlet(不需要程序员开发)
作用是接收请求,响应结果,相当于转发器
2,处理器映射器HandlerMapping(不需要程序员开发)
作用:根据请求的url查找handler
3,处理器适配器HandleAdapter
作用:按照特定规则去执行Handler
注意:编写Handler时要按照HandlerAdapter的要求去做 ,这样适配器才可以去正确执行Handler
4,视图解析器View resolver(不需要程序员开发)
作用:进行视图解析,根据逻辑视图名解析真正的视图(view)
5、视图View(需要程序员开发jsp)
View是一个接口,实现类型支持不同的view类型(jsp,freemarker,pdf,excel等)
6、处理器Handler(重点:需要程序员开发

二、springmvc开发的环境搭建和入门程序
springMVC知识点学习笔记_第3张图片
1,配置前端控制器(是一个servlet,在web.xml中配置映射)
springMVC知识点学习笔记_第4张图片
2、配置处理器映射器,处理器适配器,视图解析器,处理器Handler,都是在springmvc的配置文件springmvc.xml中配置。
2.1、处理器适配器
根据源码分析,框架是根据实现了HandlerAdapter接口都是认为是适配器,handler实现了controller接口
springMVC知识点学习笔记_第5张图片
controller接口 返回值为ModelAndView,根据此接口来编写handler
springMVC知识点学习笔记_第6张图片
2.2、handler(也叫controller)编写,需要实现controller接口
springMVC知识点学习笔记_第7张图片
上图中ModelAndView的addObject()方法(存储数据到域中,以便视图中jsp调用数据)和指定视图方法setViewName()

2.3、配置视图jsp(jstl表达式)省略
2.4、配置处理器映射器和处理器Handler一块配置
springMVC知识点学习笔记_第8张图片

2.5、视图解析器
springMVC知识点学习笔记_第9张图片
3、非注解开发处理器映射器,处理器适配器(了解)
4、使用注解开发处理器映射器,处理器适配器(重点掌握
在springmvc.xml中配置如下图:
springMVC知识点学习笔记_第10张图片
特别是使用注解驱动自动加载更多的配置(比如json转换解析器等),就不用配置上面的二个映射器和适配器.
4.1、注解开发Handler
springMVC知识点学习笔记_第11张图片
上图中使用注解@Controller和@RequestMapping
(1)这样就不需要继承controller接口
(2)不需要在springmvc.xml中为handler配置name属性的url
(3)可以自己定义方法名,而且可以定义多个方法,方便拓展
4.2、在Handler在spring容器中注册
springMVC知识点学习笔记_第12张图片
4.3、部署调试
http://localhost:8080/springMVC/queryItems.action
测试通过

5、视图解析器的前缀和后缀
springMVC知识点学习笔记_第13张图片
5.1、配置前后缀后controller可以简写为
这里写图片描述

三、springmvc和mybatis整合(重点)

springMVC+mybatis三层架构图
面试题:三层架构中spring的作用
springMVC知识点学习笔记_第14张图片

1、整合的思路(先持久层在业务层最后前端表现层)
springMVC知识点学习笔记_第15张图片
2、需求
springmvc+mybatis来实现商品列表查询的需求
3、搭建环境
springMVC知识点学习笔记_第16张图片
4、整合Dao
mybatis和spring进行整合。
4.1、 首先编写mybatis的全局配置文件sqlMapConfig.xml
springMVC知识点学习笔记_第17张图片
4.2、配置spring的配置文件applicationContext-dao.xml
配置信息如下:
(1)数据源(数据库连接池c3p0)
(2) sqlSessionFactory工厂,为创建sqlSession会话
(3)mapper映射文件,采用自动扫描(xml和java文件名一只且必须在同一目录中)
springMVC知识点学习笔记_第18张图片
4.3、编写mapper文件,逆向工程生成pojo类和mapper(单表增删改查)
4.4、手动定义商品查询mapper,ItemsMapperCustom.xml配置
springMVC知识点学习笔记_第19张图片
4.5、itemsMapperCustom.java编写
这里写图片描述
5、整合service
5.1、spring管理service接口
这里写图片描述
和dao层的接口定义一模一样
5.2、定义service接口的实现,去调用dao层数据
springMVC知识点学习笔记_第20张图片
5.3、在spring容器中配置service
创建applicationContext-service.xml文件配置service接口
这里写图片描述
创建applicationContext-transaction.xml,使用声明式方法事务控制
springMVC知识点学习笔记_第21张图片
6、配置表现层的springmvc
6.1、首先配置springmvc.xml配置文件
springMVC知识点学习笔记_第22张图片
6.2、配置前端控制器
springMVC知识点学习笔记_第23张图片
6.3、编写Handler(实际开发叫controller)
springMVC知识点学习笔记_第24张图片
6.4、编写jsp页面(使用jstl表达式)(省略)
6.5、把这些配置加入到spring的ioc容器中
加载mapper,service,controllor到spring容器中
建议使用通配符加载上边的配置文件
在web.xml中添加一个监听器,触发加载spring容器
![这里写图片描述] (http://img.blog.csdn.net/20160510153300659)
6.6、程序调试
在jsp页面上出了问题,就是不能识别el表达式的属性名,耽误了大半时间,后来才想到了没有放在form表单中,而且调试中还出现了缺失2个包aopalliance-1.0.jar和aspectjweaver.jar
7、商品信息修改功能开发
7.1 需求:
1、首先获取商品列表信息页面
2、点击修改,根据id修改商品信息页面,数据要显示在修改页面上
3、修改完成后,数据提交到数据库中,并重定向到商品列表信息页面
7.2 开发步骤和思路
7.2.1 开发mapper(不用开发了,使用逆向工程生成的代码)
(1)根据id查询商品信息
(2)根据id更新商品信息
7.2.2开发service(关键是业务逻辑开发)
也是根据id查询和更新商品信息
springMVC知识点学习笔记_第25张图片
7.2.3开发controller
(1)商品信息修改页面展示
(2)商品更新后提交页面
springMVC知识点学习笔记_第26张图片
上图中的代码不是终极代码,只是为了测试成功,把id值写死了,也没有进行参数绑定和返回值类型都是ModelAndView。
8、一些知识点的讲解
8.1 注解@ResourceMapping的作用
(1)url映射:定义controller方法对应的url,进行处理映射
(2)窄化请求映射
springMVC知识点学习笔记_第27张图片
定义在类的上面进行窄化请求映射,对url进行分类管理
(3)限制http请求方式
出于安全考虑,对http的链接进行方法限制
如果限制请求为post方法,进行get请求就会报错
这里写图片描述

你可能感兴趣的:(spring,mvc)