5分钟学会Cookie和Session技术(web会话技术,属于web核心必会知识)
目录
4设置cookie的访问域名setDomain(域名)可以在不同服务器之间进行访问。
一、什么是会话技术?
从打开浏览器向服务器发出请求,到关闭浏览器,可以看作是一次会话。一次会话可以包含多个请求和响应。一次会话的过程只能对应一个用户。
二、cookie和session是什么?
cookie是客户端(浏览器)技术,主要用来保存数据到客户端浏览器。比如:用户名和密码。
session是服务器技术,主要保存数据到服务器。例如,购物网站的购物车。
三、cookie如何创建以及常用方法
1.创建cookie对象
Cookie cookie=new Cookie(String a,String b);
第一个参数是:设置的cookie的名字,第二个参数是cookie的值。
response.addCookie(cookie);响应cookie到浏览器。
注意:tomcat版本有关系
tomcat7.x : cookie允许cookie的值有空格等字符,不允许有中文
tomcat8.x : cookie的值不允许有空格,有逗号,有分号等,允许有中文
2.设置cookie的生存时间setMaxAge(秒)
参数默认的是负数的秒值,浏览器关闭时,cookie会自动失效。
如果参数改为正数,则浏览器关闭时。cookie会被保存到本地硬盘中,正数是多少就保存多少秒。
如果参数是0,就是手动清除cookie。
3.设置cookie的访问路径setPath(路径)
如果,setPath("/")意思是只要路径包含“/”就可以访问到cookie但是 只能在同一个服务器中才能访问。
4设置cookie的访问域名setDomain(域名)可以在不同服务器之间进行访问。
例如:setDomain(“baidu.com”)则所有访问路径里包含baidu.com的路径,都可以访问到。
5,获取cookie
Cookie[] cookies = request.getCookies();
获取到的是一个数组,可以通过cookies.getName()得到cookie的key值,通过,cookies.getValue获取到value值。
cookie原理详解
四、session对象的创建以及原理
1.服务器如何保证session唯一的原理:
当浏览器第一次请求服务器时,服务器响应浏览器,服务器会自动生成一个名字是的JESSIONID的cookie,并生成一串唯一的id作为cookie的值,返回到浏览器。当浏览器再次,请求服务器时,会在请求中携带有JESSIONID的cookie,服务器根据cookie就知道是同一个用户在访问。
2.获取HttpSession对象:
HttpSession session = request.getSession();
3. 使用HttpSession对象:
①根据设置的name获取session的值
Object getAttribute(String name)
②设置session
void setAttribute(String name, Object value)
③删除session
void removeAttribute(String name)
4. 重要细节:
1. 当客户端关闭后,服务器不关闭,两次获取session是否为同一个?
* 默认情况下。不是。
* 如果需要相同,则可以创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存。
Cookie c = new Cookie("JSESSIONID",session.getId());
c.setMaxAge(60*60);
response.addCookie(c);
2. 客户端不关闭,服务器关闭后,两次获取的session是同一个吗?
* 不是同一个,但是要确保数据不丢失。tomcat自动完成以下工作
* session的钝化:
* 在服务器正常关闭之前,将session对象系列化到硬盘上
* session的活化:
* 在服务器启动后,将session文件转化为内存中的session对象即可。
3. session什么时候被销毁?
1. 服务器关闭
2. session对象调用invalidate() 。
3. session默认失效时间 30分钟
选择性配置修改
<session-config>
<session-timeout>30</session-timeout>
</session-config>
5. session的特点
1. session用于存储一次会话的多次请求的数据,存在服务器端
2. session可以存储任意类型,任意大小的数据
* session与Cookie的区别:
1. session存储数据在服务器端,Cookie在客户端
2. session没有数据大小限制,Cookie有
3. session数据安全,Cookie相对于不安全
- JavaWeb开发中的会话技术[Cookie/Session]
- JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解
- JavaWeb之会话技术Cookie&Session
- Web使用中会话,会话跟踪,Cookie,Session的相关知识
- 大数据WEB阶段(十二)会话技术、Cookie、Session及两者的区别
- Web会话技术Cookie和Session
- Web开发之会话管理技术(Cookie、Session)
- java web之会话技术cookie+session
- WEB中的会话技术:Cookie及Session
- 会话技术Cookie和Session简单介绍
- 会话技术 cookie和session 学习笔记
- 会话技术(Cookie,Session)
- Web 会话机制(cookie+session)与实例
- Session 与 Cookie--- 深入分析 Java Web 技术内幕,第 10 章
- Cookie&Session会话技术&Servlet三个作用域总结
- Servlet 会话技术 , Session 及 Cookie 详解
- 9 会话技术cookie与session
- JavaWeb-10(会话技术之session&JSP)
- 会话追踪技术session和cookie
- web会话跟踪Cookie和Session