今天没事 写了些练手的项目 记录一下
是这样的 一个welcome.jsp里有几个frameset和frame 分别是header.jsp bodyleft.jsp 和 bdyright.jsp
在header.jsp页面里有 “欢迎xxx” “修改密码” “退出” 三个功能
点击“修改密码”后 target="_blank" 跳转到新页面alterpwd.jsp
该页面有3个input标签 一个是oldCode 一个是newCode 和一个提交按钮
点击提交后 执行AlterPwdServlet里的一些业务 比如先判断oldCode是否与数据库中的一致 是则可修改 否则不能修改
1.当修改成功后 alterpwd.jsp自动3秒后关闭
先用隐式对象的response得到writer 然后再写js代码
而这个js代码就可以实现该功能
response.getWriter().println( "<script style=\"text/javascript\">" + "document.write(\"页面3秒后关闭\");" + "setTimeout('window.close()', 3000);" + "</script>");
2.注销转至登录页面
当点击header.jsp中的“退出”时候 只有header.jsp会跳转回login.jsp
但是如何让welcome.jsp退至login.jsp?
下面是一段js可以实现
<script type="text/javascript"> function quit() { window.location.href = "/inspection/QuitServlet"; window.parent.location.href = "login.jsp"; } </script>
然后在“退出”的a标签中调用该函数
<a href="javascript:quit()">
问题3来了
3.所谓的“退出”后 再点击浏览器的后退后 页面又可以回到登陆后的状态
这叫哪门子的退出
后来查资料 学到一种清理浏览器缓存的机制
即:
<% response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","No-cache"); response.setDateHeader("Expires", -1); response.setHeader("Cache-Control", "No-store"); %>
将这段代码添加到welcom.jsp后 再点击后退 便会显示“页面过期”
算是实现“退出”了