日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

在基于Spring MVC的应用程序中配置favicon.ico

發布時間:2023/12/3 javascript 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在基于Spring MVC的应用程序中配置favicon.ico 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Favicon是與您的網站相關的圖標(favicon.ico)。 并非每個網站都在使用favicon。 但是大多數瀏覽器并不關心它,反正他們都要求它。 當圖標圖標不在適當位置時,服務器將返回不必要的404 Not Found錯誤。

在典型的Spring MVC應用程序中,我們首先需要配置安全過濾器,該過濾器允許所有對favicon.ico的請求,因為Spring Security會緩存用戶的請求,包括favicon.ico請求。 成功通過身份驗證后,Spring Security會將我們重定向到顯示錯誤的資源。 為了避免這種情況,我們通過以下方式配置安全過濾器:

<security:http auto-config="true" disable-url-rewriting="true" use-expressions="true"><security:form-login login-page="/signin" authentication-failure-url="/signin?error=1" /><security:logout logout-url="/logout" invalidate-session="false"/><security:intercept-url pattern="favicon.ico" access="permitAll" /><security:intercept-url pattern="/" access="permitAll" /><security:intercept-url pattern="/error" access="permitAll" /><security:intercept-url pattern="/resources/**" access="permitAll" /><security:intercept-url pattern="/signin" access="permitAll" /><security:intercept-url pattern="/signup" access="permitAll" /><security:intercept-url pattern="/**" access="isAuthenticated()" /> </security:http>

該配置可確保當請求favicon.ico時,不需要身份驗證。 此技巧使我們無法在登錄應用程序后看到“ 404 Not Found ”。

通常,我們要做的就是使404 Not Found在Spring MVC / Spring Security應用程序中“消失”。 但是實際上,客戶端仍將尋找該資源,服務器將返回404 Not Found錯誤。

如果我們不想在我們的網站上使用favicon,可以采用以下幾種方法使服務器在請求后不返回錯誤。

可能最簡單的方法是在靜態資源中添加一個“空白” favicon.ico,并讓服務器根據請求提供此文件。 在以下配置中,Spring處理來自/resources/目錄的靜態資源,該目錄映射到/resources/**路徑:

@Configuration public class WebMvcConfig extends WebMvcConfigurationSupport {private static final String RESOURCES_HANDLER = "/resources/";private static final String RESOURCES_LOCATION = RESOURCES_HANDLER + "**";@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(RESOURCES_HANDLER).addResourceLocations(RESOURCES_LOCATION);}}

可以將favicon.ico文件添加到resource/images目錄,但是隨后應創建其他@Controller以將任何favicon.ico請求轉發到實際圖標。 我正在使用配置中的靜態類來執行此操作:

@Configuration public class WebMvcConfig extends WebMvcConfigurationSupport {@Controllerstatic class FaviconController {@RequestMapping("favicon.ico")String favicon() {return "forward:/resources/images/favicon.ico";}}}

怎么運行的? 當客戶端請求localhost:8080/favicon.ico ,控制器會將請求轉發到靜態資源。 將來,當您需要為網站提供favicon.ico時,只需替換resources/images目錄中的文件即可。

我最近想到的另一種方法是,添加一個@Controller ,它具有一個返回空@ResponseBody方法:

@Controller class FaviconController {@RequestMapping("favicon.ico")@ResponseBodyvoid favicon() {} }

它將解決404 Not Found問題,但將來您將需要記住進行配置更改,以防您需要為網站添加favicon.ico。

  • 可以在GitHub上的Spring MVC快速入門原型中找到該配置。

參考:來自我們的JCG合作伙伴 Rafal Borowiec在基于Spring MVC的應用程序中 ,在Codeleak.pl博客上配置favicon.ico 。

翻譯自: https://www.javacodegeeks.com/2014/02/configure-favicon-ico-in-spring-mvc-based-application.html

總結

以上是生活随笔為你收集整理的在基于Spring MVC的应用程序中配置favicon.ico的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。