session运行机制

SESSION : 会话

1.浏览网站时:从开始到关闭为一次会话

2.购物时:从浏览到付款再到退出为一次会话

3.发电子邮件时:从浏览、写邮件到退出为一次会话

SESSION机制

1.

客户端第一次请求服务端时,服务端会产生一个session对象(用于保存该客户的信息);并且每个session对象,都会有一个唯一的sessionId(用于区分其他session);

2.

服务端都会产生一个cookie,并且该cookie的name = JSESSIONID,value=服务端sessionId的值;然后服务端会在响应客户端的同时将该cookie发送给客户端,至此,客户端就有了一个cookie(JSESSIONID);

因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID -- sessionID)

 

SESSION后续

 

例子:

客户端:顾客(客户端)

服务端:存包处-商场(服务端)

顾客第一次存包:商场判断此人是之前已经存过包(通过你手里是否有钥匙🔑)

如果你是新顾客(没钥匙),分配一个钥匙给该顾客;钥匙会与柜子一一对应;

不是第一次存包,商场(通过你手里是否有钥匙)判断此人是之前已经存过包,如果你是有钥匙的老顾客,则不需要分配;该顾客手里的钥匙会和柜子自动一一对应。

3.session的特点

3.1.session存储在服务端

3.2.session 是在同一用户(客户)请求时共享

3.3.实现机制:第一次客户请求时产生一个sessionid并复制给cookie的jsessionid,然后发给客户端。

最终通过session的sessionid和cookie的jsessionid实现一一对应的关系。

4.session的方法

String getId() 获取sessionId

boolean isNew() 判断是否是新用户(第一次访问)

void invalidate() 使session失效(当用户退出登录或者注销时)

void setAttribute()

Object getAttribute()

void setMaxInactiveInterval(秒) :设置最大有效非活动时间

int getMaxInactiveInterval() :获取最大有效非活动时间

 

当一种浏览器拿到用户session值的时候,再打开这个浏览器任一个标签,都可以拿到这个session值。以及相应的用户数据。

如图,我们在login.jsp登录zs 这个用户之后,再来到同目录下的b.jsp

利用拿到session为uname的信息

<body> <%=session.getAttribute("uname")%> </body>

posted @ 2020-11-07 22:30  Strive_ToLife  阅读(126)  评论(0编辑  收藏  举报