Session与Cookie你必须了解的基础知识

Session与Cookie(自定义 Session)

Request — 只能在转发有效

context — 上下文 保存在服务器端上

Cookie:服务器和客户端资源保存—保存在客户端

Session:是保存在服务器上,存放在内存里面,客户端与服务端之间的通讯使用SessionId

场景在哪里?登陆,购物车, 移动App接口会话管理

Cookie默认浏览器关闭就失效,不同浏览器不通用

可以用Cookie.setMaxAge()负数为默认关闭失效,整数时以秒为单位

Cookie不安全不建议使用Cookie信息

Cookie的局限性:

  1. Cookie只能存字符串类型,不能存对象
  2. 只能存非中文
  3. 1个Cookie的容量不超过4KB,如果想保存非字符串,超过4KB的内容,只能使用session

Session底层实现原理

**原理:**服务器创建了一个Session之后(session的值是存放在服务器端上)会在响应里面将sessionId返回给客户端,客户端将SessionId保存在本地硬盘,在此请求的时候,将sessionId通过请求头的方式传给服务器端

HttpServletRequest 对象中,有getSession()可以传boolean参数,默认true表示如果没有找到session就会创建一个session,如果是false,如果没有找到了session,也不创建

关闭浏览只是SessionId被清除,Session没有消失

自定义Session

首先Session用Map集合去装数据,唯一不重复的字符串作为key,简称SessionId

清楚Session无非就是将Map集合数据清除掉

token其实就是一个令牌,具有随机性,有效期,不能重复,类似月sessionid

UUID(Universally Unique Identifier) 通用唯一识别码,让所有元素都有唯一的辨识资讯

表单重复提交

通过前端解决

form 中onsubmit加个script写的函数,用个flag控制

或者将提交按钮设置为不可用

通过后端解决

使用token+session

在from.jsp隐藏域存入一个token

然后和session的对比下就ok

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值