java如何使用过滤器实现登录拦截处理
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了java如何使用过滤器实现登录拦截处理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。滤器实现登录拦截处理一、什么是过
千家信息网最后更新 2026年11月02日java如何使用过滤器实现登录拦截处理
这篇文章主要介绍了java如何使用过滤器实现登录拦截处理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
滤器实现登录拦截处理
一、什么是过滤器
过滤器是处于客户端与服务器资源文件之间的一道过滤网(驻留在服务器端的Web组件),在访问资源文件之前,通过一系列的过滤器对请求进行修改、判断等,把不符合规则的请求在中途拦截或修改。也可以对响应进行过滤,拦截或修改响应
二、工作原理及生命周期
举个例子 当我们登录系统可以访问到页面,当退出登录后,要访问就必须重新登录,这就是过滤器起到的作用。当我们访问某个接口时,过滤器会拦截请求,判断当前用户是否是登录状态,若登录则放行访问,若未登录则返回指定页面(通常为登录页或一个客户友好的提示页)

这个过程包含了过滤器的生命周期:
1.实例化
2.初始化
3.执行过滤操作(包括访问前对request操作和返回时对response的操作处理)
4.销毁
三、过滤器使用
在springboot项目简单使用过滤器进行登录拦截处理
1.实现过滤器
public class MyFilter implements Filter { private static final String CURRENT_USER = "current_user"; //配置白名单 protected static List patterns = new ArrayList(); //静态代码块,在虚拟机加载类的时候就会加载执行,而且只执行一次 static { patterns.add(Pattern.compile("/index")); patterns.add(Pattern.compile("/login")); patterns.add(Pattern.compile("/register")); } @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) servletRequest; HttpServletResponse httpResponse = (HttpServletResponse) servletResponse; HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper(httpResponse); String url = httpRequest.getRequestURI().substring(httpRequest.getContextPath().length()); if (isInclude(url)) { //在白名单中的url,放行访问 filterChain.doFilter(httpRequest, httpResponse); return; } if (SessionUtils.getSessionAttribute(CURRENT_USER) != null) { //若为登录状态 放行访问 filterChain.doFilter(httpRequest, httpResponse); return; } else { //否则默认访问index接口 wrapper.sendRedirect("/index"); } } @Override public void destroy() { }//判断当前请求是否在白名单 private boolean isInclude(String url) { for (Pattern pattern : patterns) { Matcher matcher = pattern.matcher(url); if (matcher.matches()) { return true; } } return false; }} 2.注册过滤器
@Configurationpublic class WebConfig { /** * 配置过滤器 * @return */ @Bean public FilterRegistrationBean someFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(myFilter()); //拦截/*的访问 多级匹配(springboot 过滤器/*以及匹配 /**多级匹配) registration.addUrlPatterns("/*"); registration.setName("myFilter"); return registration; } /** * 创建一个bean * @return */ @Bean(name = "myFilter") public Filter myFilter() { return new MyFilter(); }}3.运行项目
访问/index,会发现没有被拦截,返回正确结果
在未登录状态,访问/update接口,会被拦截跳转至/index页
在登录状态,访问/update接口,可以访问
这里也可以在程序debug看下。简单的过滤器功能完成。
常用过滤器及其使用后续再来学习。
filter简易实现登录功能拦截
暑期项目实习第八课, filter简易实现登录功能拦截
LoginFliter
public class LoginFliter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; HttpSession session = request.getSession(); User user = (User)session.getAttribute("user"); String uri = request.getRequestURI(); System.out.println(uri.indexOf("findAll.do")); System.out.println(uri.indexOf("login.do")); if(user==null && uri.indexOf("login.do")==-1){ response.sendRedirect(request.getContextPath()+"/"); }else { filterChain.doFilter(request,response); } } @Override public void destroy() { }}controller
@RequestMapping("/login.do") public ModelAndView login(User user, HttpSession session){ boolean flag = userService.login(user.getName(),user.getPassword()); ModelAndView modelAndView = new ModelAndView(); if(flag){ session.setAttribute("user",user); modelAndView.setViewName("../ok"); }else { modelAndView.setViewName("../failure"); } return modelAndView; }结果图
感谢你能够认真阅读完这篇文章,希望小编分享的"java如何使用过滤器实现登录拦截处理"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
过滤器
登录
处理
接口
状态
篇文章
功能
名单
项目
周期
客户
文件
服务器
生命
简易
结果
资源
页面
学习
服务
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司起名
苏州找大状互联网科技有限公司
互联网是不是新科技
广州互联网科技公司
科技与互联网发展
互联网 科技创新
狮子座互联网科技
朗涯互联网科技
亿账通互联网科技
北京禾田雨橡互联网科技
赫美联合互联网科技
天下捷融互联网科技
上海卓越科技 互联网
金融科技和互联网金融
海南购全球互联网科技
开启互联网科技时代小说
顶级互联网科技成果有哪些
互联网科技有哪些公司
互联网金融科技公司的优势
郑州欣桑互联网科技有限公司
喔噻互联网科技有限公司
天津市摩尔互联网科技
互联网科技公司华为
互联网为科技
深圳齐家互联网科技
赫美联合互联网科技
镁科技互联网资讯平台
玉溪新华互联网科技好不好
互联网领先科技宣传片
互联网时代科技型公司的机会