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

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

相关推荐
jinanwuhuaguo几秒前
OpenClaw办公人员核心技能深度培训体系:从认知重塑到数字组织构建的全链路实战指南
java·大数据·开发语言·人工智能·openclaw
zihao_tom3 分钟前
Spring Boot 整合 Druid 并开启监控
java·spring boot·后端
不会写DN6 分钟前
Protocol Buffers(.proto)实战入门:Go 生态最常用的接口定义语言
java·前端·golang
lifallen6 分钟前
Flink Agents:从 DataStream 到 Agent 算子的接入与装配
java·大数据·人工智能·python·语言模型·flink
oYD3FlT326 分钟前
MyBatis-缓存与注解式开发
java·缓存·mybatis
Arya_aa10 分钟前
Web基础+JavaEE+容器
java·java-ee
Yiyi_Coding16 分钟前
Proxy详解
java·前端·javascript
鬼先生_sir20 分钟前
SpringBoot-源码剖析
java·spring boot·springboot源码解析
ch.ju23 分钟前
Java程序设计(第3版)第二章——Java中的数据类型
java
MwEUwQ3Gx24 分钟前
深入理解 Java Deque 的设计哲学
java·开发语言·python