会话详解

 

1. 引言

 

生活中的会话:人和人之间一次沟通的过程。

Web技术中:打开浏览器访问资源结束后关闭浏览器,这个活动的周期则为浏览器和服务器的会话。

 

2. Cookie

 

常用方法

 

//创建cookie对象

Cookie cook = new Cookie("name","xxx");

//响应信息中添加Cookie

//res.setHeader("Set-Cookie", "name=lisi");

res.addCookie(cook);

 

//获取Cookie信息

//接收从浏览器请求的Cookie信息

Cookie[] cookies = req.getCookies();

 

细节:

 

//设置Cookie路径

Cookie cook = new Cookie("name","xxx");

Cook.setPath(“”);

注意:默认路径为web应用的名称

 

//设置Cookie时间

//设置cookie的时间,默认浏览器关闭时删除

//参数如下

//正数过期时间(单位:秒)将Cookie信息存入硬盘

//负数Cookie信息存入内存,浏览器关闭则消失。

//0将同名cookie删除

//cook.setMaxAge(0);

 

注意:

1. Cookie只支持非中文字符串。

2. 浏览器一般只允许存放300Cookie,每个站点最多存放20Cookie,每个Cookie的大小限制为4KB

 

3. HttpSession

 

域对象,作用保存和获取数据,共享数据。

 

特点:Cookie保存在客户端,只能存非中文字符串。

Session 保存在服务器(内存中),可以存对象。(将sessionID存在客户端)

 

3.1 核心方法

//获取Session对象

//特点:判断请求头中有没有JSESSIONID

//如果没有,没有则新建session,并创建新的JSESSIONID

//如已经存在JSESSIONID,则根据该ID去查询或创建Session

HttpSession session = req.getSession();

//根据JSESSIONID查找session,如没查到,不创建session

HttpSession session = req.getSession(false);

 

//域对象相关方法

getAttribute()

setAttribute()

removeAttribute()

 

//设置session

//得到sessionid

getId();

//设置session在服务器上的过期时间

setMaxInactiveInterval(int interval)

//删除session

invalidate()

 

//使用配置文件配置session的过期时间

<session-config>

<!-- 单位:分钟 -->

<session-timeout>60</session-timeout>

</session-config>

 

//如希望浏览器重新开打后还保存JSESSIONID

//可以设置cookie时间(将cookie[JSESSIONID]包存在硬盘中)

//获取sessionid

String id = session.getId();

Cookie coo = new Cookie("JSESSIONID",id);

coo.setMaxAge(60*60*24);

res.addCookie(coo);

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值