简介:MVC框架 类似struts2,有spring提供的mvc框架技术。
优点:
- 天然的集成Spring,无缝整合spring。
2.支持所有Spring的语法(IOC/DI) - SpringMVC支持注解开发(支持注解的IOC/DI,支持注解定义访问路径)
- 性能高 只创建一个 (struts2 值栈 OGNL action的多例)
- SSM(Spring SpringMVC MyBatis)
环境搭建
① 核心思路
② 具体编码
- 导入jar
- 导入mvc.xml的配置文件
- 初始化配置web.xml
- 初始化mvc.xml
控制器的开发
访问路径:
要点说明:
- SpringMVC核心控制器内部初始化小的Spring工厂
- 控制器的生命周期:
创建: tomcat启动创建Controller的对象
创建个数: 只创建一个 - Controller属于线程不安全对象
绝对不要在Controller定义存储数据的属性。(尽量保证Controller是线程安全的)
SpringMVC使用Servlet的API
HttpServletRequest
HttpServletResponse
HttpSession
使用方式:直接在方法参数中声明即可。
SpringMVC接收请求参数
① 基本数据类型 + String类型参数接收
② 对象类型参数接收
路径跳转
1. Controller---->JSP(请求转发)
2.Controller–>JSP (重定向跳转)
3.Controller—>Controller(重定向跳转)
4.Controller---->Controller(请求转发)(一般不用)
注意: 一个请求过程中,尽量只包含一个业务逻辑。
[Controller—>Controller,使用重定向的方式]
Spring提供通用编码Filter
1.get请求
2.post请求
在所有的springmvc的控制器之前添加一个设置编码的Filter。
Spring的作用域操作
① Model
Model相当于Request作用域
使用:
- 在方法上参数中声明 (Model model)
- 存:model.addAttribute(“name”,值);
- 取: ${requestScope.name}
② Session作用域
使用:
@SessionAttributes({“model的值的name”})(在类上添加)
效果:
将name对应的值拷贝到session中一份。
③ 作用域补充
Request作用域:
SpringMVC的作用域: Model Map ModelMap
- Map使用:
a.方法上声明
b. 存:map.put(“key”,value);
c.取:${requestScope.key} - ModelMap的使用
a.方法上声明
b.存:modelMap.addAttribute(“name”,Value);
c.取:${requestScope.key} - ModelAndView
作用: 跳转 + 作用域
作用域:
a.获得:new ModelAndView();
b.存:mav.addObject(“name”,value);
c.取:${requestScope} - 跳转视图的作用:
设置跳转页面:mav.setViewName(“forward:/scope.jsp”);
跳转: return mav;
session作用域:
上一篇:Spring底层原理
下一篇:自定义类型转换器