转:http://blog.csdn.net/zxycode007/article/details/7045236
用户退出后,如果点击浏览器上的后退按钮,Web应用将不能正确保护受保护的页面——在Session销毁后(用户退出)受保护的JSP页重新在浏览器中显示出来。然而,如果用户点击返回页面上的任何链接,Web应用将会跳转到登陆页面并提示Session has ended.Please log in.
阻止浏览器缓存
上述问题的根源在于大部分浏览器都有一个后退按钮。当点击后退按钮时,默认情况下浏览器不是从Web服务器上重新获取页面,而是从浏览器缓存中载入页面。基于Java的Web应用并未限制这一功能,在基于PHP、ASP和.NET的Web应用中也同样存在这一问题。
幸运的是,HTTP头信息“Expires”和“Cache-Control”为应用程序服务器提供了一个控制浏览器和代理服务器上缓存的机制。HTTP头信息Expires告诉代理服务器它的缓存页面何时将过期。HTTP1.1规范中新定义的头信息Cache-Control可以通知浏览器不缓存任何页面。当点击后退按钮时,浏览器重新访问服务器已获取页面。如下是使用Cache-Control的基本方法:
1) no-cache:强制缓存从服务器上获取新的页面
2) no-store: 在任何环境下缓存不保存任何页面
保险起见,对html页面和jsp最好都加一些设置对于HTM网页,加入:
<meta HTTP-EQUIV="pragma" CONTENT="no-cache">
< meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
< meta HTTP-EQUIV="expires" CONTENT="0">
然后,jsp页面中加入:
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
%>
就可以了
以上是我在做程序中测试出来的bug解决方法 ,是别人拷贝过来,不过鉴于此情况经常发生所以记录下来供别人和自己将来参考,在ie下测试有效,其他浏览器由于本机没有安装暂时不知道。其实asp和其他页面也可参考啊。
相关推荐
### JSP 页面缓存及其清除方法详解 #### 一、JSP页面缓存的重要性与应用场景 JSP(Java Server Pages)技术是一种结合了HTML、XML和Java编程的技术,用于创建动态网页。在JSP开发中,页面缓存是一种常用的技术手段...
在Web开发过程中,页面缓存问题一直是开发者们关注的重点之一。合理的页面缓存管理不仅可以提升用户体验,还可以减轻服务器压力。然而,在某些情况下,如模态窗口中的POSTBACK操作时,缓存的存在可能会导致一系列...
本资源"JSP页面缓存的简单实现 (可用于 content-type 为字符类型的JSP页面).zip"提供了一个针对字符类型内容的JSP页面缓存实现。 JSP页面的生命周期包括以下阶段:解析、编译、加载、实例化、初始化、服务和销毁...
除了通过JSP内置对象`response`设置HTTP响应头之外,还可以在HTML页面中使用`<meta>`标签来控制缓存行为。例如: ```html , no-store, must-revalidate"> ``` 这些`<meta>`标签的作用与上面通过`response`...
在探讨IE页面缓存问题及其在JSP、Servlet与HTML中的设置时,我们首先需要理解网页缓存的基本概念。网页缓存是浏览器为了提高加载速度和减少网络流量,将访问过的网页或其部分元素(如图片、脚本等)保存在本地的一个...
二是客户端浏览器对JSP渲染后HTML页面的缓存。这两种缓存方式对于提升用户体验和减轻服务器压力都至关重要。 1. **服务器端缓存**:当JSP页面首次被请求时,服务器会将其编译成Servlet,并缓存该编译结果。后续请求...
然而,为了提高网站性能,降低服务器负载,并优化搜索引擎优化(SEO),经常需要将动态JSP页面转换为静态HTML页面。这个过程称为静态化,它能够使网页在客户端直接加载,而无需每次请求时都执行服务器端的Java代码。...
除了通过Servlet设置HTTP头部之外,还可以在JSP页面中使用HTML元标签来控制缓存行为。 示例代码: ```html ``` 这些元标签的效果与通过Servlet设置HTTP头部相同。它们会覆盖任何通过HTTP响应头设置的缓存控制...
#### 使用`<meta>`标签禁用静态HTML页面缓存 对于静态HTML页面,可以在页面头部添加特定的`<meta>`标签来控制缓存行为。常见的方法包括使用`Pragma`或`Expires`等属性来设置: ```html , 23 Aug 2006 12:40:27 ...
本文将详细介绍几种JSP中清除页面缓存的常见方法。 一、清除页面缓存 在JSP页面中,可以通过设置HTTP响应头来禁止浏览器缓存页面。以下代码片段展示了如何在JSP中实现这一目标: ```jsp response.setHeader(...
在Web开发中,JSP页面缓存是提升应用程序性能的重要手段。通过缓存,可以避免重复计算或从数据库中频繁读取数据,从而提高响应速度,减轻服务器负担。本篇文章将深入探讨JSP页面缓存的原理、实现方式以及如何清除...
5. **缓存问题**:浏览器缓存有时候会导致旧版本的页面被加载,从而影响新功能的正常显示。设置正确的HTTP头部信息,如Cache-Control和Pragma,可以控制页面的缓存策略。 6. **Tomcat配置**:作为常用的JSP应用...
- 静态化可能导致缓存问题,因为静态HTML无法实时反映数据库的更新。因此,需要在更新数据时同步更新对应的静态页面。 - 对于动态内容较多的页面,静态化可能不是最佳选择,因为需要平衡静态化带来的性能提升与...
5. **缓存管理**:静态HTML页面一旦生成,需要考虑更新策略。如果动态数据发生变化,静态页面需要同步更新。这可能涉及到监控数据库变化或设置定时任务来重新生成HTML。 6. **性能优化**:除了静态化,还可以结合...
提升 JSP 页面响应速度的七大秘籍绝招 本文将介绍七大秘籍绝招,以提升 JSP 页面响应速度,提高系统性能。这些秘籍绝招涵盖了 JSP 页面的生命周期、Servlet 的 init() 方法、自动重载功能、HttpSession 的使用、...
综上所述,当遇到JSP页面图片上传成功但不刷新的情况,通过添加随机参数来避免浏览器缓存问题,是一种常见且有效的解决方案。开发者需要在实际操作过程中,注意细节的准确性,以保证程序的正确执行。
JSP动态生成HTML静态页面是一种优化网站性能的技术,它能够将频繁访问的动态内容转换为静态HTML页面,从而减轻服务器负担,提高网页加载速度。本源码提供了实现这一功能的具体方法。 首先,我们需要理解JSP的工作...
**JSP生成静态页面**是一种优化网站性能的技术,它通过将动态内容转化为静态HTML文件,减少服务器处理请求的负担,提高网页的加载速度。这种方式在高流量网站中尤其常见,因为静态页面可以被缓存,减少了数据库查询...