springboot项目拦截器重定向循环问题的解决

目录
  • springboot项目拦截器重定向循环
    • 解决办法
  • springboot拦截器无限循环报错

springboot项目拦截器重定向循环

本菜鸟很久没写东西了,这回是解决了一个小问题,希望能帮助到你。

最近写了一个项目,项目中写了登录拦截器,session过期的用户请求会重定向到登录页面。

写完测试发现session过期后浏览器一直提示重定向次数过多。

打开浏览器F12看到一直都在访问/login/login/login之类的无限循环路径。

后来经过网上查询发现我之前设置重定向地址时直接设置的"login",

这是相对路径的写法,所以每次重定向都会将"login"添加到本次请求url的后面,下一次请求还是会被拦下来。

解决办法

将"login"改为"/login",在前面加"/",这样就变成了绝对路径,每次重定向的时候就能正确访问了。

springboot拦截器无限循环报错

启动项目无限报错

这种一般是你的拦截器没有排除掉让那些路径通过,然而你又拦截了所以请求

这就导致无限重定向

还有就是符号不要写错

这样也是会无限报错!!

这是本人踩到的坑,记录一下!以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • springboot 重定向方式(redirect前缀)

    目录 springboot 重定向(redirect前缀) 相关注解 示例 Spring 重定向(Redirect)指南 为什么要重定向? 使用 RedirectView 重定向 结论 springboot 重定向(redirect前缀) 相关注解 @ModelAttribute:读取modelAndView中的数据 @Target({ElementType.PARAMETER, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @

  • springboot 如何重定向redirect 并隐藏参数

    目录 springboot 重定向redirect 并隐藏参数 1.全局异常处理方法 2.重定向方法 springboot redirect 传参问题 具体案例 springboot 重定向redirect 并隐藏参数 在做全局异常处理的时候,碰到重定向到全局错误页面 所谓隐藏参数无非是把参数放到了session中,再重定向后将该值清除 1.全局异常处理方法 @ExceptionHandler(value = Exception.class) public ModelAndView except

  • 基于springboot redirect重定向路径问题总结

    目录 SpringMVC重定向视图RedirectView小分析 前言 实例讲解 Controller代码 我们通过firebug看下路径: 总结 SpringMVC重定向视图RedirectView小分析 前言 SpringMVC是目前主流的Web MVC框架之一. 本文所讲的部分内容跟SpringMVC的视图机制有关,SpringMVC的视图机制请参考楼主的另一篇博客: RedirectView这个视图是跟重定向相关的,也是重定向问题的核心,我们来看看这个类的源码. 路径构造完毕之后使用re

  • Springboot转发重定向实现方式解析

    1.转发 方式一:使用 "forword" 关键字(不是指java关键字),注意:类的注解不能使用@RestController 要用@Controller @RequestMapping(value="/test/test01/{name}" , method = RequestMethod.GET) public String test(@PathVariable String name) { return "forword:/ceng/hello.h

  • springboot项目拦截器重定向循环问题的解决

    目录 springboot项目拦截器重定向循环 解决办法 springboot拦截器无限循环报错 springboot项目拦截器重定向循环 本菜鸟很久没写东西了,这回是解决了一个小问题,希望能帮助到你. 最近写了一个项目,项目中写了登录拦截器,session过期的用户请求会重定向到登录页面. 写完测试发现session过期后浏览器一直提示重定向次数过多. 打开浏览器F12看到一直都在访问/login/login/login之类的无限循环路径. 后来经过网上查询发现我之前设置重定向地址时直接设置的

  • SpringBoot项目拦截器获取Post方法的请求body实现

    1). 存在问题流只能读取一次 2). 目标多次读取流 3). 解决方法创建包装类 4). RequestWrapper package com.mazaiting.redeye.wrapper;   import com.mazaiting.redeye.utils.StreamUtil; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory;   import jav

  • springBoot项目启动类启动无法访问的解决方法

    网上也查了一些资料,我这里总结.下不来虚的,也不废话. 解决办法: 1.若是maven项目,则找到右边Maven Projects --->Plugins--->run(利用maven启动)则可以加载到webapp资源 2.上面方法治标不治本.在项目的pom文件中添加<bulid>标签标注路径即可,pom.xml后部分代码如下: 刷新maven加载,重启项目.若还是无法访问,重新导入项目 <dependencies> xxxxxxxxxxxx </dependen

  • SpringBoot项目中遇到的BUG问题及解决方法

    1.启动项目的时候报错 1.Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 解决方法: 在yml配置文件中加入debug: true,因为默认的话是false 2.在集成mybatis时mapper包中的类没被扫描 org.springframework.beans.factory.NoSuchBean

  • springboot项目启动的时候参数无效的解决

    目录 springboot项目启动的时候参数无效 改动run方法的参数,添加args参数如下 springboot项目启动参数设置问题 Spring boot项目常用的几种启动方式 war包部署方式 springboot项目启动的时候参数无效 今天启动一个springboot项目发现启动的时候输入的参数都是不能生效,但是yaml文件的配置却生效了,排查了半天,最后发现原来启动类里面有问题,原代码如下 public class Application { public static void ma

  • springboot项目不输出nohup.out日志的解决

    springboot不输出nohup.out日志 nohup java -jar mgcr_pc-0.0.1-SNAPSHOT.war >/dev/null 2>log & 注意:这个log是一个文件,可以随意命名 ps aux|grep 你刚刚运行的包名.jar 然后会显示线程id 关闭进程 如5555 kill -9 5555 nohup启动程序后,nohup.out过大的解决 一般百度到都会说: cp /dev/null nohup.out cat /dev/null nohup

  • 在SpringBoot项目中整合拦截器的详细步骤

    目录 引言 1.创建一个SpringBoot项目工程 2.配置自定义的拦截器 3.注册拦截器 4.编写控制器 总结 引言 拦截器在Web系统中非常常见,对于某些全局统一的操作,我们可以把它提取到拦截器中实现.总结起来,拦截器大致有以下几种使用场景: 1.权限检查:如登录检测,进入处理程序检测用户是否登录,如果没有,则直接返回登录页面或error错误页面: 2.性能检测:有时系统在某段时间莫名其妙很慢,我们可以通过拦截器在进入处理程序之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时

  • SpringBoot项目开发常用技术整合

    目录 1 创建一个springboot demo 1.1 创建Restful接口 2 接口返回通用JSON对象 2.1 构建通用返回对象JSONResult 2.2 使用Jackson 3 SpringBoot开发环境热部署 4 资源文件属性配置 4.1 资源文件中的属性配置与映射到实体类 4.2 Server和Tomcat配置(详细配置参考Gitee) 5 SpringBoot整合模板引擎 5.1 集成freemarker 5.2 集成thymeleaf 5.2.1 集成i18n属性配置 6

  • 详解SpringBoot AOP 拦截器(Aspect注解方式)

    常用用于实现拦截的有:Filter.HandlerInterceptor.MethodInterceptor 第一种Filter属于Servlet提供的,后两者是spring提供的,HandlerInterceptor属于Spring MVC项目提供的,用来拦截请求,在MethodInterceptor之前执行. 实现一个HandlerInterceptor可以实现接口HandlerInterceptor,也可以继承HandlerInterceptorAdapter类,两种方法一样.这个不在本文

  • SpringBoot项目中使用AOP的方法

    本文介绍了SpringBoot项目中使用AOP的方法,分享给大家,具体如下: 1.概述 将通用的逻辑用AOP技术实现可以极大的简化程序的编写,例如验签.鉴权等.Spring的声明式事务也是通过AOP技术实现的. 具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/master/spring-aop Spring的AOP技术主要有4个核心概念: Pointcut: 切点,用于定义哪个方法会被拦截,例如 execution(* cn.sp

随机推荐