Session和Cookie(会话跟踪技术)

Session和Cookie(会话跟踪技术)

Cookie通过在客户端记录信息确定用户身份

Session通过在服务器端记录信息确定用户身份

Cookie的应用:

1.保持用户登录状态
将用户的信息保存到Cookie中,并发送给浏览器,并且将有效时间设置为一个较长的时间,这样浏览器在以后访问 网站时,都会带着该Cookie,服务器以此来辨识用户,用户就不再需要输入用户名和密码等信息。

2.记录用户名

一旦用户登录成功以后,下次再登录时,直接将Cookie中的用户名读取并显示出来,这样用户就不需要再次输入 用户名,只输入密码即可

Cookie的设置和获取:

通过HttpServletResponse.addCookie的方式设置Cookie

 Cookie cookie = new Cookie("jieguo","true");       
 response.addCookie(cookie)

通过HttpServletRequest获取 Cookie:

Cookie[] cookies = request.getCookies();                    
if(cookies != null)                       
    for(Cookie c : cookies){                            
        String name = c.getName();//获取Cookie名称    
        if("jieguo".equals(name)){                                
        String value = c.getValue();//获取Cookie的值                               
            bool = Boolean.valueOf(value);//将值转为Boolean类型                            
        }                       
     } 

设置Cookie的有效时间:

//setMaxAge用来设置Cookie的大有效时间,需要int型的参数,代表有效的秒数 
    cookie.setMaxAge(秒数)//当参数大于0时,会设置为指定的秒数            
    cookie.setMaxAge(30);            
//当参数等于0时,浏览器不会保存Cookie,Cookie立即失效           
    cookie.setMaxAge(0);           
//当参数小于0时,和不设置是一样,当前会话有效           
    cookie.setMaxAge(-100);            
//设置一个永久有效的Cookie,并非永久,只是使Cookie的生命很长而已   
    cookie.setMaxAge(60*60*24*365*10);
 
session的设置和获取
HttpSession session = request.getSession();    // 获取Session对象 
session.setAttribute("loginTime", new Date());   // 设置Session中的属性
session.getAttribute("loginTime")           //获取session中存储的数据

为防止内存溢出,服务器会把长时间内没有活 跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自 动失效了。

setMaxInactiveInterval(100)  //设置用户超时访问session失效时间,单位是秒
Session和Cookie的区别

(1) Cookie数据保存在客户端,Session数据保存在服务器端。

(2) Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的 SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户 端,用Cookie保存的,用户提交页面时,会将这一SessionID提交到服务器端,来存取Session数据。这一过程,是 不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。
(3) Cookies是属于Session对象的一种。但有不同,Cookies不会占服务器资源,是存在客服端内存或者一个 Cookie的文本文件中;而Session则会占用服务器资源。所以,尽量不要使用Session,而使用Cookies。但是我们 一般认为Cookie是不可靠的,Cookies是保存在本机上的,但是其信息的完全可见性且易于本地编辑性,往往可以 引起很多的安全问题Session是可靠地。但是目前很多著名的站点也都用Cookie

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值