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中)

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

相关推荐
仍然.几秒前
多线程---CAS,JUC组件和线程安全的集合类
java·开发语言
不懂的浪漫6 分钟前
mqtt-plus 架构解析(五):错误处理与 ErrorAction 聚合策略
java·spring boot·后端·物联网·mqtt·架构
呼啦啦56112 分钟前
C++vector
java·c++·缓存
花千树-01013 分钟前
MCP + Function Calling:让模型自主驱动工具链完成多步推理
java·agent·react·mcp·toolcall·harness·j-langchain
Benszen16 分钟前
Linux容器:轻量级虚拟化革命
java·linux·运维
凸头20 分钟前
Lombok 包底层浅析
java
不懂的浪漫22 分钟前
mqtt-plus 架构解析(三):Payload 序列化与反序列化,为什么要拆成两条链
java·spring boot·物联网·mqtt·架构
卷福同学27 分钟前
去掉手机APP开屏广告,李跳跳2.2下载使用
java·后端·算法
漫霂38 分钟前
二叉树的翻转
java·数据结构·算法
语戚38 分钟前
力扣 51. N 皇后:基础回溯、布尔数组优化、位运算全解(Java 实现)
java·算法·leetcode·力扣·剪枝·回溯·位运算