关于Springmvc

一: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中配置拦截器类

你可能感兴趣的:(关于Springmvc)