`
miaoge
  • 浏览: 107603 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类

【HRMS】解决当点击系统的退出按钮后,怎么处理session,若按浏览器的后退键仍能回到之前登录页面的问题;定时跳转的代码

阅读更多

当点击系统的退出按钮后,如果按浏览器的后退键仍能回到之前登录的页面的问题

试过了很多方法,也在网上查了下,最后自己总结的完美解决方法:

当点击系统退出按钮后,先调用Action层的doQuit()方法进行退出处理。

/***退出**/
	public void doQuit(){
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpServletResponse response = ServletActionContext.getResponse();
		String quit = request.getParameter("quit");
		if ("QUIT".equals(quit)) {
	      //清除登陆页面缓存HTTP1.0规范中的Pragma:no-cache等同于HTTP1.1规范中的Cache-Control:no-cache,同样可以包含在头信息中。 
	        response.setHeader("Pragma", "No-cache");
			response.setHeader("Cache-Control", "no-cache");   //强制缓存从服务器上获取新的页面
			response.setHeader("Cache-Control", "no-store");   //在任何环境下缓存不保存任何页面
			response.setDateHeader("Expires", 0);
			request.getSession().removeAttribute("userInfo");  //清空session
			request.getSession().invalidate(); // 销毁session
			// 页面重定位到一个退出中间页面,倒计时。
			String URL = "../toquit.jsp";
			String content = 1 + ";URL=" + URL;// 1秒后进入退出页面
			response.setHeader("REFRESH", content);
		}

	}
	

 

 

按道理经过上面的方法应该是已经把session清空销毁,浏览器缓存清空,但仍然没有解决遇到的问题;

这里我做了一个中间页面来处理:中间页面弹出一个对话框提示请登录,点击确定回到登录页面,这样浏览器的后退按钮已经失效,直接在浏览器地址输入地址也会弹出你还没登录,请重新登录,点击后回到登录页面,因为直接输入地址页面的session已经销毁,而那直接输入的地址页面如果session为空的话是不允许进入。

// 页面重定位到一个退出中间页面,倒计时。
String URL = "../toquit.jsp";
toQuit.jsp是一个中间页面如下:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>正在退出系统···</title>
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<link type="text/css" rel="stylesheet" href="css/public.css">
</head>
  
  <body>
  
  <table class="maintable" align="center" style="text-align: center;" width="500" cellspacing="0">
  <tr height="100"><td></td></tr>
  <tr><td>
      <script type="text/javascript" language="JavaScript" > alert("请登录!");window.location.href="login.jsp";</script>
  </td></tr></table>
  </body>
</html>

 

下面是定时跳转的代码,与上面的问题无关:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>2秒后自动进入系统界面</title>
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<link type="text/css" rel="stylesheet" href="css/public.css">
	
	<script language="javascript" type="text/javascript">
         function delayURL(url) {               //定时跳转
          var delay = document.getElementById("time").innerHTML;
            if(delay > 0) {
            delay--;
            document.getElementById("time").innerHTML = delay;
          } else {
              window.top.location.href = url;
              }
          setTimeout("delayURL('" + url + "')", 1000); 
        }
    </script>
	</head>
  
  <body>
  
  <table class="maintable" align="center" style="text-align: center;" width="500" cellspacing="0">
  <tr height="100"><td></td></tr>
  <tr><td>
    <font size="4"><span id="time" style="background:red">2</span>秒后自动跳转到系统界面,如不跳转,请点击下面链接</font>
      </td> </tr>
    <tr><td><a href="login.jsp"><font color="blue" size="3">重新登录</font></a>
    <script type="text/javascript">
    delayURL("../index.jsp");
    </script>    
  </td></tr></table>
  </body>
</html>

 

  • 大小: 8.1 KB
分享到:
评论
1 楼 cyky 2012-07-30  
这个方法在火狐浏览器不起作用呢,不过在IE是可以的,哈哈。

相关推荐

    IPL HRMS人力资源管理系统

    IPL HRMS人力资源管理系统是由香港IPL Research Ltd.和上海商络软件有限公司开发的专业人力资源管理系统。致力为用户提供最优的人力资源管理系统。由上海商络软件有限公司负责IPL HRMS在中国大陆地区的开发、销售和...

    HRMS(人力资源管理系统)

    HRMS(Human Resource Managent System)是人力资源管理的一个发展方向,人力资源管理系统从系统学理论的角度对人力资源管理进行阐释,注重在人力资源管理的各个方面的系统规划、设计运作,并在企业管理管理中持续...

    人力资源管理系统HRMS

    用Rational Rose 2007制作的,关于“人力资源管理系统HRMS”的类图、用例图、状态图、顺序图,本人亲自制作,吸取各家,特此上传!

    HRMS人力资源管理系统

    一个人力资源管理系统的小Demo 页面功能挺多 样式一般 可用来作为课程设计的参考

    基于J2EE/SSH开发的人力资源管理系统HRMS

    2014最近做好的学期项目hr 带数据 JSP页面 完全能运行 带有完整的libs jar包 J2EE SSH Ajax easyUI 带有上传功能 自动菜单生成 登录验证 员工管理 薪资管理 培训管理 招聘管理 等等

    人力资源管理系统HRMS实践报告.pdf

    人力资源管理系统HRMS实践报告.pdf

    HRMS系统管理平台源码

    java开发的HRMS(Human Resource Management System)是人力资源管理的一个发展方向,人力资源管理系统从系统学理论的角度对人力资源管理进行阐释,注重在人力资源管理的各个方面的系统规划、设计运作,并在企业管理...

    某公司人力资源管理系统HRMS方案介绍.pptx

    某公司人力资源管理系统HRMS方案介绍.pptx

    hrms人力资源管理系统

    此系统整体采用struts1.2+spring2.5+Ibatis框架实现,数据源利用的是SpringIoC注入;模型层严格按照JavaBean规范要求;用Struts进行流程的控制,并实现了国际化,JSP用纯标签进行页面显示。为达到用户名唯一的目的...

    ExtJs人力资源管理系统(HRMS)

    而今天我们要做的一个demo是一个简化的HRMS(人力资源管理系统),在SSH上因为Spring本身有自己的MVC框架实现,所以我们用它来代替struts,在Ajax上我们采用两大框架组件extjs和dwr,前者可以做出非常炫目的页面效果,...

    HRMS.zip_HRMS_HRMS-01-2011_hrms系统

    人力资源管理系统,本系统实现了以下功能:系统界面设计美观、友好;智能化程度高、操作灵活、方便;系统运行稳定、安全可靠;反应快速、计算准确;实现新员工入职登记、查询修改及入职合同的录入、编辑;登记并可以...

    hrms.zip_系统

    C#实现的人力资源管理系统,管理系统的好例子

    HRMS.rar_HRMS_人力资源_人力资源管理系统

    HRMS是一个人力资源管理系统,非常好用,功能非常强大,希望大家的支持

    HRMS.rar_HRMS_HRMS性能要求_人力资源管理系统_员工绩效系统_登入

    人力资源管理系统,主要功能和性能 &#61557 登入系统功能 &#61557 员工信息输入、修改、查询(通过员工号或姓名)功能 &#61557 员工基本工资管理和浮动工资管理功能(工资的计算、查询) &#61557 系统操作员管理...

    数据库+hrms oracle数据库

    sdfasdfasdfdasdfasdfaf asdfasdfsafasfdasdfasdfsadfasdf

    HRMS.zip_HRMS_zip

    hrms managemnet project

    HRMS.rar_C++考核系统_HRMS_人力资源管理系统_考勤登记

    使用Visual c++开发的人力资源管理系统,附带使用说明,实现的功能本系统实现了以下功能:实现新员工入职登记、查询修改及入职合同的录入、编辑;登记并可以浏览日常考勤信息;记录公司定期的员工考核成绩;等

    peoplesoft hrms安装

    2. HRMS选项页面,指定驱动系统的方式,员工,职位,或者同时按员工和职务; 3. 针对产品的安装页面,输入特定产品和特定行业的安装信息; 4. HR已安装的国家地区, 指定在‘PeopleSoft人力资源’中为用户激活的...

Global site tag (gtag.js) - Google Analytics