第一天:springmvc基础知识 什么是springmvc?
springmvc框架原理(掌握)
前端控制器、处理器映射器、处理器适配器、视图解析器 springmvc入门程序
目的:对前端控制器、处理器映射器、处理器适配器、视图解析器 学习
非注解的处理器映射器、处理器适配器
注解的处理器映射器、处理器适配器(掌握) springmvc和mybatis整合(掌握) springmvc注解开发: 常用的注解学习
参数绑定(简单类型、pojo、集合类型) 自定义参数绑定(掌握)
spring和structs2区别
一、springmvc基础知识
1 springmvc框架
1.1什么是springmvc
springmvc是spring框架的一个模块,两者无需通过中间整合进行整合 springmvc是一个基于mvc的web框架。
1.2mvc在b/s系统下的应用
mvc是一个设计模式,mvc在b/s系统下的应用:
request请求 用户 response响应 视图渲染 将模型数据填充到request域 C控制器 controller 接口用户请求响应 请求模型进行处理 处理结果返回 V视图 View Hs系统下模型无法将数据填充到视图 M模型(model) pojo action service dao
1.3springmvc框架
1、request请求 用户 11、 response 响应 前端控制器DispatcherServlet 接口用户请求、响应 、2、请求查找Handler (根据url查找handler) 3、返回一个执行链 HandlerExecutionChain{ Handlerinterceptor1 Handlerinterceptor2 } 10、视图渲染,将模型数据填充到request域 9、返回View 7、返回ModelAndView6、返回 Mode处理器映射器 HandlerMapping 请求适配器执4、行 Handler处理器 平常叫做controller lAndV8、请求进行试图解析 iew 5、执行 视图 jsp freemarker excel pdf 视图解析器 View resolver 处理器适配器 Handleradapter 去执行Handler 步骤:
第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求HandlerMapping查找Handler
可以根据xml配置、注解进行查找
第三步:处理器映射器HandlerMapping向前端控制器返回Handler 第四步:前端控制器调用处理器适配器去执行Handler 第五步:处理器适配器去执行Handler
第六步:Handler执行完成给适配器返回ModelAndView 第七步:处理器适配器向前端控制器返回ModelAndView
ModelAndView是springmvc框架的一个底层对象,包括Model和View
第八步:前端控制器请求视图解析器去进行试图解析
根据逻辑视图名解析成真正的视图(jsp)
第九步:视图解析器向前端控制器返回View 第十步:前端控制器进行视图渲染
视图渲染将模型数据(在ModelAndView对象中)填充到request域
第十一步:前端控制器向用户响应结果
组件:
1、 前端控制器DispatcherServlet(不需要程序员开发)
作用:接收请求,响应结果,相当于转发器,中央处理器。 有了DispatcherServlet减少了其它组件之间的耦合度。 2、 处理器映射器HandlerMapping(不需要程序员开发)
作用:根据请求的url查找Handler
3、 处理器适配器Handleradapter
作用:按照特定规则(Handleradapter要求的规则)去执行Handler
4、处理器Handler(需要程序员开发)
注意:编写Handler时按照Handleradapter的要求去做,这样适配器才可以去正确执行
Handler 5、视图解析器View resolver(不需要程序员开发)
作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
6、视图View(需要程序员开发jsp)
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…)
2入门程序
2.1需求
以案例作为驱动
Springmvc和mybatis使用同一个案例(商品订单管理)。 功能需求:商品列表查询
2.2环境准备
数据库环境
先导入sql_table.sql,再导入sql_data.sql脚本:
外键:orders_id 订单表:orders 记录了用户创建的订单 创建用户:users_id(外键) 订单号 创建时间 订单状态 一对一 一个订单明细只能属于一个订单 一对多 一个订单包括多个购买明细 订单明细表:orderdetail 记录了用户购买信息 所属订单:orders_id(外键) 商品id:items_id(外键) 商品数量 商品购买价格 外键:users_id 一对一: 一个订单只能由一个用户创建 通过订单明细表和商品表建立关系 一个订单对应多个商品 一对多 用户可以创建多个订单 多个商品 一个商品对应多个订单 订单表和商品表示多对多关系 一对多 一个商品对应多个订单明细 一对一 一个明细对应一个商品 外键: items_id 商品信息:items 用户表:user 记录了购买商品的用户信息 Id:唯一标识一个用户 记录了所以商品信息 商品id:id(主键) 商品名称: 商品介绍
数据库环境mysql5.1