Cookie和Session(自用)

Web状态管理的四种方法:隐藏表单域、Cookie、Session、URL重写
隐藏表单域:只能用在表单上面,优点。缺点:不安全。值显示在html源代码中。

Cookie

Cookie:客户端器会话技术,由服务器生成,通过response将cookie写回浏览器,保存在浏览器上。
粗糙原理:服务器在响应请求是将一些数据以“键-值”对的形式通过响应信息保存在客户端上。
Cookie的生命周期默认为会话期间。也可以设置生命周期,方法是setMaxAge()。
写回浏览器:
response.addCookie(Cookie c)
获取cookie:
Cookie[] request.getCookies()
cookie的常用方法:
getName():获取cookie的key(名称)
getValue:获取指定cookie的值。

Session

Session :服务端端会话技术,浏览器在访问服务器时,服务器会获取jsessionid(大写),
若获取不到:
       服务器创建一个session,保存用户数据,将该session的jsessionid通过响应返回给浏览器,并且该jsessionid的值被浏览器的Cookie保存。
       若获取到:
              服务器拿着这个jessionid去session池中查找有无此session
       若查找不到:
              服务器创建一个session,保存用户数据,将该session的jsessionid通过响应返回给浏览器
       若查找到:
              拿过来直接使用,将该session的jsessionid通过响应返回给浏览器

Session生命周期:
创建:第一次调用request.getsession()创建
销毁:
服务器非正常关闭
ession超时
默认时间超时:30分钟 web.xml有配置 ( < session-timeout>分钟</ session-timeout> </ session-config> )
动设置超时:setMaxInactiveInterval(int 秒) 发呆时间
手动干掉session
session.invalidate()

一个浏览器共享一个session

在这里插入图片描述

ServletContext:共享的数据
HttpServletRequest:一次请求的数据,存储时间没有ServletContext时间长,响应生成时就销毁
HttpSession:一次会话交互的过程

ServletContext:应用上下文

Session持久化管理:将数据写入文件,钝化。将数据读取出来,激活。

URL重写:URL地址重写能够取得置于Cookie中的会话,并把会话ID附加到访问应用的各个URL最后
URL重写方法:
response.encodeURL()
response.encodeRedirectURL(“/lovobook/sucess.html” )

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值