退出后点击浏览器后退不能回到成功页面;直接进入页面和跳转进入页面样式不同;防止直接输入页面地址或servlet;当servlet跳servlet时,进行其他操作后后退出现错误!

本文主要是介绍退出后点击浏览器后退不能回到成功页面;直接进入页面和跳转进入页面样式不同;防止直接输入页面地址或servlet;当servlet跳servlet时,进行其他操作后后退出现错误!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如何实现:
 一,不能直接进入页面或者直接访问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时使用重定向而不是转发即可,就相当于是客户端跳转了!相当于有那个页面了!这是后退才能回到之前的页面!


 
 

这篇关于退出后点击浏览器后退不能回到成功页面;直接进入页面和跳转进入页面样式不同;防止直接输入页面地址或servlet;当servlet跳servlet时,进行其他操作后后退出现错误!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/908855

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自