开发者学堂课程【Java面试疑难点串讲5:系统架构及项目设计第一课时:Cookie问题】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/28/detail/603
Cookie问题
1、Cookie是不是必须客户端天转完成之后才会被设置进去?
答:对于Cookie的设置,有两种模式:
- WEB服务其自动设置:指的是第一次访问里面的任何一个页面,这个页面不管发不发生跳转,只要是用户访问的,只要是第一次访问,系统会自动设置一个Cookie;
- 是手工的方式来设置Cookie,大部分开发者都会忽略一个关键性的问题,就是Cookie的路径问题。在默认情况下,假设说现在在“pages/back/msg”目录下,在这个目录下执行了respond.addCookie(c),这个时候的Cookie只会存在此目录下。
在这个状态下是必须要点刷新的,只有点了刷新才能去看件Cookie的数据,所以这个时候即使设置了Cookie,如果更改了目录,例如:“pages/back”下,那也无法取得Cookie。
因为路径不同所以就需要在设置Cookie的时候,如果确定要保存,除了设置时间之外,也需要设置路径,路径就设置为根目录。
根目录的获取方法:“request.getContextPayh()”。
2、如果在使用了response.setCookie之后有服务器跳转,在服务器跳转后去获取Cookie是不是就获取不到?
答:是可以获取到的,关键的问题是需要看设置的路径有没有“set/pass”,如果有就可以获取,这个是相当关键的问题。
3、在显示页显示不了,但是刷新一下就能找到Cookie。
答:Cookie是一定会跳转的,但是如果用服务器进行跳转,那第一次肯定是获取不到的,前提是要保证路径是对的,跳转之后需要手动刷新,才会获取数据。