java web 做了全局过滤后CSS样式失效问题记录..

在做了全局过滤后,使用Edge浏览器测试功能时,突然发现注册页面的CSS效果失效,返回登录页面发现CSS正常,所以一直以为是注册页面的CSS路径有错,改了半天也没效果,清除浏览器缓存也不行,使用谷歌测试,发现所有页面的CSS效果都失效了,百度了一下终于知道原因,全局过滤把所有Js,css文件都过滤了,包括图片也被过滤掉,于是改了全局过滤的代码,放行了CSS,JS以及图片

以下为更改后的全局过滤代码,因为用的servlet3.0,所以使用@WebFilter("/*")即可,无需配置web.xml
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebFilter("/*")
public class loginFilter implements Filter {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        /***
         * 全局过滤
         * ***/
        HttpServletRequest req = (HttpServletRequest)servletRequest;
        HttpServletResponse resp =(HttpServletResponse) servletResponse;
        HttpSession session = req.getSession();
        // 获得用户请求的URI
        String path = req.getRequestURI();
        // 从session取得已经登录验证的凭证 这里用的password
        String password = (String) session.getAttribute("password");
        //登录,注册页面无需过滤 也可以使用path.contains("login.jsp")
        if(path.indexOf("/login.jsp") > -1||path.indexOf("/index.jsp") > -1 ||path.indexOf("/register.jsp") > -1||path.indexOf("/checkLogin") > -1||path.indexOf("/registerServlet") > -1) {//注意:登录注册页面千万不能过滤
            filterChain.doFilter(req, resp);
            return ;
        }else if(path.contains(".css") || path.contains(".js") || path.contains("images")){ //防止css,js,images被过滤 也可以用path.endWith(".js")
            filterChain.doFilter(req, resp);
        }
        else {//其他情况进行过滤
            if (password == null || "".equals(password)) {
                // 跳转到登陆页面
                resp.sendRedirect("login.jsp");
            } else {
                // 已经登陆,继续此次请求
                filterChain.doFilter(req, resp);
            }
        }
    }
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void destroy() {

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值