servlet struts2清除页面缓存代码
来源:互联网 发布:淘宝特种经营有什么用 编辑:程序博客网 时间:2024/06/07 04:02
群:欢迎加入-----------------------------------------------------Java、.Net、数据库、各种开发语言,群号:184764197
何谓页面缓存?简单的说就是,试试IE或者firefox工具栏的前进\后退按钮,就知道了.也就是说,浏览器会先将页面缓存,待下次使用时,就直接从缓存里面取数据,而不重web server重新获取数据.从而减少了server的压力.
但凡事就利就有弊。比如web页面的登陆,如何退出呢?当然在servlet可以用
session.removeAttribute("LogName");
session.invalidate();
但,仅这样是不完善的。如果用户没有及时将浏览器关闭的话,那么按“后退”按钮,就有可能造成不安全因素了(因为用户并没有真正的退出)。
好在http协议可以自定义缓存页面。示例如下:
一般来说,web页面都有一个登陆按钮。登陆按钮映射servlet或struts action等等。也就是说,登陆动作后,一般都是跳转至主页。所以在sendRedirect或forward动作之前加入清除缓存代码:
servlet
session.setAttribute("logName", logName);//用户写入session
//清除页面
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
//跳转页面
RequestDispatcher requestDispatcher = null;
requestDispatcher = request.getRequestDispatcher("index.jsp");
requestDispatcher.forward(request,response);
struts2
HttpServletResponse response = ServletActionContext.getResponse();
//清除登陆页面缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
//页面重定位,倒计时。
String URL = "index.jsp";
String content=3+";URL="+URL;//3秒后进入主页
response.setHeader("REFRESH",content);
这样在调用session.invalidate()后,再按IE或firefox退出按钮时,就会出现页面已过期的提示了。
response.setHeader("REFRESH",content);
是实现倒计时跳转页面。
- servlet struts2清除页面缓存代码
- servlet struts2清除页面缓存
- jsp页面清除缓存代码
- 清除页面缓存
- 清除Tomcat页面缓存
- 清除页面缓存
- 清除jsp页面缓存
- C#清除页面缓存
- C#清除页面缓存
- .NET清除页面缓存
- 清除jsp页面缓存
- html页面清除缓存
- Java清除页面缓存
- jsp清除页面缓存
- 清除页面缓存
- C#页面清除缓存
- jsp页面清除缓存
- jsp页面清除缓存
- 进行链表的排序的一种方法,
- golang信号量处理
- linux线程属性的设置(转)
- ads1115寄存器操作
- VS 2005 创建DLL工程,并进行调用与调试例子
- servlet struts2清除页面缓存代码
- 人件--读书笔记3
- 给定一单链表的表头指针和指向其中一个节点的指针,要求以该指针为头将原链表逆序
- UUFlv控件1.0 版 属性、事件、方法介绍
- Thread loop of C++ and Java
- golang异常panic和恢复recover用法
- 【南方周末】微软复兴:告别卖软件模式依赖症
- 枚举原理Enum
- 学习笔记3 运算符与表达式