【Java项目学习 Day21】Filter 案例

该博客内容涉及在Java Web环境中,使用HttpServletRequest实现过滤器进行权限控制。主要关注如何放行登录和注册相关页面的CSS和图片资源,以及检查session中是否存在用户登录状态,根据状态决定是否放行或重定向到登录页面。
摘要由CSDN通过智能技术生成

        访问登陆页面时,css等样式资源也被拦截了,就看不到样式了。而且需要登陆也需要注册,在此处,样式资源和注册页面都应该放行。所以需要判断访问的路径是否和登录、注册相关,如果是放行图片,即:"/img/"。放行css:"/css/"。

        HttpServletRequest req = (HttpServletRequest) servletRequest;

        //判断访问的路径是否和登录、注册相关
        String[] urls = {"/login.jsp","/loginServlet","register.jsp","/registerServlet"};
        //获取当前访问的资源路径
        String url = req.getRequestURL().toString();
        //循环判断
        for (String u : urls) {
            if (url.contains(u)){
                //证明找到了,需要放行,后面的代码都不执行了,需要return
                filterChain.doFilter(servletRequest, servletResponse);
                return;
            }
        }


        // 判断session中是否有user
        HttpSession session = req.getSession();
        Object user = session.getAttribute("user");
        // 判断user是否为null
        if(user != null){
            //登录过了,放行
            System.out.println("ffffff");
            filterChain.doFilter(servletRequest, servletResponse);
        }else {
            //没有登陆,存储提示信息,跳转到登陆页面
            req.setAttribute("login_msg","您尚未登陆");
            req.getRequestDispatcher("/login.jsp").forward(req,servletResponse);
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值