該網頁無法正常運作 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中配置項目名成,然後就可以了

 

 

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