过滤器的使用

news2024/9/22 1:16:09

过滤器的使用

  • 过滤器介绍
  • 过滤器的使用
  • 配置过滤器
  • 过滤器路径的配置规则
  • 前置、后置、环绕过滤器
  • 过滤器链
  • 过滤器的优先级

过滤器介绍

过滤器(Filter)是位于客户端与服务器资源之间的一道过滤技术,可以在客户端请求到达目标资源之前进行预处理业务。

过滤器作用

  • 执行多个Servlet公共的代码,解决了代码的冗余性问题,提高代码复用性(例如首先资源的登录验证)

在这里插入图片描述

过滤器的使用

  • 1.创建一个类实现javax.servlet.Filter接口
  • 2.实现Filter接口中的init、doFilter、destroy抽象方法
    init 是过滤器初始化方法,用于获取过滤器的初始化参数等
    destory 是过滤器的销毁方法,用以释放资源
    doFilter 方法 用于定义过滤器的业务
  • 3.在doFilter实现过滤器业务
public class Filter_demo2 implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("--------Filter");
        //放行:运行继续执行浏览器请求的目标资源
        filterChain.doFilter(servletRequest, servletResponse);
    }

    @Override
    public void destroy() {

    }
}

配置过滤器

  • xml配置-----在web.xml中进行配置
    <filter>
        <filter-name>Filter_demo2</filter-name>
<!--        拦截器的路径位置-->
        <filter-class>com.powernode.Filter.Filter_demo2</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>Filter_demo2</filter-name>
<!--        要拦截指定的请求url-->
        <url-pattern>/filter1</url-pattern>
    </filter-mapping>
  • 注解配置------在过滤器类添加 @WebFliter() 注解
@WebFilter("/filter1")
public class Filter_demo2 implements Filter {

过滤器路径的配置规则

精确过滤: 配置过滤器拦截指定的请求url

  • 例如:/FirstServlet,/index.html

后缀过滤: 配置过滤器拦截指定的后缀的请求url

  • 例如:*.jpg 、 *.html

通配符过滤

  • /* 拦截所有请求
  • /aaa/bbb/* 拦截项目名后 demo1/aaa/bbb/FirstServlet 或者 demo8/aaa/bbb/a.html

前置、后置、环绕过滤器

根据过滤器在目标资源执行的时机,我们可以将过滤器分为三类:

  • 前置过滤器:过滤器在目标资源之前执行
  • 后置过滤器:过滤器在目标资源之后执行
  • 环绕过滤器:执行目标资源之前会执行过滤器,目标资源执行之后还会执行过滤器

过滤器链

在同一个服务器资源(Servlet类)上可以添加多个过滤器,当用户请求资源时,会依次执行每一个过滤器,然后再执行目标资源,再依次通过过滤器响应客户端请求。
在这里插入图片描述

过滤器的优先级

过滤器优先级:在一个web项目中如果配置多个过滤器,多个过滤器的先后执行顺序

  • 如果多个过滤器都是使用注解配置的,则按照过滤器类的名称字符串的字典顺序执行;
  • 如果多个过滤器都是在web.xml中配置的,则按照web.xml配置的先后顺序执行;
  • web.xml中配置的过滤器优先级高于注解配置;
  • 如果同一个过滤器通过注解及web.xml两种方式都进行了配置,过滤器会执行多次。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69251.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java实战】系统设计需要注意的细节

目录 一、前言 二、设计规约 1.【强制】存储方案和底层数据结构的设计获得评审一致通过&#xff0c;并沉淀成为文档。 2.【强制】在需求分析阶段&#xff0c;如果与系统交互的 User 超过一类并且相关的 UseCase 超过 5 个&#xff0c;使用用例图来表达更加清晰的结构化需求。…

小说电子书阅读系统毕业设计,小说电子书阅读系统设计与实现,毕业设计论文源码开题报告需求分析

项目背景和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于web网页的电子书阅读系统&#xff0c;整个网站项目使用了B/S架构&#xff0c;基于java的springboot框架下开发&#xff1b;管理员通过后台录入信息、管理信息&#xff0c;设置网站信息&#xff0c;管理会…

4款游戏开发引擎优缺点分析

随着微信生态中&#xff0c;小程序应用指数级的增长&#xff0c;许多休闲游戏变成为了众多游戏厂商流量变现的新手段。以近期很火的“羊了个羊”为例&#xff0c;它便是我们常常所说的小游戏。 游戏和小游戏的区别 要盘点小游戏开发引擎之前&#xff0c;我们得先来了解下游戏…

vue3+ts 实现文件在线预览

一、背景 企业微信自建项目中要求PC端也能进行文件预览&#xff0c;但是企业微信提供的接口只能在移动端使用&#xff0c;通过查阅资料修改成贴合项目的方法。参考&#xff1a;https://blog.csdn.net/w_t_y_y/article/details/115767747 kkFileView官方文档 二、preview-file…

浅析能源物联网技术在校园能耗监测系统中的应用与研究

摘要:绿色环保已成为时代的主题&#xff0c;与此同时&#xff0c;节能减排也成为我国蓝天保卫战的重要措施。我国大型公共建筑年耗电量约占全国城镇总耗电量的22%&#xff0c;每平方米年耗电量是普通居民住宅的10&#xff5e;20倍&#xff0c;是欧洲、日本等发达国家同类建筑的…

《四》多线程基础——Java线程生命周期及转换

Java并发编程系列文章 《一》多线程基础——Java线程与进程的基本概念 《二》多线程基础——Java线程入门类和接口 《三》多线程基础——Java线程组和线程优先级 《四》多线程基础——Java线程生命周期及转换 《五》多线程基础——Java线程间的通信&#xff08;互斥与协作&…

Git统计代码行数;Java实现统计代码行数,忽略空行、注释行

前言 某天&#xff0c;产品叫我算下某个项目的代码行数&#xff0c;我一愣&#xff0c;这怎么统计&#xff1f;总不可能一个文件一个文件算吧&#xff1f;后面我找了下&#xff0c;git是可以统计提交到仓库的所有的代码的&#xff0c;不过有个问题&#xff0c;就是假如有些文件…

在STM32F103C8T6上使用RT_Thread Nano移植控制台和Finsh

一、移植环境&#xff1a; 开发环境&#xff1a;Keil MDK 5.33 硬件平台&#xff1a;STM32F103C8T6 RT_Thread版本&#xff1a;RT-Thread Nano V3.1.5 二、在RT-Thread Nano V3.1.5添加uart控制台 1.需要在rtconfig.h开启以下两个宏 1&#xff09;#define RT_USING_CONSO…

ITK (1)窗宽窗位的意义与设置

背景与意义 医学图像与传统可视化图像相比&#xff0c;其具有更大的“灰度”范围。如&#xff0c;普通图像&#xff08;灰度图像&#xff09;的灰度范围一般是256级&#xff08;即图像中最亮的点的灰度值定义为0&#xff0c;最亮的定义为255&#xff0c;也就是2^8&#xff0c;…

【图像处理OpenCV(C++版)】——2.1 深入理解OpenCV之Mat类及相关成员函数

前言&#xff1a; &#x1f60a;&#x1f60a;&#x1f60a;欢迎来到本博客&#x1f60a;&#x1f60a;&#x1f60a; &#x1f31f;&#x1f31f;&#x1f31f; 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义&#xff0c;适用于平时学习、工作快…

【论文阅读31】《OptCuts: Joint Optimization of Surface Cuts and Parameterization》

目录 一些疑惑 0 引言 1 introduction 2 related work 2.1 parameterization with fixed connectivity 2.2 Separate Cut Computation 3 problem statement ​编辑​ 3.1 数学形式1 3.2 数学形式2 3.3 能量函数 3.3.1 接缝线长度&#xff08;归一化&#xff09;&am…

程序员们,你会考虑使用中文编程吗?

众所周知&#xff0c;编程语言有一条无形的“鄙视链”。 Java和C#相互不服&#xff0c;并且看不起写Python的&#xff0c;Python看不起PHP&#xff0c;PHP看不起前端。而中文编程就在这个语言“鄙视链”的底端艰难生存。 有人对中文编程嗤之以鼻&#xff0c;相比于“人生苦短…

免费网课题库系统接口

免费网课题库系统接口 本平台优点&#xff1a;免费查题接口搭建 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a;题库后台http://daili.jueguangzhe.cn/ 题…

[附源码]计算机毕业设计JAVA职业中介信息管理系统

[附源码]计算机毕业设计JAVA职业中介信息管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

Java进阶——IO流(I)

文章目录IO流一、文件1.1、文件流1.2、常用的文件操作1.2.1、创建文件对象相关构造和方法1.2.2、获取文件的相关信息1.2.3、目录的操作和文件删除二、IO流原理及流的分类2.1、Java IO流的原理2.2、流的分类2.3、IO流常用的类2.3.1、InputStream&#xff1a;字节输入流FileInput…

SSH 远程连接协议详解

一、SSH 协议 1、SSH 协议简介 SSH全称是Secure Shell,SSH协议是基于应用层的协议,为远程登录会话和其他网络服务提供安全性的协议。 SSH使用最多的是远程登录和传输文件,实现此功能的传统协议都不安全(ftp、telnet等),因为它们使用明文传输数据,而SSH在传输过程中的…

【云原生.docker】docker部署Redis集群

1、镜像拉取 docker pull redis:5.0.5 2、容器启动 docker run -d --nameredis-6400 --net host --privilegedtrue -v /home/dev/toms/docker_redis/data/redis-6400:/data redis:5.0.5 --cluster-enabled yes --appendonly yes --port 6400 & docker run -d --nameredis-…

在抖音及一些直播上,如何进行违禁词在线检测呢?

本文首发于&#xff1a;行者AI谛听 随着直播行业的兴起&#xff0c;越来越多的网红主播纷纷加入&#xff0c;平台的审核能力也面临着巨大的挑战&#xff0c;相对于平台的严格监管&#xff0c;很多主播也需要进行深层学习&#xff0c;避免在直播中出行违规。 其实很多主播在直播…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java小型餐饮综合管理系统j1c7m

首先选择计算机题目的时候先看定什么主题&#xff0c;一般的话都选择当年最热门的话题进行组题&#xff0c;就比如说&#xff0c;今年的热门话题有奥运会&#xff0c;全运会&#xff0c;残运会&#xff0c;或者疫情相关的&#xff0c;这些都是热门话题&#xff0c;所以你就可以…

文档对象模型 (DOM) :初学者介绍和指南

果你已经使用JavaScript一段时间了&#xff0c;你可能相当熟悉DOM&#xff08;文档对象模型&#xff09;和CSSOM&#xff08;CSS对象模型&#xff09;脚本。除了 DOM 和 CSSOM 规范定义的接口之外&#xff0c;CSSOM 视图模块中还指定了方法和属性的子集&#xff0c;从而提供了用…