博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
退出后点击浏览器后退不能回到成功页面;直接进入页面和跳转进入页面样式不同;防止直接输入页面地址或servlet;当servlet跳servlet时,进行其他操作后后退出现错误!
阅读量:4228 次
发布时间:2019-05-26

本文共 1282 字,大约阅读时间需要 4 分钟。

如何实现:

 一,不能直接进入页面或者直接访问servlet,必须通过页面点击的方式!即不能直接输入url/页面地址进入页面,这是为了防止在登录的情况下,直接输入url/页面地址访问登录成功后的页面!
  
  * 只需要在拦截器中获取referer头:request.getHeader("referer")。
   > 如果为null,表示是直接输入url/页面地址进入的!这是就直接跳转到指定页面,不让他得逞!
   > 如果不为空,则放行或进行其他操作!
  
  * 这样还能防止:直接进入页面和通过跳转进入页面的样式不同的问题!!!

 
 二,直接进入页面和跳转进入页面的样式不同。
  
  * 出现这个错误的前提是存放jsp页面的文件夹和存放css/js的文件夹在同一级文件夹里,解决方法有两个:
   > 1,将jsp页面提出来,和存放css/js的文件夹同级!
   > 2,防止直接输入url地址进入页面,必须通过web程序跳转进入!参照一
  
 三,成功页面(success.jsp)退出(session.invalidate())后跳转到登录页面(login.jsp),
 点击浏览器后退不会回到先前成功页面,还是登录页面,且地址栏一直是login.jsp不变。
  
  * 因为浏览器前进后退是直接读取浏览器缓存的html页面,而不是访问服务器。
  所以只要禁用浏览器缓存即可在后退前进时再去访问服务器,只要它访问服务器,我们这时就可以使用拦截器,
  判断session中是否有登录信息!这样就可以实现退出后点击浏览器后退不能退回到成功页面而是一直在登录页面!
  
  * 退出时跳转到登录页面使用重定向而不是转发,就可以实现推出后点击后退地址栏一直是login.jsp!

  
 四,禁用浏览器缓存时(为了实现1),在访问servlet时这个servlet又跳另一servlet再跳页面时(edit.jsp(编辑页面)->editServlet(编辑信息)->getMsgServlet(获取信息)->show.jsp(展示页面)),
 点击其他操作再点击浏览器后退(想回到show.jsp)时,会出现页面出错的问题!如何避免?
  
  * 我们在整个流程中,先去editServlet,再转发到另一getMsgServlet时是用的转发,所以在show.jsp点击其他操作后再后退时(即后退到show.jsp)时,地址栏是editServlet!!!这是关键!
  所以我们只需要在editServlet跳到getMsgServlet时用重定向而不是转发,这样就是通过客户端跳转的getMsgServlet!返回时的地址栏就是getMsgServlet了,这样就可以解决这个问题!
  
  * 这是因为禁用浏览器缓存时,每次前进后退都会去访问服务器,当我们返回时,如果地址栏是editServlet,由于它是服务端跳转的,不是客户端跳转的,相当于没有之前的页面!所有没办法回到之前的页面!所有浏览器报错!
  所以我们只需要让servlet跳servlet时使用重定向而不是转发即可,就相当于是客户端跳转了!相当于有那个页面了!这是后退才能回到之前的页面!

 
 

你可能感兴趣的文章
趣链 BitXHub跨链平台 (4)跨链网关“初介绍”
查看>>
九度OJ 1091:棋盘游戏 (DP、BFS、DFS、剪枝)
查看>>
Openfiler 配置 NFS 示例
查看>>
Oracle 11.2.0.1 RAC GRID 无法启动 : Oracle High Availability Services startup failed
查看>>
Oracle 18c 单实例安装手册 详细截图版
查看>>
Oracle Linux 6.1 + Oracle 11.2.0.1 RAC + RAW 安装文档
查看>>
Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明
查看>>
Oracle 11g 新特性 -- ASM 增强 说明
查看>>
Oracle 11g 新特性 -- Database Replay (重演) 说明
查看>>
Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明
查看>>
CSDN博客之星 投票说明
查看>>
Oracle wallet 配置 说明
查看>>
Oracle smon_scn_time 表 说明
查看>>
VBox fdisk 不显示 添加的硬盘 解决方法
查看>>
Java多态性理解
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第一篇:互联网时代U盘化生存方式 【张振华.Jack】
查看>>
CentOS6.4配置Hadoop-2.6.0集群配置安装指南(经过实战演练)【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第二篇:专注的力量 [张振华.Jack]
查看>>
BFS——求矩阵中“块”的个数
查看>>
BFS——走迷宫的最小步数
查看>>