当前位置: 首页 > news >正文

在关闭页面时自动清除Session cookie,页面缓存

在默认情况下,session对象在关闭浏览器后并不是立刻被销毁,因此,为了考虑系统的安全性,在用户退出时,需要即刻清除session对象,防止他人盗用session对象中的信息。

清除session对象内容的主要方法如下:

(1)、removeAttribute()方法。该方法是用来删除session对象中保存的指定属性信息。

例如:session.setAttribute("name", "iverson");session.removeAttribute("name");

(2)、invalidate()方法。该方法可以清除session对象中的所有信息。

例如:session.invalidate().

通常情况下,关闭浏览器后,session信息需要等到session对象失效后才能清除,如果需要实现关闭浏览器后即可清除session信息,请尝试用以下方法。

<body οnbefοreunlοad="window.location='logout.jsp'">

logout.jsp页面中,可以这么做:<% HttpSession session = request.getSession(); session.invalidate(); %>

现如今,基于MVC架构模式的框架,很多。所以,上述代码,根据所选的MVC框架不同,直接与jsp页面进行分离。

 

摘自:http://blog.csdn.net/abcd_0000/article/details/6746587

 

 一、清除页面缓存 在jsp页里

//在jsp页里
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
response.flushBuffer();
%>
//在html页里
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">

 [代码] 二、清除cookie

<%
Cookie killMyCookie = new Cookie("mycookie", null);
killMyCookie.setMaxAge(0);
killMyCookie.setPath("/");
response.addCookie(killMyCookie);
%>

 [代码] 三、清除session

<%@ page language="java" session="false" %>
<%
session.invalidate();
%>
//在页面关闭时清除session,需要捕获windows.onclose事件,再调用清除session方法

 摘自:http://www.oschina.net/code/snippet_4873_1527/

 

转载于:https://www.cnblogs.com/wcyBlog/p/4028154.html

相关文章:

  • github中readme.md编辑格式
  • Android系统开机启动画面显示过程简要说明
  • 团队项目准备工作
  • JavaScript中的闭包理解
  • ubuntu nginx卸载和安装
  • mysql dump
  • 【转】link_to中delete无效的问题解决
  • Java里泛型有什么作用
  • matlab向量的排序(自写函数)
  • 在eclipse中新建一个maven项目
  • 使用 jquery 获取当前时间的方法
  • Chrome浏览器桌面通知提示设置
  • Python——网络编程,如何避免死锁?
  • 页游框架
  • 如何催促Apple进行App审核
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 08.Android之View事件问题
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • CAP理论的例子讲解
  • download使用浅析
  • eclipse(luna)创建web工程
  • mysql_config not found
  • PAT A1092
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 翻译:Hystrix - How To Use
  • 浅谈Golang中select的用法
  • 如何使用 JavaScript 解析 URL
  • 实战|智能家居行业移动应用性能分析
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 自动记录MySQL慢查询快照脚本
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 翻译 | The Principles of OOD 面向对象设计原则
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #微信小程序:微信小程序常见的配置传旨
  • (7)STL算法之交换赋值
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (第一天)包装对象、作用域、创建对象
  • (二)pulsar安装在独立的docker中,python测试
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (一)u-boot-nand.bin的下载
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • ./configure,make,make install的作用(转)
  • .CSS-hover 的解释
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net6使用Sejil可视化日志
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [C/C++]数据结构 堆的详解