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

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

相关推荐
zb2006412014 分钟前
SpringBoot详解
java·spring boot·后端
AI人工智能+电脑小能手43 分钟前
【大白话说Java面试题】【Java基础篇】第7题:HashMap的get流程是什么
java·后端·面试·哈希算法·散列表·hash-index·hash
我头发多我先学1 小时前
C++ 模板全解:从泛型编程初阶到特化、分离编译进阶
java·开发语言·c++
mfxcyh1 小时前
使用MobaXterm配置nginx
java·服务器·nginx
木叶子---2 小时前
Spring 枚举转换器冲突问题分析与解决
java·python·spring
standovon2 小时前
SpringSecurity的配置
java
霸道流氓气质2 小时前
SpringBoot+LangChain4j+Ollama+RAG(检索增强生成)实现私有文档向量化检索回答
java·spring boot·后端
就叫飞六吧2 小时前
Docker Hub 上主流的nginx发行
java·nginx·docker
MiNG MENS2 小时前
基于SpringBoot和Leaflet的行政区划地图掩膜效果实战
java·spring boot·后端
2601_949814692 小时前
Spring Boot中的404错误:原因、影响及处理策略
java·spring boot·后端