Session的使用与Session共享问题
Session方法
getId():获取sessionId,这个id不一定是数字,比方说它用字符串来表示唯一标识,所以它返回值是String;
boolean isNew(),判断是否是新用户(第一次访问),返回值类型是boolean类型,true或false;
void invalidate()使session失效(退出登录、注销)
void setMaxInactiveInterval(秒),设置最大有效 非活动时间【比如登录一个网页后停留至此你什么也不操作,时间久了你再进行操作时就会让你重新登录】
int gettMaxInactiveInterval(秒),查看我设置的是多长时间
Session的使用
假设我们现在访问京东,这个时候可以想一下,到底什么时候它才给你分配session的呢?肯定是在你登录之后才能记录你的用户名密码,所以我们需要在给这个用户分配session之前,给他加一个屏障,这个屏障作用就是必须登录成功之后我才能给你分配一个session并响应给你一个JSESSIONID来存储信息,不成功我照样不给你分配。
在登录成功后,我们调用session.setAttribute()方法来把用户信息存到session里:
登录成功后,我们将接收来的值存入记录在session里;
我登录成功给你一个session,给完之后,我就给你跳到一个欢迎页上,这里我就用重定向;
现在我们进入welcome.jsp中进行操作,我们进入这个页面后需要欢迎张三,我们就用session.getAttribut方法来获取uname。
因为返回值是object类型,所以我们需要强制类型转换;
但是有没有想过,如果用户直接访问欢迎页,没有经过登录怎么办?
很简单,如果登录成功两,session必然是有值的,如果没有登录直接访问欢迎页,必然是null也就是空,在这里判断即可,如果为空,就跳回登录页:
session是一次会话,在一次会话内,是一直有效的,我现在再建一个a.jsp,直接写session.getAttribut获取改值,是可以的,但是换一个浏览器访问a.jsp,就不可以了;
只要你是同一个浏览器,你的session是共享的,都不需要再进行登录。
session失效
在欢迎页往往都有一个注销,我们就来看一下,怎么让中国session手动失效:
session.invalidate();//session失效方法:
今日感悟:
很多父母或者年轻人找工作细化追求一份“铁饭碗”,
认为稳定最重要,
但在这个世界上,唯一不变的铁律就是变化,
不管是公务员,还是国企,都只有靠能力,在岗位上才能站稳脚,
什么是真正的铁饭碗?
铁饭碗绝不是在一个单位干一辈子,
而是到了那儿,你都有饭吃,荒年饿不死手艺人,能力才是硬道理!