退出后点击浏览器后退不能回到成功页面;直接进入页面和跳转进入页面样式不同;防止直接输入页面地址或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

相关文章

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S