此页面不能正确地重定向

news/2025/3/15 22:42:53/

这种是由于条件判断有误,程序不断的重定向到一个页面,而造成的死循环的情况

下面列举一个常出现的场景之一

1、使用过滤器实现登录验证错误处理

解释:当用户访问login.jsp进行登录的时候,这个时候请求会被Filter捕获,Filter通过session获取用户登录成功之后的信息,但是此时用户并没有登录,程序又会重定向到login.jsp。

这个时候就会出现程序进入Filter后返回重定向到login.jsp.

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)throws IOException, ServletException {System.out.println("=============loginFilter=============");//进来之后我需要判断当前用户有没有登录,如果登录放行,否则去登录页//1、获取当前的请求地址HttpServletRequest request=(HttpServletRequest)servletRequest;HttpServletResponse response=(HttpServletResponse)servletResponse;HttpSession session=request.getSession();UserInfo user=(UserInfo)session.getAttribute("userinfo");if(user==null){response.sendRedirect("login.jsp");return ;}//FilterChain过滤链,进行放行filterChain.doFilter(servletRequest, servletResponse);}

2、正确的Filter的写法

这个时候我们需要获取当前用户的请求地址,当请求地址URL中包含login等登录字样的时候,直接放行,让用户去登录,而不是拦截。

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)throws IOException, ServletException {System.out.println("=============loginFilter=============");//进来之后我需要判断当前用户有没有登录,如果登录放行,否则去登录页//1、获取当前的请求地址HttpServletRequest request=(HttpServletRequest)servletRequest;HttpServletResponse response=(HttpServletResponse)servletResponse;String url=request.getRequestURI();System.out.println("==url=="+url);//如果请求的地址中包含了login字样,说明用户正在登录,放行。//indexOf判断login在url字符串中首次出现的索引的位置if(url.indexOf("login")>=0 || url.indexOf("userinfo.do")>=0){//用户在登录中,放行filterChain.doFilter(servletRequest, servletResponse);return ;}HttpSession session=request.getSession();UserInfo user=(UserInfo)session.getAttribute("userinfo");System.out.println("==user==filter==="+user);if(user==null){response.sendRedirect("login.jsp");return ;}//FilterChain过滤链,进行放行filterChain.doFilter(servletRequest, servletResponse);}

http://www.ppmy.cn/news/1182142.html

相关文章

python:使用Scikit-image对遥感影像进行尺度空间特征提取(scale-space)

作者:CSDN @ _养乐多_ 在本博客中,我们将介绍如何使用Scikit-Image来进行尺度空间特征提取,并且提供一个示例代码,演示了如何在单波段遥感图像上应用这些方法。 尺度空间特征提取是一种处理图像的方法,旨在检测不同尺度下的特征和结构。这对于处理遥感图像非常有用,因为…

nginx配置域名(ssl和非ssl形式)

概要 本文以阿里云为例,浅要介绍如何将域名指向你的服务器,以及如何配置ssl和非ssl的方式。 购买域名 购买域名不做描述,本文域名以helloword.com为例 域名实名与备案 购买后,不实名和备案是无法使用的,这里不展开…

【Proteus仿真】【Arduino单片机】直流电机和步进电机

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用蜂鸣器、按键、直流电机、步进电机、ULN2003、L293D等。 主要功能: 系统运行后,K3键启动运行,K1和K2键控制…

windows PC virtualBox 配置

效果: oracle vitualbox 可以访问通PC主机,可以访问外网: 注意,如果docker0网络地址,和PC主机的网络地址冲突了,需要变更docker的网络地址: root/home/mysqlPcap/anti-tamper $ cat /etc/docker/daemon.js…

使用了百度OCR,记录一下

由于识别ocr有的频率不高,图片无保密性需求,也不想太大的库, 就决定还是用下api算了,试用了几家,决定用百度的ocr包,相对简单。 遇到的问题里面下列基本有提到:例如获取ID,KEY&…

数据库MySQL(四):表中字段约束和外键约束

约束 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 目的:保证数据库中数据的正确性、有效性、完整性。 约束分类描述关键字非空约束限制该字段的数据不能为NULLNOT NULL唯一约束保证该字段的所有数据都是唯一的、不重复的…

详细介绍如何使用 NeRF 进行 3D 体积渲染-附源码下载

介绍 在此示例中,我们展示了 Ben Mildenhall 等人的研究论文 NeRF:将场景表示为用于视图合成的神经辐射场的最小实现 。等人。作者提出了一种巧妙的方法,通过神经网络对体积场景函数进行建模来合成场景的新颖视图。 为了帮助您直观地理解这一点,让我们从以下问题开始: 是…

接口自动化测试要做什么?一文3个步骤带你成功学会!

先了解下接口测试流程: 1、需求分析 2、Api文档分析与评审 3、测试计划编写 4、用例设计与评审 5、环境搭建(工具) 6、执行用例 7、缺陷管理 8、测试报告 了解了接口测试的工作流程,那"接口自动化测试"怎么弄&#xff1…