- MVC设计模式
- SpringMVC框架简介
- SpringMVC基本使用
- SpringMVC的设计架构
- 参数传递:view-to-controller, controller-to-view
-
MVC设计模式
MVC设计模式是在软件开发中中经常使用的一种设计模式,也称为ModelII开发模式。
Model : 模型,JavaBean组件
View : 视图,用于展示数据:jsp,html,模板技术(freemarker, velocity)
Controller : 控制器,接收客户端请求,调用模型响应客户请求,选择视图展示,servlet充当控制器:SpringMVC, Struts2, jsf
-
执行流程图
springMVC简介
springMVC是个控制器框架,也称为MVC框架。优势:和spring可以无缝整合。
控制器框架一般会提供哪些功能?
- 参数封装:比如表单数据自动封装到实体类中
- 页面跳转:逻辑名称
- 异常处理:
- 国际化处理:
- 等等。。。。。。。
-
springMVC的使用步骤
- 下载并部署jar包:web webmvc + spring的包
- 在web.xml中配置核心控制器:DispatcherServlet, 监听器
- 编写springMVC的配置文件spring-mvc.xml: 控制器、视图解析器
- 编写控制器:注解,在springmvc的配置文件中配置控制器
- 编写视图页面
- 部署运行
-
spring注解
使用springMVC的注解驱动,首先需要配置:
@Controller : 将JavaBean标识为控制器
@RequestMapping : 请求映射,可以用在类和方法上
@InitBinder : 实现类类型转换器的注册
@RequestParam : 处理参数和方法参数不同名的情况
spring参数封装
view-to-controller
- 基本类型的参数封装:比如Integer, String, Boolean,直接定义为方法参数
- 封装到模型对象中:直接将模型对象作为方法参数,客户端的参数名称必须和模型对象的属性名保持一致:
- 日期类型如何封装
- 在模型类的属性行添加注解:
- 在控制中添加一个绑定的方法:
- 在模型类的属性行添加注解:
- 日期类型如何封装
- 如何向集合封装数据:List
客户端的参数命名:options[0].opt - 使用ModelAndView对象:addObject
- 使用ModelMap、Model、Map,会自动将数据放入request作用域
- 将数据放入session作用域
-
如何实现页面的重定向
重定向的地址是不走视图解析器:viewResolver
return “redirect:success.jsp”; 重定向到jsp
return “redirect:/user/index”; 重定向到控制器
如何进行乱码处理:
web.xml中配置编码过滤器:CharacterEncodingFilter
放过静态资源
springMVC请求处理流程:
- DispatcherServlet:核心控制器,不负责处理请求
- HandlerMapping:处理器映射,把 Url 和控制器建立映射关系, user/index
- HandlerAdapter : 处理器适配器,相当于一个环绕通知,比如调用方法之前进行参数封装;方法执行完毕以后负责将ModelMap中的数据转换到request作用域中。
- Handler:处理器,controller,一个控制器可以编写n个业务方法
- ModelAndView:handler的返回值,模型和视图
- ViewResolver:视图解析器,负责查找到视图并跳转