2017-06-22 99 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

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