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

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

相关推荐
微尘寒风12 小时前
【Git】的安装和使用
java·git
y = xⁿ12 小时前
DeepSeek Harness 学习日记:关于Agent接口,工具调用的底层实现
android·java·学习
侧耳倾听11113 小时前
jwt使用简介
java·jwt
顶点多余13 小时前
那些在算法中适合巩固的知识点---1
java·前端·算法
AI人工智能+电脑小能手13 小时前
大白话说Java设计模式-46-责任链模式(业务实战篇)
java·设计模式·责任链模式·风控校验·servlet filter·spring interceptor·链式处理
jay神14 小时前
【计算机毕业设计】基于SpringBoot的程序教学辅助系统
java·前端·vue.js·spring boot·后端·毕业设计·课程设计
2601_9620664914 小时前
【Sql Server】Update中的From语句,以及常见更新操作方式
android·java·数据库
yaoxin52112315 小时前
507. Java 反射 - 在 BeanFactory 中实现依赖注入
java·开发语言
OPEN-F15 小时前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
2601_9620722116 小时前
SpringMVC进阶(自定义拦截器以及异常处理)
java