· 客户端和服务器之间进行数据传输遵循的是HTTP协议, 此协议属于无状态协议(一次请求对应一次响应, 响应完之后断开连接), 服务器是无法跟踪客户端的请求, 通过cookie技术可以给客户端添加一个标识, 客户端之后发出的每次请求都会带着这个标识从而让服务器识别此客户端, 但由于cookie的数据是保存在客户端的, 存在被篡改的风险, session技术是将数据保存在服务器端的, 这样就可以提高安全性, 不存在被篡改的风险
· cookie: 数据保存在客户端(类似于打孔式的会员卡)
cookie数据默认保存在浏览器的内存中, 当会话结束时cookie会从内存中清除, cookie也可以修改任意保存时间, 只要是设置了事件数据会从内存中保存到磁盘中
只能保存字符串类型的数据
由于cookie保存的数据会随着每次请求一起传递给服务器, cookie是存在于请求头中的, 所以单个cookie的数据存储量只能保存几k的数据
应用场景: 记住用户名和密码, 通过cookie实现
· session: 数据保存在服务器(类似银行卡)
session数据是保存在服务器内存中, 由于服务器内存资源紧张, 保存的时间只有半个小时左右
可以保存任意对象类型的数据
单个session没有保存数据量的限制, 但是由于服务器内存资源紧张, 也不建议保存大量数据
应用场景: 记住登录状态
通过cookie实现记住用户名和密码
· 登陆成功时将用户名和密码通过cookie下发给客户端, 保存在客户端浏览器中
在login.html页面中添加记住用户名和密码的控件 和user里面的rem属性进行双向绑定
在User实体类中添加rem属性 重新生成get set方法 和tostring方法
在UserController 登录成功的时候 创建cookie把用户名和密码装进cookie 发送给客户端
在login.html页面的created方法中获取cookie里面的用户名和密码显示到页面中