session失效后怎么获取getattribute_Cookie与Session

一、Cookie

b33ea57ffccd8e9d70f95baba2388ee3.png

1、Cookie的本质与相关属性

Cookie是什么?

Cookie:服务器保存到浏览器的东西。它的形式是键值对(名+值为一个Cookie),所以它具有Name和Value属性。

66b16b8db30dbcbbb005aab3e82ba51f.png
浏览器怎么判断哪个服务器/服务器上的jsp文件可以访问该Cookie呢?

Cookie具有Path属性,它是浏览器用来判断服务器能否访问该Cookie:若服务器的文件访问路径包含Cookie路径,那么可以访问该Cookie;否则不能访问。

例如:Cooke1的Path为:/Project,jsp1的路径(访问路径):/Project/a.jsp,jsp2的路径:/AProject/a.jsp。那么jsp1可以访问Cookie1,而jsp2不可以访问Cookie1

Cookie保存在浏览器的哪里,保存多长时间呢?

Cookie可以保存在内存或者硬盘中。若保存在内存中,浏览器关闭就清除Cookie;若保存在硬盘中,则会保存Cookie最大生命周期时间。

Cookie的MaxAge属性,是与Cookie生命周期相关的属性。如果MaxAge>0,那么Cookie会在硬盘中保存,保存其数值的时间(单位是秒);如果MaxAge=0,那么Cookie会被立刻删除;如果MaxAge<0,那么Cookie在内存中保存,关闭浏览器时清除Cookie。

Cookie相关内容补充

Cookie是由Http协议制定的(由浏览器创建对象)。

拥有9大内置对象(包括request、response)。

Cookie的实现(相关方法)

439055406cc0ab7a8794d55a8e7cdda2.png
Cookie[] request.getCookies(); // 返回所有Cookie对象(以Cookie数组形式)
void response.addCookie(String name,String value); // 向浏览器中存入给定名与值的Cookie

二、Session

d49c169223a4a5d81f05125f9cc3f92d.png
Session是什么?

Session:由服务器创建并保存在服务器端的,面向一次会话,以参数Attribute(名+值)形式保存数据的东西

  • 服务器创建,保存在服务器端
  • 调用getSession方法时,若Cookie有JSESSIONID,根据其找Session,若没有就重新创建Session并保存对应的JSESSIONID在Cookie上;若没有JSESSIONID,则新创建Session,同时保存JSESSIONID在Cookie上
  • 以参数(名+值)形式保存数据
  • 一次会话(时间)中,一个服务器的多个Servlet/Jsp对象共享
  • 多个浏览器/客户端访问服务器时,每个会话都会创建新的Session
Session的实现

e45e3c28007abe6f79ebce2934ace047.png
/* Session的使用*/
// 1.获取或创建Session对象
HttpSession session = request.getSession();
// 2.对其中数据进行操作
void session.setAttribute(String name,Object Value); // 增加参数
Object session.getAttribute(String name); // 返回所给参数名,对应的参数值
void session.removeAttribute(String name); // 删除所给参数名,对应的参数

/* Session的其他方法*/
String session.getId(); // 获取当前Session对应的Id
int session.getMaxInactiveTime(); // 获取当前Session最大不活动时间:指的是打开会话后,不进行操作的时间(单位为min)
void session.invalidate(); // 让Session失效
boolean session.isNew(); // 判断Session是否为新
/* Session的其他方法*/
String session.getId(); // 获取当前Session对应的Id
int session.getMaxInactiveTime(); // 获取当前Session最大不活动时间:指的是打开会话后,不进行操作的时间(单位为min)
void session.invalidate(); //让当前Session失效
boolean session.isNew(); //判断当前Session是否为新
配置Session最大不活动时间
//位置:web.xml文件

<session-config>
        <session-timeout>数值(单位为min)<session-timeout/>
</session-config>
Session于依赖Cookie或者是URL重写,怎么理解?

>Session的创建需要SessionId,Cookie存储SessionId,所以有Cookie必定可以使用Session,即Session依赖于Cookie。

>通过URL重写,把SessionId放在访问服务器网页的URL中,也可以起到相同效果,所以Session也可以依赖于URL重写

//URL重写的实现
//位置: xxx.jsp
<a href="<%= response.encodeURL(/Project1/Aservlet) %>">点击这里<a/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值