1,静态资源的访问开启
开放静态资源的访问,mapping是url,location是具体文件在哪个目录下。
这是一个映射关系,如,在网站上输入
https://localhost:8080/js/jquery.3.1.1.js 就会映射到/js/jquery.3.1.1.js这个目录下找这个文件
在这里使用。
也可以输入这个代替之前的映射。让原始的tomcat容器帮我们找jquery这个js文件
2,配置全局乱码过滤器
post会出现中文乱码问题
所以在web.xml中配置一个全局过滤器
再测试
3,参数绑定注解@requestparam(这是一个类似映射配置)
当请求的参数名称与controller的业务方法参数名称不一致时,就需要通过@RequestParam注解去绑定关系
name的值映射到username中
测试
能获取到值。
4,Restful风格的参数的获取
Restful是一种软件架构风格,主要用于客户端和服务器交互类的软件,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存机制等
这种风格的请求是使用“url+请求方式”表示一次请求目的,http协议里面四个表示操作方式的动词如下:
* GET:用于获取资源
* POST:用于新建资源
* PUT:用于更新资源
* DELETE:用于删除资源
在客户端传值不使用“?name=张三“的形式,直接写想传的值,在controller中使用@PathVariable注解和参数接受数据,在@RequestMapping中用占位符来表示这个是值而不是映射地址的一部分。
客户端(get请求方式)
控制台
5,自定义类型转换器
SpringMVC默认提供一些日常的类型转换器,如客户端提交的字符串转换成int型进行参数设置,但是日期类型的数据就需要自定义转换器。
(1)定于转换器类实现Convter接口
(2)在spring-mvc.xml文件中声明转换器
(3)在spring-mvc.xml中的<annotation-driven>里引用转换器
测试
客户端
控制台
细节部分
6,获得servlet相关api
SpringMVC支持使用原始ServletAPi对象作为控制器方法的参数进行注入,常用的对象如下
* HttpServletRequest
* HttpServletRespone
* HttpSeccion
测试
7,获取请求头信息
请求头信息包括
使用@RequestHeader注解可以获得请求头信息,相当于web阶段学习的request.getHeader(name)这个信息是以键值对的方式,请求头名对应请求头值
(1)@RequestHeader注解的属性如下:
value:请求头的名称
required:是否必须携带这个请求头。默认true
客户端
控制台
(2)@CookieValue
使用@CookieValue可以获得指定Cookie的值
@CookieValue注解的属性如下
value:请求头的名称
required:是否必须携带这个cookie
客户端
控制台
一致
8,文件上传
文件上传客户端三要素
表单项type=“file
表单的提交方式是post
表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data“
(1)单文件上传
首先创建一个上传文件的jsp
导入fileupload和io坐标
配置文件上传解析器
编写quic22文件上传代码
把文件上传到指定位置
测试
上传并保存成功
(1)多文件上传
多文件就是在表单多写一项,controller方法的参数多写一个。
如果<input>标签中的属性名一样,controller方法的参数就用数组去接,保存就用for循环