session内置对象及运行机制

一.会话:

Web应用中,会话指在一段时间内,一个用户通过浏览器与服务器之间进行的一系列的请求和响应的交互过程。在一个会话中,用户可以访问该Web应用系统中包括网页在内的多种资源。

二.session内置对象:

  当用户(浏览器)向Web应用服务器发送第一次请求时,服务器会为该用户创建一个唯一标识的会话,会话一直延续到访问结束(浏览器关闭或用户长时间不访问Web应用)。JSP使用session对象表示会话,即将信息保存在session对象中,方便用户在这个会话中随时获取。

浏览器关闭只是中断了和Web服务器的联系,但是session对象依然存在服务器端,如果时间超时,则Web服务器将其删除,如果服务器关闭,则将对象序列化到SESSIONS.ser文件内,服务器重新启动,则将该文件中session对象重新反序列化。

下面是代码用例:

设置session值的set.jsp文件

<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Insert title here</title>
	</head>
	<body>
		<%
			session.setAttribute("session",new Date());
		%>
	</body>
</html>

打印session值的get.jsp文件 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Insert title here</title>
	</head>
	<body>
		<%=session.getAttribute("session") %>
	</body>
</html>

三.session运行机制

1、用户(浏览器)向Web应用服务器发送第一次请求时,请求头部中不包含sessionID,则服务器会为该客户端创建一个新的session,并生成一个与此session对应的sessionID,然后将sessionID随着本次响应返回给客户端;


2、用户(浏览器)再次向Web应用服务器发送请求时,请求头部包含sessionID,则服务器首先会通过sessionID找到对应的session,此时sessionID不会再次随着本次响应返回给客户端;如果该session因超出时长而被Web服务器删除,则重新创建一个新的session,并生成一个与此session对应的sessionID,然后将sessionID随着本次响应返回给客户端;

发布了99 篇原创文章 · 获赞 93 · 访问量 5211

猜你喜欢

转载自blog.csdn.net/DangerousMc/article/details/103132041
今日推荐