0

我正在过滤每个网址,即使用@WebFilter("/*"). 用户需要登录才能查看任何页面,如果他不是,他会被重定向到/login.do页面。

现在,当用户进入login.do页面时出现问题,因为用户没有登录其他请求,即获取 .js、.css、.jpg、.png 等的请求也被重定向到login.do页面。

我尝试了以下代码:

if(requestedUri.matches(".*[css|jpg|png|gif|js].*")){
    chain.doFilter(request, response);
    return;
}

但在这种情况下,所有页面都可以在没有登录的情况下访问。所以,基本上我需要一种方法来从过滤中排除 css、jpg、js 文件的 url。有什么帮助吗?提前致谢。

4

3 回答 3

2

对不起!那是我的愚蠢错误。正则表达式不正确!

那应该是.*(css|jpg|png|gif|js)

于 2012-10-28T14:11:15.747 回答
1

如果网址喜欢a/b.jspa/b.giffs那里将匹配.*(css|jpg|png|gif|js)

所以正则表达式应该是.*(\bcss\b|\bjpg\b|\bpng\b|\bgif\b|\bjs\b)

于 2014-05-05T09:01:07.617 回答
0

如果你想获得请求的扩展,你应该使用:

.*(css|jpg|png|gif|js)$

匹配

hello.htm.jpg
hello.js
hello.ico

不匹配

hello
hello.
hello.csv
hello.htm
hello.html
hello.shtml
hello.csv
hello.jpg.csv.htm
于 2015-10-13T21:00:09.777 回答