2017-06-22 94 views
0

我正在研究一個基於spring-MVC的java項目。我有用戶 - 這個問題的學生 - 如果他們記錄的話,我想在他們導航的每一頁上查看。因此,我編寫了一個網頁過濾器,該過濾器在每次加載頁面之前運行並確保用戶已登錄並且是學生 - 除了登錄頁面(顯然用戶沒有登錄到該頁面:D)以及每個人都可訪問的主頁,當我將這個過濾器添加到項目中時,所有CSS都被禁用,所有圖像都消失了,我想如果我有任何js會被禁用(這只是一個猜測,但我相信頁面對Resource文件夾的訪問是以某種方式禁止由於我提到了它這種模式:Servlet過濾器阻止css工作

${pageContext.request.contextPath}/resources

這裏是我的過濾器的方法doFilter,有什麼我收到錯在這裏

任何意見將不勝感激。

回答

0

你需要讓你的過濾器繞過靜態資源,像這樣:

boolean isStaticResource = request.getRequestURI().startsWith("/resources/"); 

if (loggedIn || loginRequest || isMainPage || isStaticResource) { 
    chain.doFilter(request, response); 
} else { 
    response.sendRedirect(loginURI); 
} 
+0

感謝您的快速,高效的答案!它一舉成功地解決了這個問題。但是,我不熟悉「靜態資源」。你能解釋一下你的意思嗎? –

+0

@SarahAmini請檢查[此問題](https://stackoverflow.com/q/24108624/1126831)。 – ledniov

+0

非常感謝。你救了我的工作:) –