该网页无法正常运作 localhost 将您重定向的次数过多。

问题描述:

近日,将Eclipse开发的Maven项目导入到Idea中,启动项目后

无法进入网页,提示:“该网页无法正常运作 localhost 将您重定向的次数过多”,

有点坑的一点就是:在Eclipse中,该项目中是百分百可以运行的,没有任何问题。但是导入到了Idea之后就出现这个错误,

所以主观认为:项目没有问题,是自己导入Idea的动作错误,查阅了很多资料,尝试了三种导入Idea的方式之后,每一种方式都遇到了相同的问题。

若不清楚,IDEA如何导入Maven项目,推荐看下面这篇文章哦!里面附上了个人的见解,对一个新项目导入后十个步骤检查

https://blog.csdn.net/xiaozhegaa/article/details/104834071

进而思考,会不会是本身项目存在的问题导致

问题原因:

如果使用idea配置tomcat启动的话,它默认是不会带上项目名称,当然你可以配置加上项目名称。

如果使用eclipse配置tomcat启动的话,它是默认带上项目名称。

在项目全局拦截器中,存在硬编码,导致重定向的URL一直被拦截,一直在不断的重定向。

 

查阅网上的文章,大概都是以下几种情况:

1、跳转页面的时候,写错地址,导致不断进行跳转死循环。 A->B->A 死循环

2、配置全局拦截器的时候,写了重定向循环

3、估计我这种情况也是坑,如果有小伙伴遇到不是上面这两种的,又是一个新的项目,可以思考一下是不是存在着硬编码导致的。

软件切换、特性不同也会导致这个问题发现,说道理还是拦截器写的有问题

若部署上线,出现这种类似问题,也可以检查一下全局拦截器编码问题吧

 

问题解决:

1、在网上查阅资料,所有的文章指向同一个点:这个错误原因是页面在跳转的时候,有一处死循环了,导致重定向次数过多卡死

但是项目中内部的代码逻辑是没有问题。

2、尝试去掉拦截器,拦截不存在的URL发现可以运行

原先 / 拦截所有

       *.action 指定拦截后缀为.action的请求,

发现可以请求到:

 因此,排除了是IDEA导入项目动作的错误,而是项目配置错误导致的。

3、突然想到,在eclipse中,我的项目是可以依赖于maven项目自身启动的,

在pom文件中,集成了tomcat插件,所以又尝试了用maven:插件启动


   <build>
       <plugins>
           <plugin>
               <groupId>org.apache.tomcat.maven</groupId>
               <artifactId>tomcat7-maven-plugin</artifactId>
               <version>2.2</version>
               <configuration>
                  <port>8081</port>
               </configuration>
           </plugin>
       </plugins>
   </build>

4、两种方式启动后,唯一的不同点在于:

如果使用idea配置tomcat启动的话,它默认是不会带上项目名称,当然你可以配置加上项目名称。

如果使用eclipse配置tomcat启动的话,它是默认带上项目名称,

检查全局拦截器,发现

在登录拦击器中,写死了,针对以下几个URL请求放行处理。

///recruitmentWebsite/system/index
		if(url.equals("/recruitmentWebsite/system/index") ||
				url.equals("/recruitmentWebsite") ||
				url.equals("/recruitmentWebsite/system/login")||
				url.equals("/recruitmentWebsite/user/toLogin")||
				url.equals("/recruitmentWebsite/user/register")) {
			//这三个是未登录可以访问的资源,放行呗
			return true;
		}

终于找到原因了,在idea启动时,访问的是system/login,一直被拦截进行重定向,重定向的次数多了,就出现上面的报错。

5、解决方法,在tomcat中配置项目名成,然后就可以了

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章