目录
1.@RequestPart上传文件
2.获取Cookie
1.使用@CookieValue
3.获取Session
3.1@SessionAttribute
4.设置Session
4.1HttpSession设置Session
5.获取Header
5.1@RequestHeader
6.返回数据
1.返回Json对象
7.请求转发或请求重定向
7.1forward和redirect区别
7.2请求转发forward
7.3请求重定向redirect
上篇博客地址:
springMVC(一)
1.@RequestPart上传文件
将传过来的文件放在D盘保存
使用postman测试
报错了,使用抓包工具fiddler去查看
发现好像是我们忘记写file文件的名称,
我们把file写上再次发送请求
现在看一下fiddler的抓包
可以看到成功上传了。我们去指定的地址查看
硬盘中也成功上传了文件 ,由此可以知道
@RequestPart()括号内的名称要和前端发送的key一样
2.获取Cookie
以前学习的就是从HttpServletRequest中去获取
那么有没有更简单的方式呢?
1.使用@CookieValue
我们去浏览器访问
报错了,我们查看日志打印以及@CookieValue源码发现他也是一个必传参数
我们打开网页来到开发者界面,按照以下步骤去手动添加对应名称的cookie
所以我们说Cookie存在于客户端是可以造假的,就像现在我们可以手动添加一样
此时我们重新访问页面
页面访问成功,后端成功返回数据了
3.获取Session
Session同Cookie不一样,Session存在于服务器端,是不可以造假的
以前我们也是通过HttpServletRequest中去获取
现在我们可以通过更简单的方式也就是注解去获取
3.1@SessionAttribute
这个我们提前查看源码发现他也是一个必传参数,但是Session不能造假,我们没办法传递,但是我们可以修改参数,让他变为非必传参数
此时去访问可以看到并不会报错
那么我们如何去设置Session呢?
4.设置Session
以前我们学习的就是在HttpServletRequest中去设置
那么现在还是有简单的方式
4.1HttpSession设置Session
此时我们去浏览器访问
session设置成功了,我们进入开发者模式查看 发现Cookie中多了一个SessionId
此时我们若是修改sessionId去访问是获取不到的
5.获取Header
通过fiddler抓包可以看到Header中的数据都是以键值对的方式存储的
5.1@RequestHeader
我们可以通过@RequestHeader注解来获取
去浏览器访问:
成功返回了userAgent的值
查看源码同样也是必传参数,可以使用require=false设置成非必传
6.返回数据
1.返回Json对象
通过浏览器去访问,成功返回map数据
通过抓包工具fiddler去查看发现返回的数据是json格式
所以当我们返回Map类型的数据时,spring会自动帮我们转换成json对象
7.请求转发或请求重定向
7.1forward和redirect区别
请求转发:服务器进行转发,服务器内部处理转化url地址,客户访问的url地址不会变
请求重定向:请求重新定向资源,客户访问的url地址发生变化
7.2请求转发forward
去浏览器访问发现url地址还是index/forward ,访问页面跳转到了index.html
7.3请求重定向redirect
我们去浏览器访问
发现访问地址url发生了变化,这就是请求转发和请求重定向的区别
请求重定向与直接访问新地址结果是一样的
通过fiddler抓包也能看到