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

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

相关推荐
a努力。1 分钟前
京东Java面试被问:双亲委派模型被破坏的场景和原理
java·开发语言·后端·python·面试·linq
小毛驴8507 分钟前
Maven同时配置阿里云仓库和私有仓库
java·阿里云·maven
刘97538 分钟前
【第25天】25c#今日小结
java·开发语言·c#
不如打代码KK10 分钟前
Springboot如何解决跨域问题?
java·spring boot·后端
豆沙沙包?13 分钟前
2026年--Lc330-394. 字符串解码(栈)--java版
java·开发语言
蓝程序13 分钟前
Spring AI学习 程序接入大模型
java·人工智能·spring
nice_lcj52014 分钟前
数据结构之树与二叉树:重点梳理与拓展
java·数据结构
毕设源码-钟学长15 分钟前
【开题答辩全过程】以 助学贷款管理系统为例,包含答辩的问题和答案
java
亓才孓16 分钟前
任意大小的整数和任意精度的小数的API方法
java
2501_9418752825 分钟前
从资源隔离到多租户安全的互联网工程语法构建与多语言实践分享
java·开发语言