一:springmvc概述
SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架.
二:springmvc入门案例
1. 创建工程,导入依赖
2. web.mxl中配置核心控制器- Servlet
3. 创建 spring mvc 的配置文件
4. 编写控制器并使用注解配置
5.测试
三:springmvc执行流程
1、用户发送请求至前端控制器DispatcherServlet
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、处理器映射器根据请求url找到具体的处理器,并返回给 DispatcherServlet。
4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
5、执行处理器(Controller,也叫后端控制器)。
6、Controller执行完成返回ModelAndView
7、HandlerAdapter将controller执行结果ModelAndView返回给 DispatcherServlet
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9、ViewReslover解析后返回具体View
10、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
11、DispatcherServlet响应用户
四:请求参数的 绑定
1.基本类型参数
要求我们的参数名称必须和控制器中方法的形参名称保持一致
2.POJO 类型参数
要求表单中参数名称和 POJO 类的属性名称保持一致。并且控制器方法的参数类型是 POJO 类型
3.数组和集合类型参数
1>.给 List 集合中的元素赋值,使用下标.
2>.给 Map 集合中的元素赋值,使用键值对.
五:常用注解
1. RequestMapping
用于建立请求 URL 和处理请求方法之间的对应关系
2. RequestParam
把请求中指定名称的参数给控制器中的形参赋值
3.RequestBody
用于获取请求体内容
4.PathVaribale
用于绑定 url 中的占位符,例如:请求 url 中 /delete/{id},这个{id}就是 url 占位符
5.CookieValue
用于把指定 cookie 名称的值传入控制器方法参数
6.ModelAttribute
可以用于修饰方法和参数:
方法:出现在方法上,表示当前方法会在控制器的方法执行之前,先执行
参数:出现在参数上,获取指定的数据给参数赋值
7.SessionAttribute
用于多次执行控制器方法间的参数共享
六:响应数据和结果视图
1.返回值分类
1>.返回字符串:Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址
2>.返回值是void:如果控制器的方法返回值编写成void,执行程序报404的异常,默认查找JSP页面没有找到
3>.返回值是ModelAndView对象:ModelAndView对象是Spring提供的一个对象,可以用来调整具体的JSP视图
2.SpringMVC框架提供的转发和重定向
1>.forward请求转发:return "forward:/user/xxx";
2>.redirect重定向:return "redirect:/user/xxx";
3.springmvc实现异步
ResponseBody响应json数据:@ResponseBody
七:SpringMVC实现文件上传
1.文件上传三要素:
1>.表单提交方式必须是post
2>.必须有文件上传项,且有name值
3>.enctype="multipart/form-data"
2.springmvc方式实现文件上传
1>.SpringMVC框架提供了MultipartFile对象,该对象表示上传的文件,要求变量名称必须和表单file标签的name属性名称相同
2>.配置文件解析器 multipartResolver
3.SpringMVC跨服务器方式文件上传
1.搭建图片服务器
2.实现SpringMVC跨服务器方式文件上传
八:springmvc的异常处理
1.异常处理思路
Controller调用service,service调用dao,异常都是向上抛出的,最终有DispatcherServlet找异常处理器进行异常的处理。
2.SpringMVC的异常处理
1>.自定义异常类
2>.自定义异常处理器
3>.配置异常处理器
九:SpringMVC框架中的拦截器
1.拦截器的概述
1>.SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术
2>.拦截器和过滤器的区别:
①过滤器配置了可以拦截任何资源,
②拦截器只会对控制器中的方法进行拦截.
2.自定义拦截器步骤:
1.创建类,实现HandlerInterceptor接口,重写需要的方法
2.在springmvc.xml中配置拦截器类