SpringMVC 框架:不是理论性知识。纯粹的工具。提升生产力工具。
历史上:spring -> springmvc(struts1,struts2)
基本原理:
- 反射。
- 依赖spring,实现控制反转和依赖注入。
如何引入springmvc?
- 在pom文件中引入springmvc的库。
- 在web.xml中配置springmvc。配置一个DispatchServlet,指定spirngmvc配置文件位
置 - 配置springmvc配置文件。
@RequestMapping 如果设置到类上,表示整个类的所有方法的请求路径的前缀
设置到方法上,表示该方法所处理的请求路径。
@Getmapping:表示仅接受get请求
@PostMapping:表示仅接受post请求。
关于参数:
参数:控制器handler,方法中如果定义了Map或者ModelMap,那么向这个Map实例或
ModelMap实例中存储的数据都会自动设置到request域中。
如果是基本数据类型作参数,则会将请求中的参数自动映射到对应的参数上,根据名称
匹配,自动类型转换。
如果请求中的参数和方法的中的参数名称不一致的话,可以使用@RequstParam注解,
来进行配置。
方法的参数中,如果有bean类,springmvc会自动将参数中的值,通过反射设置到bean
中。
方法的参数中,如果有bean类,springmvc在反射时,会级联设置。
方法的参数中,如果有Map类型,并且设置了@RequestParam注解,则springmvc会自
动将请求中的所有参数存储到map中
在方法中,可以定义HttpServletRequest、HttpServletResponse,HttpSession对象,
springmvc会自动注入。
关于返回值:
1.如果是返回String类型,表示存储转发到某个页面。
1.1 直接返回一个字符串名称,名称即视图名(去掉前缀和后缀)。
1.2 返回 “forward:/path”,path表示请求的路径。存储转发。
1.3 返回 “redirect:/path”,path表示请求的路径。重定向。
2. ModelAndView类型:ModelAndView类型,可以指定视图名称,也可以存储数据。
ajax操作需要引入json相关的库。
中文乱码
1.解决请求过程中的乱码问题。配置CharacterEncoding中文编码过滤器。
2. springmvc的路径参数。可以在请求路径上设置参数格式,并指定参数,在controller方
法中,使用@PathVariable注解来标识路径参数。
3. Restful 格式请求:
网络上所有的请求(动词),都是资源(事物,名词)的操作。
http协议:GET/POST/PUT/DELETE/OPTIONS
GET:获取资源
POST:新增资源,创建资源
PUT/PATCH:修改资源
DELETE:删除资源
OPTIONS:获取资源相关数据
文件上传:
1.form 要添加属性。表单的method必须是post,添加属性enctype=“multipart/form-data”
2.在表单中添加文件域。
3.在sprinvmvc配置文件中配置文件解析器。mulitpartResolver
4.下载依赖包。commons-fileupload -> commons-io
5.在springmvc方法中,定义参数MultipartFile,用于接受文件。注意:必须使用post请
求。
6.第一种:使用相对路径(相对于当前项目)存储上传的文件,缺点:某些servlet容器不
支持。
7.第二种:使用绝对路径,将文件上传到到指定的位置,然后通过serlvet容器设置外部路
径映射。