idea过滤器 过滤所有页面除了登录页面 !(包括白名单简洁概括)

1、创建过滤器包,创建LoginFilter类

2.在LoginFilter类中写过滤代码

java 复制代码
    //白名单
    List<String> whitelist = Arrays.asList("/login.jsp");
    //用来存放配置文件中Action节点的属性
    List<Action> actionList = new ArrayList<>();
java 复制代码
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) servletRequest;
    HttpServletResponse response = (HttpServletResponse) servletResponse;
    String path = request.getServletPath();
    Object username = request.getSession().getAttribute("user");
   
    if (username != null) {
        //有登录,直接放行
        filterChain.doFilter(request, response);
        return;
    } else if (whitelist.contains(path)) {//在白名单中
        //放行
        filterChain.doFilter(servletRequest, servletResponse);
        return;
    } else {
        //没有有登录,重定向登录页面
        response.sendRedirect("login.jsp");
    }
}

Filter层中的LoginFilter类

Servlet层中的user (从登录页面获取的用户值,并存入Session中)

完成以上操作就可以实现不管进入那个页面都会跳到登录页面! ! !

相关推荐
星乐a1 分钟前
String vs StringBuilder vs StringBuffer深度解析
java
萧逸才20 分钟前
【learn-claude-code-4j】S14FeiShu - 飞书群聊智能体
java·人工智能·ai·飞书
好家伙VCC43 分钟前
**发散创新:基于Rust的轻量级权限管理库设计与开源许可证实践**在现代分布式系统中,**权限控制(RBAC
java·开发语言·python·rust·开源
m0_719084111 小时前
天机学堂aaaa
java
孙鹏宇.1 小时前
左值右值.
java·开发语言
XDHCOM1 小时前
Redis节点故障自动恢复机制详解,如何快速抢救故障节点,确保数据不丢失?
java·数据库·redis
风吹迎面入袖凉1 小时前
【Redis】Redisson分布式锁原理
java·服务器·开发语言
QCzblack1 小时前
BugKu BUUCTF ——Reverse
java·前端·数据库
Orange_sparkle1 小时前
learn claude code学习记录-S02
java·python·学习
李白你好1 小时前
Java GUI-未授权漏洞检测工具
java·开发语言