HttpSession

关于HttpSession耗用内存和有效地销毁HttpSession对象的问题 HttpSession对象很有用,但它们耗用的内存也委多, 因此当你不在需要用到某个HttpSession对象的时候,你应该尽早调用它的invalidate方法来销毁它。在这里大部分网站会向用户入境问俗一个用来退出登录的链接,但可惜的是点击这个链接的用户没有几个,大部分用户会直接关闭浏览器。等待HttpSession对象自然死亡意味着放任它们继续占用你宝贵的内存。下面说说在struts应用程序中如 阅读详情

login.jsp

 

 

 

 

Severlet.java

 

 

 

show.jsp

 

 

 

 

 

session在何时被创建
一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 <% @page session="false"%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession session = HttpServletRequest.getSession(true);这也是JSP中隐含的 session对象的来历。

由于session会消耗内存资源,因此,如果不打算使用session,应该在所有的JSP中关闭它。

2、session何时被删除
综合前面的讨论,session在下列情况下被删除a.程序调用HttpSession.invalidate();或b.距离上一次收到客户端发送的session id时间间隔超过了session的超时设置;或c.服务器进程被停止(非持久session)

3、如何做到在浏览器关闭时删除session
严格的讲,做不到这一点。可以做一点努力的办法是在所有的客户端页面里使用javascript代码window.oncolose来监视浏览器的关闭动作,然后向服务器发送一个请求来删除session。但是对于浏览器崩溃或者强行杀死进程这些非常规手段仍然无能为力。

 

由于cookie可以被人为的禁止,必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面,附加方式也有两种,一种是作为URL路径的附加信息,表现形式为http://...../xxx;jsessionid= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764
另一种是作为查询字符串附加在URL后面,表现形式为http://...../xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764
这两种方式对于用户来说是没有区别的,只是服务器在解析的时候处理的方式不同,采用第一种方式也有利于把session id的信息和正常程序参数区分开来。
为了在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id。

 

 

[Servlet]使用HttpSession进行会话管理 1. Session模型:     1) HTTP协议是无状态的,无法记录多次请求/响应之间的联系,而Session模型就好比一个中间人,可以帮助使用HTTP协议通信的双方记录每次通信的内容(即会话的内容),因此Session模型就是一种中间人模型,可以保存通信记录;     2) HttpSession对Session模型的实现:          i. 当客户端第一次请求服务器时服务器可 阅读详情

相关推荐

LoRA学习: SX1276/SX1277/SX1278对比

Lora芯片 SX1276/SX1277/SX1278的比较SX1276/7/8是一种半双工传输的低中频收发器,配备标了标准FSK和远距离扩频Lora调制解调器。该芯片可以用于超长距离的Lora扩频通信,并且抗干扰性强,同时达到低功耗要求。1、芯片关键参数对比: 可以看出SX1276的带宽范围为 7.8~500kHz ,扩频 因子6~12,并覆盖所有可用频段。 SX1277的带宽和频段方位与 S

HowieXue 薛永浩的博客 1万+

JavaWeb之HttpSession

HttpSession 一、概述 HttpSession是由JavaWeb提供的,用来会话跟踪的类。session是服务器端对象,保存在服务器端!!! HttpSession是Servlet三大域对象之一,所以它也有setAttribute()、getAttribute()、removeAttribute()方法。 HttpSession底层依赖Cookie,或是URL重写! 二、HttpSe...

刘伟佳的博客 6988

AT89C51单片机与74LS164动态显示接口

在 单 片 机应用系统中,显示器显示常用两种方 法:静态显示和动态扫描显示。所谓动态显示,就 是一位一位地轮流点亮各位显示器(扫描),对于每 一位显示器来说,每隔一段时间点亮一次。显示器 的亮度既与导通电流有关,也与点亮时间和间隔时 间的比例有关。调整电流和时间参数,可实现亮度 较高较稳定的显示。

Springboot中websocket获取httpsession存储webSocketSession

WebsocketConfig.java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; import javax.servlet.http.HttpSession; im.

qq_22239651的博客 4567

安川机器人I/O信号

对安川机器人DX100的I/O信号的具体说明,信号介绍,及信号配置

投票倒计时(可以设置计时和颜色,纯网页代码)

投票倒计时(可以设置计时和颜色,纯网页代码)

Cookie & HttpSession

本文介绍了HTTP会话跟踪技术Cookie和HttpSession的核心知识点。Cookie是客户端存储机制,通过Set-Cookie响应头下发,浏览器自动携带,用于状态跟踪和用户偏好存储,需注意编码处理和path/domain等属性设置。HttpSession是服务端会话对象,依赖JSESSIONID标识会话,提供setAttribute等方法存储数据,适用于登录状态维护等场景。两者主要区别在于存储位置(客户端/服务端)、安全性、数据类型支持等方面。文章还详细说明了URL重写解决Cookie禁用问题的方法

py_1990_04_20的博客 266

校园网对战平台客户端

校园网内的对战平台客户端.可以方便的在局域网内进行对战!本软件FOR SCNU。

关于java中的httpsession_JavaWeb——HttpSession

Session机制:session机制采用的是在服务器端保持HTTP状态信息的方案如果需要创建session时,首先去在这个请求搜索session,如果有,不会去创建session,如果没有会去创建一个session保存session id的几种方式:保存session id的方式可以采用cookie由于cookie可能被人为的禁用,为了在cookie被禁用时依然能够把session id传递回服...

weixin_28805935的博客 657

wincc通过IO域写数值到DB块

核心提示:wincc通过I/O域写数值到DB块 wincc通过I/O域写数值到DB块,当DB块重新下载后,数值要重新写,原DB块数值全部为零,有什么方法能在重新下载后原db块数值不变吗?如何把db的初始值下载到cpu中去呢?在此文章中可以回答这个问题

用AD画原理图常用元件的库文件

里面包括51单片机、TTL74系列相关器件、三极管、二极管相关器件的库文件

Spring MVC中HttpSession的详解

本文深入探讨了HttpSession在Spring MVC中的应用与管理。文章首先介绍了HttpSession的核心概念,包括其与Cookie的协同机制和典型应用场景(用户登录、购物车等)。随后详细解析了Spring MVC中的Session管理方式,包括原生操作、Spring Security集成和Flash属性原理。在源码层面,分析了DispatcherServlet处理流程、HandlerAdapter与Session的交互机制。针对分布式环境,提出了Session共享方案

持续输出Java相关知识 1516

java 1.3经典

经典版本的java;阿拉丁发链接快递费阿打发打发地方

ServletContext,Cookie,HttpSession的使用

ServletConfig对象对应web.xml文件中的节点,当Tomcat初始化一个Servlet时,会将该Servlet的配置信息,封装到一个ServletConfig对象中,我们可以通过这个对象获取节点中的配置信息,只能获取当前Servlet中的配置信息。HttpSession中的数据存放在服务端的,安全性比较高。如果是在Tomcat的web.xml配置了超时时间,相当于配置了全局的HttpSession超时时间,如果同时也在web项目中配置了超时时间,则会以web项目中的超时时间为准。

qq_74947724的博客 1025

一个有关匹配的matlab程序

这是一个有关匹配的matlab程序,希望对做匹配的研究者有所帮助

IC卡(Integrated Circuit Card),即“集成电路卡”在日常生活中已随处可见。自1972年法国人罗兰·莫雷诺(Roland Moreno)首先提出IC卡的设想,1976年法国布尔(Bull)公司研制出世界第一张IC卡以来,IC卡技术飞速发展,已经形成涉及全球众多著名电子巨头的新兴技术产业。

IC卡(Integrated Circuit Card),即“集成电路卡”在日常生活中已随处可见。自1972年法国人罗兰·莫雷诺(Roland Moreno)首先提出IC卡的设想,1976年法国布尔(Bull)公司研制出世界第一张IC卡以来,IC卡技术飞速发展,已经形成涉及全球众多著名电子巨头的新兴技术产业。

HttpSession的创建及使用

本文将介绍有关HttpSession的创建及使用,并概括性讲解了其与Cookie的区别,具体想了解其中区别请看上一篇文章

阿土不土的博客 2809

手把手教你用TJA1145A实现CAN节点智能唤醒(含数据帧过滤技巧)

本文详细介绍了如何使用TJA1145A收发器实现CAN节点的智能唤醒功能,包括数据帧过滤技巧和超低功耗设计。通过硬件级帧过滤和双条件唤醒机制,TJA1145A在保持微安级休眠电流的同时,能对特定报文做出毫秒级响应,显著提升电池供电设备的续航能力。

weixin_28721917的博客 252
上一篇: HashMap HashSet hashCode() 之间的联系
下一篇: XML 解析--- DOM和SAP
zhugx_java
博客等级 码龄18年 35粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值