JSP:session对象

Web应用中,会话指在一段时间内,一个用户通过浏览器与服务器之间进行的一系列的请求和响应的交互过程。在一个会话中,用户可以访问该Web应用系统中包括网页在内的多种资源。
    当用户(浏览器)向Web应用服务器发送第一次请求时,服务器会为该用户创建一个唯一标识的会话,会话一直延续到访问结束(浏览器关闭或用户长时间不访问Web应用)。JSP使用session对象表示会话,既将信息保存在session对象中,方便用户在这个会话中随时获取。
浏览器关闭只是中断了和Web服务器的联系,但是session对象依然存在服务器端,如果时间超时,则Web服务器将其删除,如果服务器关闭,则将对象序列化到SESSION.ser文件内,服务器重新启动,则将该文件中session对象重新反序列化。
session运行机制:

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

实例:
第一次访问session
在这里插入图片描述
刷新,第二次访问
在这里插入图片描述
点击get.jsp可以看到
在这里插入图片描述
对应的jsp代码如下,请自行实验:
1、get.jps

<%@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>
	<%
		String userName = (String)application.getAttribute("userName");
	%>
	<br>
	<%=userName %>
	<br>
	<%=session.getAttribute("session") %>
	<br><br>
	<%=session.getId() %>
</body>
</html>

2、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>
	<%
	application.setAttribute("userName","tttt");
	session.setAttribute("session", new Date());
	%>
</body>
</html>
/**注意:
	当访问时,若要在get.jsp中得到userName和new Date(),请先访问set.jsp
*/

session常用方法
setAttribute:设置指定名字的参数值;session中保存的对象随Tomcat服务器正常关闭而保存到work文件夹相应目录,随Tomcat的启动而重新使用
如:**
未关闭时
在这里插入图片描述
关闭时:
在这里插入图片描述
再重新打开Tomcat时,SESSION.ser会消失
getAttribute:获取指定属性的值,如果该属性值不存在则返回null;
removeAttribute:删除session中的一个属性
getId():获取sessionID
isNew():每个请求是否会产生新的session对象
setMaxInactiveInterval():设置停止操作后session对象的有效时间。**

发布了54 篇原创文章 · 获赞 1 · 访问量 859

猜你喜欢

转载自blog.csdn.net/weixin_44764207/article/details/103130612
今日推荐