1. 解决用户退出系统后,点击浏览器后退按钮,在用户登陆之前或者退出之后都不应该出现在浏览器中。
造成上面的原因是:当点击后退按钮时,默认情况下浏览器不是从Web服务器上重新获取页面,而是从浏览器缓存中载入页面
。
解决方法是:禁止浏览器缓存页面:
// 防止缓存
//Forces caches to obtain a new copy of the page from the origin server
response.setHeader("Cache-Control","no-cache");
//Directs caches not to store the page under any circumstance
response.setHeader("Cache-Control","no-store");
//HTTP 1.0 backward compatibility
response.setHeader("Pragma","no-cache");
//Causes the proxy cache to see the page as "stale"
response.setDateHeader("Expires", 0);
2. 解决
当点击后退按钮返回的页是处理用户提交数据的页面时,浏览器将弹出如下信息提示:
警告:页面已过期…… 选择刷新后前一个JSP页面将重新显示在浏览器中。
造成上面的原因是:浏览器将其缓存中的数据重新提交了。
解决方法是:登录页面
login.jsp在包含username和
password的基础上还包含了一个称作lastLogon的隐藏表单域,此表单域动态的用一个long型值初始化。这个long型值是调用
System.currentTimeMillis()获取到的自1970年1月1日以来的毫秒数。当login.jsp中的form提交
时,登录处理页面首先将隐藏域中的值与用户数据库中的值进行比较。只有当lastLogon表单域中的值大于数据库中的值时Web应用
才认为这是个有效的登陆。为了验证登陆,数据库中lastLogon字段必须以表单中的lastLogon值进行更新。
if( 登录认证成功 )
{
// 比较页面提交的lastLogon和数据库中记录的lastLogon
if( lastLogonForm > lastLogonDB )
{
session.setAttribute("LoginUser","....");
// .................
}
else{
request.setAttribute("Error", "Session已经过期,请先登录!");
// .................
}
}
// .........
以上内容摘自:http://yyzhpq.iteye.com/blog/308035
分享到:
相关推荐
### 退出登录后点击后退问题解决...通过上述方法,我们可以有效地解决退出登录后通过后退按钮返回的问题,既提升了用户体验,又加强了系统的安全性。开发者可以根据自己的实际情况调整上述代码,以适应不同的应用场景。
本文主要探讨了如何在JSP和Struts中解决用户退出问题,确保用户在退出后无法通过浏览器的后退按钮访问之前的页面,从而增强用户的安全感。 首先,当用户选择退出应用时,仅仅调用HttpSession的`invalidate()`方法是...
总结来说,为了解决用户在退出登录后点击浏览器后退按钮返回到原页面的问题,我们不仅需要在服务器端清除Session,还要控制浏览器的缓存和页面跳转行为。通过上述提到的后端和前端结合的方法,可以有效地解决这一...
总的来说,JSP和Struts应用系统中实现用户退出的完美解决方案不仅包括清除Session和Cookie,还应考虑防止缓存,以及在需要时实施跨设备/窗口的登出策略。理解这些要点,有助于构建更加安全、用户友好的Web应用。
### JavaScript 实现禁用浏览器后退按钮的知识点详解 #### 一、背景介绍 在Web开发过程中,有时候出于用户体验或者安全性的考虑,开发者可能会选择禁用浏览器的后退按钮功能。例如,在某些登录验证后的页面,为了...
在Web应用程序中,特别是那些涉及到用户认证与授权的应用程序中,确保用户安全地退出系统是至关重要的。一个常见的问题是在用户成功登出后,如果他们点击浏览器的“后退”按钮,有时候仍然能够返回到他们的已登录...
通过上述方法,可以在很大程度上解决用户注销后通过浏览器后退按钮返回已登录状态的问题,提高了系统的安全性。但在实际部署时还需要注意不同浏览器对于缓存控制的不同处理方式,以及可能存在的其他安全漏洞,如跨站...
在Web应用开发过程中,有时需要对用户的浏览器行为进行监控,比如浏览器的关闭、刷新、前进或后退等操作。这对于提高用户体验、确保应用程序状态的一致性等方面具有重要意义。本文将详细介绍如何使用JavaScript来...
在Android平台上,开发一款基于WebView的浏览器是一种常见的实践,它允许开发者利用系统内建的WebView组件来呈现网页内容,而不必依赖于系统内置的浏览器应用。WebView是一个强大的工具,可以集成到任何Android应用...
【BCB编写的简单浏览器详解】 BCB,全称Borland C++ Builder,是由Borland公司开发的一款集成开发环境(IDE),它基于C++语言,并提供...同时,这也是一个很好的实践平台,帮助开发者提升问题解决能力和代码调试技巧。
开发浏览器应用时,需注意用户隐私和数据安全,避免潜在的跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等安全问题。 9. **自定义功能扩展**: 可以通过实现特定接口或添加额外的组件来扩展浏览器功能,如添加下载...
用户退出问题是指用户退出 Web 应用后,浏览器缓存中的页面仍然可以被用户访问的问题。为了解决这个问题,我们可以使用 HttpSession 的invalidate() 方法来清除用户的会话信息。然而,这个方法并不是很可靠,因为...
【基于MFC的网页浏览器程序】是一个利用Microsoft Foundation Classes (MFC)库在Visual C++ 6.0环境下开发的应用程序。MFC是微软提供的一种C++类库,它为Windows应用程序开发提供了丰富的抽象和封装,使得开发者可以...
在.NET Framework 6.0环境下,开发WPF(Windows Presentation Foundation)应用时,有时需要将Web浏览器功能嵌入到桌面应用程序中。为了实现这一需求,开发者通常会利用第三方控件,比如CefSharp中的...
综上所述,C语言程序浏览器专业课程设计旨在通过实际项目,使学习者掌握Web浏览器的基础架构和实现原理,通过MFC库的应用,理解和实践Windows应用程序的开发流程。这个项目不仅锻炼了编程能力,还提升了对网络通信...
自制简单浏览器是一个基础的网页浏览应用,主要利用了WebView组件,这是Android系统提供的一种用于在应用程序内部展示网页内容的控件。在这个项目中,用户能够输入URL,进行页面的刷新、停止加载以及后退操作,并且...
游戏内浏览器,作为一种创新的技术应用,为玩家提供了一种在享受游戏的同时,无需退出游戏界面就能浏览网页的新体验。这种技术通常集成在游戏客户端中,允许玩家在游戏中进行多任务处理,比如查阅攻略、观看视频教程...
综上所述,“认我测”在线认证检测系统,率先填补了认证检测领域移动端的空缺,提供了Web浏览器+移动端的双端访问模式,给用户提供了多种访问途径,真正实现了用户和检测机构的随时随地在线下单检测。 关键词:...
7. **OnQuit**: 浏览器退出时触发。 8. **OnStatusBar/OnToolBar**: 控制状态栏和工具栏的显示。 #### 九、总结 通过使用WebBrowser控件,可以较为方便地实现一个简易的网页浏览器。该项目不仅涵盖了基本的网页...