我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容。
前言:此随笔主要是Java基础中的基础,相信大家对这方面肯定有着自己的理解和认识,具体详解可以参照万能的baidu,有的我就一笔带过,希望在我的学习之路上能够有大牛进行指导,也有更多的小伙伴共勉。
1.cookie和session了解入门
cookie和session 是计算机会话技术,会话是指:一次会话中包含多次请求和响应.浏览器给服务器发送第一次请求会话建立,知道一方断开会话结束.
cookie会话技术
客户端会话技术,将数据保存到客户端.
1.快速入门:
- 使用步骤
1.创建Cookie对象,绑定数据
new cookie(String name,String value)
2.发送cookie对象
response.addcookie(Cookie cookie)
3.获取Cookie,拿到数据
Cookie[] request.getCookies()
2.实现原理:基于响应头set-cookie和请求头cookie实现
3.cookie细节:
- 一次可以发送多个cookie创建多个cookie对象,用response调用addcookie即可;
- cookie默认存储时间是在浏览器关闭之后销毁,也可以配置数据,如果是正数,就在正数结束后进行自动销毁,如果是负数,则是默认值,如果是0则删除cookie信息.
- 在tomcat8中可以存储中文,但是特殊字符不支持,需要使用URL编码存储,在tomcat7之前需要进行编码设置,才可以存储中文.一般是哟个(%E3)
- 默认情况下cookie是不进行共享的,如果想要哦共享需要设置setpath将访问路径的虚拟目录进行修改cookie值的取值范围.
- 不同tomcat服务器之间的cookie是可以进行共享的可以设置domain(String path)
4.cookie的作用和特点
- cookie存储数据在客户端浏览器
- 浏览器对于单个cookie有大小限制(4kb)以及同一域名下的cookie也有数量限制(20)
- 作用:
cookie一般用于存储少量不敏感的数据;
在不登陆的情况下对客户端身份进行识别.
session主菜:服务器端的会话技术
服务器端的会话技术,再一次会话的多次请求间共享数据,将数据存储到服务器的对象中.HttpSession
1.快速入门
4. 获取HttpSession对象
HttpSession session = request.getsession();
- 使用HttpSession对象
getAttribute(String name)
setAttribute(String name , Object value)
removeAttribute(String name)
2.Session的实现是依赖于cookie的
3.Session细节
- 当客户端关闭后,服务器是不关闭的,那么两次获取的Session一般不是同一个;如果需要的话可以创建Cookie,键位JSESSIONID设置最大存活时间,让cookie持久化保存;
- 客户端不关闭,服务器端关闭,两次获取的session不是同一个,但是要确保数据不丢失,tomcat一般要自动完成如下操作:
-Session的钝化操作,在服务器未关闭前,将数据存储到硬盘上;
-Session的火花操作,在服务器打开后,将session文件转化为内存中的session对象.
3.session什么时候被销毁?一般是服务器关闭时销毁,也可以session对象调用invalidate(),或者是默认失效时间30分钟,选择配置进行修改<Session-config>内的<session-timeout>修改时间
4.Session的特点:
- session用于存储一次会话的多次请求数据,存在服务器端,
- session可以存储任意类型,任意大小的数据
Cookie和Session的区别
- session存储数据在服务器端,cookie存储在客户端
- session没有数据带下限制,cookie有
- session数据安全,cookie相对不安全.