登录校验-Filter-详解

这篇具有很好参考价值的文章主要介绍了登录校验-Filter-详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

执行流程

拦截路径

过滤器链 

小结


执行流程

  • 过滤器Filter拦截到请求之后,首先执行方放行之前的逻辑,然后执行放行操作(doFilter),然后会访问对应的Web资源(对应的Controller类),Controller类处理完请求后,然后执行放行之后的逻辑,最后将响应结果返回给前端。

拦截路径

  • Filter可以根据需求,匹配不同的拦截资源路径
    • 拦截路径 urlPatterns值

      含义

      拦截具体路径 /login 只有访问/login路径时,才会被拦截
      目录拦截 /emps/* 访问/emps下的所有资源,都会被拦截
      拦截所有 /* 访问所有资源,都会被拦截

过滤器链 

  • 介绍:一个Web应用中,可以配置多个过滤器,这多个过滤器就形成了一个过滤器链
    • 在所有过滤器放行之后才会访问Web资源(Controller类),而过滤器放行之后的逻辑的执行顺序是从后到前的。最后给前端响应数据
  • 具体举例如下:
    • 过滤器Filter顺序:
      • 登录校验-Filter-详解,Java Web学习跟踪笔记,前端,Servlet,FIlter
    • 具体代码如下:

      •  AFilter

      • package com.example.tlias.Filter;
        
        import jakarta.servlet.*;
        import jakarta.servlet.annotation.WebFilter;
        
        import java.io.IOException;
        
        @WebFilter(urlPatterns = "/*")
        public class AFilter implements Filter {
            @Override
            public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
                System.out.println("AFilter放行之前的逻辑");
                // todo 放行请求,让其访问对应的资源
                filterChain.doFilter(servletRequest, servletResponse);
                System.out.println("AFilter放行之后的逻辑");
            }
        }
        
      • JWTFIlter

      • package com.example.tlias.Filter;
        
        
        import jakarta.servlet.*;
        import jakarta.servlet.annotation.WebFilter;
        
        import java.io.IOException;
        
        @WebFilter("/*") // todo 设置当前过滤器要拦截的请求
        public class JWTFilter implements Filter {
            @Override// todo  初始化方法,Web服务器启动时,创建Filter时调用,只调用一次
            public void init(FilterConfig filterConfig) throws ServletException {
                Filter.super.init(filterConfig);
                System.out.println("init初始化方法执行了");
            }
        
            @Override  // todo 拦截到请求时就会调用该方法,可调用多次
            public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
                System.out.println("JWTFilter放行之前的逻辑");
                // todo 放行请求,让其访问对应的资源
                filterChain.doFilter(servletRequest, servletResponse);
                System.out.println("JWTFilter放行之后的逻辑");
        
            }
        
            @Override // todo 销毁方法,服务器关闭时调用,只调用一次
            public void destroy() {
                Filter.super.destroy();
                System.out.println("destroy销毁方法执行了");
            }
        }
        
    • 测试运行结果

      • 登录校验-Filter-详解,Java Web学习跟踪笔记,前端,Servlet,FIlter文章来源地址https://www.toymoban.com/news/detail-676450.html

      • 在所有的过滤器放行前的逻辑执行完之后,才会将请求交给Web资源进行处理
         

小结

  • 执行流程
    • 请求-->放行前的流程-->放行-->资源-->放行后的逻辑
  • 拦截路径
    • /login
    • /depts/*
    • /*
  • 过滤器链
    • 一个Web应用中,配置多个过滤器,就形成一个过滤器链

到了这里,关于登录校验-Filter-详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java | 详解 创建Web项目、配置Tomcat服务器、实现登录效果

    目录 一、相关工具及技术         1、相关工具         2、相关技术         3、相关 jar 包 二、IDEA 创建 web 项目         1、创建空项目         2、classes目录和lib目录配置         3、tomcat 服务器配置 三、MySQL 配置         1、登录 mysql         2、创建 user 表      

    2024年02月03日
    浏览(48)
  • web学习--登录认证--会话技术--cookie--session--令牌--java-jwt使用--jjwt使用

    前置学习: http springmvc 会话:用户打开浏览器,访问web服务器资源,会话建立,直到有一方断开连接会话结束,一次会话可以多次请求和连接 会话跟踪:一种维护浏览器状态的方式,服务器需要识别多次请求是否来自同一浏览器,以便同一次会话多次请求间共享数据。 cooki

    2024年02月15日
    浏览(56)
  • 【Java Web学习笔记】5 - XML

    https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/xml 目录 项目代码 零、在线文档 一、XML引出 1.为什么需要XML 2.XML用于解决什么问题  3.案例 二、XML基本语法 1.基本语法 2.XML语法 - 文档说明 3.XML语法 - 元素 4.XML语法 - 属性 5.XML语法 - CDATA节 三、XML转义字符 小结 四、DOM4J 1.XML解

    2024年02月04日
    浏览(27)
  • web开发学习笔记(8.java web后端开发基础知识)

    1.使用spring开发的优势,spring发展到今天已经形成了一种开发生态圈,提供了若干个子项目,每个项目用于完成特定的功能。使用spring全家桶,可以做到很多事情,可以很方便的套用很多的组件。 2.pom构成 指定父工程 指定web构件 指定springboot打包控件 3.启动类的写法 4.contro

    2024年01月18日
    浏览(51)
  • 《Java Web轻量级整合开发入门》学习笔记

    轻量级Java Web整合开发 第一章 轻量级Java Web开发概述 1.2  java web 开发概述 1.JSP是一种编译执行的前台页面技术。对于每个JSP页面,Web服务器都会生成一个相应的Java文件,然后再编译该Java文件,生成相应的Class类型文件。在客户端访问到的JSP页面,就是相应Class文件执行的结果

    2024年02月08日
    浏览(38)
  • 会话跟踪技术学习笔记(Cookie+Session)+ HTTP学习笔记

    1.1 Cookie 1. Cookie:是一种客户端会话技术,数据会被保存在客户端,Cookie会携带数据访问服务器,用以完成一次会话内多次请求间的数据共享 2. 过程:浏览器(客户端)先向服务端发送请求,服务端会发送一个Cookie给客户端,在此后同一次会话中,每次客户端都会将Cookie发送

    2024年02月10日
    浏览(36)
  • 【学习笔记】目标跟踪领域SOTA方法比较

    常用于行人跟踪的多目标跟踪数据集包括:MOT 15/16/17/20、PersonPath22等… 为更好比较现有SOTA算法的检测性能,本博客将针对在各数据集上表现较优的算法模型进行介绍。(表中画粗数据表明对应算法为该数据集表现最优算法) 数据集 算法模型 MOTA 年份 代码 MOT15 TraDeS 66.5 202

    2024年02月15日
    浏览(28)
  • MOOSE相关滤波跟踪算法(个人学习笔记)

    论文标题 “Visual Object Tracking using Adaptive Correlation Filters” 原文地址 用滤波器对目标外观进行建模,并通过卷积操作来执行跟踪。 参考阅读: 目标跟踪经典算法——MOSSE(Minimum Output Sum Square Error) 目标跟踪整理(1)之MOSSE 基于以初始帧中给定的bounding box来选择目标,并基于

    2024年02月02日
    浏览(29)
  • Java21 + SpringBoot3集成easy-captcha实现验证码显示和登录校验

    近日心血来潮想做一个开源项目,目标是做一款可以适配多端、功能完备的模板工程,包含后台管理系统和前台系统,开发者基于此项目进行裁剪和扩展来完成自己的功能开发。 本项目为前后端分离开发,后端基于 Java21 和 SpringBoot3 开发,后端使用 Spring Security 、 JWT 、 Spr

    2024年01月23日
    浏览(43)
  • 机器学习笔记 - 3D 对象跟踪极简概述

            大多数对象跟踪应用程序都是 2D 的。但现实世界是 3D 的,无论您是跟踪汽车、人、直升机、导弹,还是进行增强现实,您都需要使用 3D。在 CVPR 2022(计算机视觉和模式识别)会议上,已经出现了大量3D目标检测论文。         对象跟踪是指随着时间的推移定

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包