1、一个用户发送多次请求到服务端,服务器怎么认识的呢?
服务器给它分配一个session,这个session有一个ID号,也就是说,不同用户的session是不一样的,每个用户都有一个session,每个session都有一个不同的ID。
在返回请求的时候,它会把session的ID号返回给客户端,然后客户端在发第二次请求的时候,这个请求就包括session ID了,通过这种方式识别用户的多次请求,因此session ID是一个很关键的问题。
2、session对象被分配了一个String类型的ID,服务器将ID发送到客户端,存放在客户的Cookie中。
有些时候,如果清理掉Cookie的话,再访问服务器就和没登录一样,因为将服务器缓存在浏览器的内容给清空了,因此session和Cookie是配套使用的。
- 同一用户在同一Web服务目录中的各个页面的session相同。
- 不同用户的session对象互不相同,具有不同的ID。
3、session的失效
- 客户关闭浏览器
- session到达了最大生存时间
4、实例
例1:
sessionIDa.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<HTML>
<BODY>
<P>
<%
String s = session.getId();
%>
<P>
您的session对象的ID是: <%=s%>
<FORM action="sessionIDb.jsp" method=post name=form>
<INPUT type="text" name="boy">
<INPUT type="submit" value="送出" name=submit>
</FORM>
</BODY>
</HTML>
sessionIDb.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<HTML>
<BODY>
<P>
我是sessionIDb.jsp页面
<%
String s = session.getId();
%>
<P>
您的session对象的ID是: <%=s%>
<P>
点击超链接,连接到sessionIDa.jsp页面。 <A HREF="sessionIDa.jsp"> sessionIDa.jsp</A>
</BODY>
</HTML>
结果是

http://localhost/JavaWebBasic/session/sessionIDa.jsp
点击送出之后,是下面的样子
http://localhost/JavaWebBasic/session/sessionIDb.jsp
但是用别的浏览器打开的话,相当于显示另外一个用户,显示的是
本文探讨了Web服务器如何通过Session ID识别用户多次请求。每个用户在服务器端都有一个独特的Session,其ID在请求间传递,通常存储在Cookie中。Session ID的重要性在于维持用户会话的连续性,而当Cookie被清除或Session达到最大生存时间,Session会失效。通过实例展示了不同浏览器打开同一应用时,Session ID的变化,揭示了不同用户Session的独立性。
2610

被折叠的 条评论
为什么被折叠?



