会话跟踪技术

我爱Java

会话跟踪技术

cookie
概念

Cookie是一种 客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问

Cookie的工作流程

在这里插入图片描述

Cookie的基本使用
        //创建cookie对象  
        Cookie cookie = new Cookie("key", "value");
        //添加到响应中,发送到客户端中保存
        response.addCookie(cookie);
 
        //从request中获取所有的cookie
        Cookie[] cookies = request.getCookies();  
        //使用cookie对象获取对应的值
		cookie.getName();
		cookie.getValue();
Cookie如何实现

-

Cookie的使用注意事项

1.Cookie的存活时间

  • 默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁
//设置Cookie的存活时间
setMaxAge(int seconds)
//设置存活时间   ,1周 7天
cookie.setMaxAge(60*60*24*7); 

2.Cookie如何存储中文

//对中文进行URL编码
value = URLEncoder.encode(value, "UTF-8");
Session
概念

服务端会话跟踪技术,将数据保存到服务端,安全性相较于Cookie会较高一点

Session的工作流程

Session的工作流程

Session的基本使用
//获取Session对象
HttpSession session = request.getSession();
//存储到session域中
  session.setAttribute("username", "zx");

//获取Session对象
HttpSession session = request.getSession();
//获取数据
Object username = session.getAttribute("username");
//根据 key,删除该键值对
void removeAttribute(String name)
Session 实现流程

在这里插入图片描述

Session 注意事项

1.钝化与活化

  • 钝化:在服务器正常关闭后,Tomcat会自动将Session数据写入硬盘的文件中

  • 活化:再次启动服务器后,从文件中加载数据到Session中

2.销毁

  • 默认情况下,无操作,30分钟自动销毁
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
<!--  自定义销毁时间-->
    <session-config>
        <session-timeout>100</session-timeout>
    </session-config>
</web-app>
  • 调用Session对象的invalidate()进行销毁
 session.invalidate();
Cookie和Session的区别是什么?
  • 存储位置:Cookie 是将数据存储在客户端,Session 将数据存储在服务端
  • 安全性:Cookie不安全,Session安全
  • 数据大小:Cookie最大3KB,Session无大小限制
  • 存储时间:Cookie可以通过setMaxAge()长期存储,Session默认30分钟
  • 服务器性能:Cookie不占服务器资源,Session占用服务器资源
Cookie和Session的应用场景分别是什么?
  • 购物车:使用Cookie来存储
  • 以登录用户的名称展示:使用Session来存储
  • 记住:使用Cookie来存储
  • 验证码:使用session来存储
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值