javaweb第十七天 Session&Cookie

文章目录

  • 一,会话技术
  • 二,Cookie
  • 三,Session

一,会话技术

1,会话:会话也就是客户端与服务器进行通信的过程(可以存在多次请求) ==>打电话

2,web会话:也就是当浏览器打开的时候,会话创建,当浏览器关闭的时候会话关闭 ==>浏览器

3,会话分类:客户端的会话(Cookie,不是内置对象)与服务器的会话 Session(这个事内置对象)

二,Cookie

作用::把数据存到客户端,可以做一些智能推荐,还可以减轻服务器的压力
缺点:存在客户端:不安全,存的都不是特别重要的信息

Cookie的使用步骤:
1.实例化这个Cookie Cookie cookieName = new Cookie(“uname”,“upwd”); ==>以键值对的形式来进行存

2.需要把Cookie 添加到响应对象 response.addCookie(cookieName);

3.获取Cookie Cookie[] cookies = request.getCookies(); ==>通过request来获取所有的cookie

4.getName() =>来获取设置的键名 =>getValue() =>获取具体的值

注意点:
1.Cookie 设置中文,需要编解码 编码:RLEncoder.encode(“中文”,“UTF-8”) 解码 ==>URLDecoder.decode(c.getValue(),“UTF-8”)
2不设置cookie保存的时候,默认会随着浏览器关闭,而销毁

设置 cookie的时间: setMaxAge(6060); 以秒为单位 setComment(“nddhh”) 设置其描述*

三,Session

注意
sessionId 默认保存的时间是30分钟,会话关闭之后,这个sessionId就不能够找到
原因:http请求协议是无状态,一次性的的连接
原来的sessionId 过30分钟之后,会自动回收 ==每次重新打开浏览器都会重新创建一个新的sessionId,原来的没有被回收,只是找不到

.session属于jsp的四大内置对象作用域之一 = > session.setAttribute(“eee”,“kkk”); =>存值
=> session.getAttribute(“eee”); 取值
=> session.removeAttribute(“eee”); 清空

三种方式:把session的值清空
1.会话结束的时候
2. session.removeAttribute(“eee”);根据键来清除某一个值
3. session.invalidate(); 清空session里的所有的键与值

;
session 默认的时间是:30分钟 ==>修改session 时间的两种方案:

  1. session.setMaxInactiveInterval(606024) 以秒为单位
  2. 在web.xml进行配置
    < session-config >
    < session-timeout >60< /session-timeout>
    < /session-config>

你可能感兴趣的:(javaweb,java)