session和浏览器以及sessionAPI

本文深入解析了HttpSession的工作原理,特别是与浏览器的关系,包括session如何在服务器端存储,sessionId如何通过Cookie传递,以及当浏览器关闭后session的状态变化。此外,还介绍了session的API使用方法和在Cookie禁用情况下的URL重写策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HttpSession  和 客户端浏览器: 

 session与浏览器
session保存在服务器,而sessionId通过Cookie发送给客户端,但这个Cookie的生命是-1,即只在浏览器内存中存在,也就是说如果用户关闭了浏览器,那么这个Cookie就丢失了。
当用户再次打开浏览器访问服务器时,就不会有sessionId发送给服务器,那么服务器会认为你没有session,所以服务器会创建一个session,并在响应中把sessionId中到Cookie中发送给客户端。     
你可能会说,那原来的session对象会怎样?

当一个session长时间没人使用的话,服务器会把session删除了!这个时长在Tomcat中配置是30分钟,可以在${CATALANA}/conf/web.xml找到这个配置,当然你也可以在自己的web.xml中覆盖这个配置!
 

session的其他API

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP '01-session.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  <%
  	String id=  session.getId();
  	out.println(id);
  	
  	
  	// 获得session 的上次访问的时间: 
  	long time = session.getLastAccessedTime();
  	String timeStrr = new Date(time).toString();
  	out.println(timeStrr);
  	
  	//获得最大的不活动时间“ 
  	int num = session.getMaxInactiveInterval();
  	out.println(num);
  	
  	
  	// session 对象的销毁: 
  	session.invalidate() ;
  	
  	
   %>
  </body>
</html>

URL重写:

如果客户端浏览器禁用cookie,那么调用下面这个方法可以智能判断

客户端禁用cookie: 携带参数

客户端没有禁用:    不携带参数

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方-教育技术博主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值