初学Java web(十)

news2025/1/11 2:29:32

Filter和Listener

一.Filter

  • 概念:Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。

  • 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。

  • 过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等

1.快速入门

  • 定义类,实现Filter接口,并重写其所有方法

  public class FilterDemo implements Filter{
      public void init(FilterConfig filterConfig)
      public void doFilter(ServletRequest request
      public void destroy(){}
  }

  • 配置Filter拦截资源的路径:在类上定义@WebFilter注解

  @WebFilter("/*")
  public class FilterDemo implements Filter{}

  • 在doFilter方法中输出一句话,并放行

  public void doFilter(ServletRequest request,Ser
      System.out.println("filter被执行了...");
      //放行
      chain.doFilter(request,response);
  }

2.Filter执行流程

1.放行后访问对应资源,资源访问完成后,还会回到Fter中吗? 会

2.如果回到Filter中,是重头执行还是执行放行后的逻辑呢? 放行后逻辑

3.使用细节

3.1Filter拦截路径配置

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

  @WebFilter("/*")
  public class FilterDemo

  • 拦截具体的资源:/index,jsp:只有访问lindex,jsp时才会被拦截。

  • 目录拦截:/user/:访问/user下的所有资源,都会被拦截后缀名拦截:

  • jsp:访问后缀名为jsp的资源,都会被拦截

  • 拦截所有:*:访问所有资源,都会被拦截

3.2过滤器链

  • 一个Web应用,可以配置多个过滤器,这多个过滤器称为过滤器链

  • 注解配置的Filter,优先级按照过滤器类名(字符串)的自然排序

二.监听器

  • 概念:Listener表示监听器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。

  • 监听器可以监听就是在application,session,request:三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件

  • Listener分类:JavaWeb中提供了8个监听器

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

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

相关文章

新键盘到了,我的工作效率提升了数十倍

前言:快过年了,找到了一份满意的实习,正好旧的键盘坏掉了,最近入手了一款不错的机械键盘奖励自己。到货使用一段时间了,来一篇键盘开箱的博客做一个反馈。 新键盘使用感言:优良的键盘如图云上漫步&#xf…

白质中的BOLD信号激活检测问题

白质中BOLD信号的生理意义存在争议的两个主要原因: BOLD信号依赖于脑血流量CBF和脑血容量CBV,但是白质中的血流量和血容量比灰质中的少得多(利用MRI估计的微血管数量:白质为10-192条/mm^2,灰质为99-761条/mm^2&#x…

【GUI界面】基于Python的WSG84三点定位系统(经纬度坐标与平面坐标转换法求解)

【GUI界面】基于Python的WSG84三点定位系统(经纬度坐标与平面坐标转换法求解) 方法汇总: blog.csdn.net/weixin_53403301/article/details/128441789 【精准三点定位求解汇总】利用Python或JavaScript高德地图开放平台实现精准三点定位&…

[开源工具]使用Fiddler简单计算QPS[新手开箱可用]

使用Fiddler简单计算QPS1.什么是QPS?2.怎么计算QPS?3.如何使用Fiddler得到一个API接口的QPS?3.1配置:打开Fiddler文件夹,点击Fiddler.exe运行fiddler进行配置4.如何得到本机的核心数?5.根据公式计算QPS?6.扩展计算单机可支撑PV(理论值)?1.什么是QP…

springboot中controller层接收参数,servers层调用mapper层,一条sql搞定排序

前言 很多小伙伴们在公司不管是测试C端产品还是B端产品,都会测到排序的业务需求;那么我们就会好奇排序是如何实现的呢?下面我们开始介绍代码的实现 数据库建表 我们需要创建一个书籍book表结构,如下图所示 CREATE TABLE book ( …

嵌入式C语言面向对象编程 --- 总结

什么是 C 语言面向对象? 在开始嵌入式 C 语言设计模式系列文章之前,先通过三篇文章讲述了如何使用 C 语言实现面向对象的三大特性,封装,继承,多态。 图片来源公众号:码农翻身 对于“面向对象”这个词语,相信很多软件工程师都不会感觉到陌生,并且很多软件工程师在刚开…

ABAP: 定义关键字的区别

问题:TYPE、LIKE、LIKE TABLE OF、LIKE LINE OF、TYPE TABLE OF 的区别? 1、TYPE 用于变量的类型定义,可以是表中预定义好的字段,也可以是C(字符),F(浮点型),I(整型)等。 例如: DATA: NAME TY…

Spring Cloud简介

一、什么是SpringCloud? Spring Cloud 是一系列框架的有序集合。 Spring Cloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来。 通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理&#xff…

Python 图像边缘检测 | 利用 opencv 和 skimage 的 Canny 算法

文章目录一、简介二、opencv 实践三、skimage 实践CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、简介 提取图片的边缘信息是底层数字图像处理的基本任务之一。边缘信息对进一步提取高层语义信息有很大的影响。大部分边缘检测算法都是上个世纪的了&#xff0c…

【Java基础】day11

day11 一、BIO、NIO、AIO 三种 IO 模型分别是什么? BIO (Blocking I/O)同步阻塞的 I/O 、NIO(New/Non-blocking I/O) 同步非阻塞的 I/O 、AIO(Asynchronous I/O) 异步非阻塞的 I/O 。这三种 I…

前端例程20221227:下雪动画

演示 动图太大了不好上传&#xff0c;这里就放个静态图吧&#xff0c;实际上这里是雪花从上到下飘落的效果。 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content&quo…

【Spring【AOP】】——20、搭建一个AOP测试环境?

&#x1f4eb;作者简介&#xff1a;zhz小白 公众号&#xff1a;小白的Java进阶之路 专业技能&#xff1a; 1、Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理 2、熟悉Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理&#xff0c;具备⼀定的线…

Linux系统运行时参数命令--CPU性能监控

目录 2 CPU性能监控 2.1 平均负载和CPU使用率 1 平均负载基础 2 使用uptime命令分析平均负载 3 平均负载与 CPU 使用率 4 CPU使用率监测命令 ps查找进程信息 top命令查询进程的cpu、内存信息 mpstat pidstat 场景一&#xff1a;CPU 密集型进程 场景二&#xff1a;I…

嵌入式开发学习之--DMA(上)

提示&#xff1a;本篇文章主要了解学习一下DMA 文章目录前言一、DMA是什么&#xff1f;二、DMA使用步骤1、外设通道选择2.2、仲裁器2.3、FIFO2.4、存储器端口 外设端口2.5、编程端口三、DMA结构体初始化详解总结前言 上一篇文章学习了串口通信&#xff0c;这一篇我们来学习一下…

虹科案例 | 实现了新的核磁共振应用!(下)

摘要 光纤传感器已成为推动MRI最新功能套件升级和新MRI设备设计背后的关键技术。在这篇文章中&#xff0c;我们介绍了三个基于MRI的运动控制应用&#xff0c;展示了最近开发的、可在市场上买到的基于MRI的安全光纤反馈传感器的操作和使用。 案例研究 案例研究#1用于验证MRI技…

【聆思CSK6 视觉AI开发套件试用】体验AI功能

本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;YiCheng 很高兴极术社区和聆思科技举办的开发板申请试用活动&#xff0c;放张开箱图&#xff1a; 开发板介绍NanoKit开发板# NanoKit开发板是…

【算法】前缀和与差分

文章目录1.一维前缀和输入格式输出格式数据范围2.二维前缀和输入格式输出格式数据范围3.一维差分输入格式输出格式数据范围4.二维差分输入格式输出格式数据范围前缀和差分是一对逆运算1.一维前缀和 有一个长度为n的数组an:a1,a2…an; 对于前缀和&#xff1a;Si a1a2…ai 如何…

刷爆力扣之二进制求和

刷爆力扣之二进制求和 HELLO&#xff0c;各位看官大大好&#xff0c;我是阿呆 &#x1f648;&#x1f648;&#x1f648; 今天阿呆继续记录下力扣刷题过程&#xff0c;收录在专栏算法中 &#x1f61c;&#x1f61c;&#x1f61c; 该专栏按照不同类别标签进行刷题&#xff0c;…

Spark零基础入门实战(八)Spark运行时架构

Spark有多种运行模式,可以运行在一台机器上,称为本地(单机)模式,也可以以YARN或Mesos作为底层资源调度系统以分布式的方式在集群中运行,称为Spark On YARN模式,还可以使用Spark自带的资源调度系统,称为Spark Standalone模式。 本地模式通过多线程模拟分布式计算,通常…

如何使用Python创建一个虚拟助理

使用Python创建一个虚拟助手 虚拟助理是基于人工智能的程序。它们是一种智能计算机程序&#xff0c;可以通过语音命令或文本理解人类的自然语言&#xff0c;并为用户执行任务。本文将指导你通过使用Python库来创建你自己的语音助手的过程。 在本教程中&#xff0c;我将在Jetb…