Web 器学习笔记(基础)

Filter 过滤器

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

作用:顾名思义可以过滤资源的请求,并实现特殊的需求

Filter 接口及它核心的 doFilter() 方法(执行前就是放行前逻辑)

void doFilter(ServletRequest, ServletResponse, FilterChain)

解析:FilterChain 接口是管理过滤器的“链式结构”,比如「禁止浏览器缓存」「实现自动登录」「编码过滤器」「敏感词过滤器」「压缩资源过滤器」「HTML转义过滤器」「缓存数据」…

过滤器其实也是责任链模式的一种实现,FilterChain层层往下执行,直到最后没有过滤器,就到了「目标资源」)

注意:注解配置的 Filter,优先级按照过滤器类名(字符串)的自然排序,比如:A~Z、0~9

 

 

 Listener 监听器

实际上就是实现特定接口的普通Java程序。它专门监听Java对象的方法调用/属性改变,并可以作出反应

回到 Servlet 层面上,我们更多的监听的是「Session」「Request」「ServletContext」「Application」这些对象的创建、销毁及属性内的变化(之后执行相应代码的功能组件)

针对监听上面的几个对象,我们可以做出一些小例子,比如说「统计网站的在线人数」「自动踢人」「定时清除Session的值」

作用总结:A发生了变化,而B需要依赖A发生的变化做出处理

Listener 分类:JavaWeb 提供了八个监听器
监听器分类监听器名称作用
ServletContext监听ServletContextListener

用于对 ServletContext 对象进行监听

(创建、销毁)

ServletContextAttributeListener

对 ServletContext 对象中属性的监听

(增删改属性)

Session监听HttpSessionListener

对 Session 对象的整体状态的监听

(创建、销毁)

HttpSessionAttributeListener

对 Session 对象中的属性监听

(增删改属性)

HttpSessionBindingListener监听对象于 Session 的绑定和解除
HttpSessionActivationListener对 Session 数据的钝化和活化的监听
Request监听ServletRequestListener

对 Request 对象进行监听

(创建、销毁)

ServletRequestAttributeListener

对 Request 对象中属性的监听

(增删改属性)

监听使用例子:ServletContextListener

  1. 定义实现了 ServletContextListener 接口的类
  2. 在实现类上添加 @WebListener 注解

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

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

相关文章

激光焊接汽车PP塑料配件透光率测试仪

随着汽车主机厂对车辆轻量化的需求越来越强烈,汽车零部件轻量化设计、制造也成为汽车零部件生产厂商的重要技术指标。零部件企业要实现产品的轻量化,在材料指定的情况下,要通过产品设计优化、产品壁厚减小和装配方式的优化来解决。使用PP材料…

Rocketmq并发和顺序消费的失败重试机制

文章目录 问题并发消费触发时机客户端发起请求 CONSUMER_SEND_MSG_BACKBroker处理CONSUMER_SEND_MSG_BACK请求 顺序消费Q&A消费的时候是一批的消息, 如果其中某条消费失败了,是所有的消息都会被重试吗?用户可以自己控制重试次数、重试间隔时间吗?批量消费消息,…

Kubernetes网络揭秘:看完你就懂了

一、Master集群网络 master集群的网络比较简单,和通常的负载均衡集群一样。多个节点的apiserver的ip与端口(6443)使用负载均衡的ip与端口。在master/node节点join时均使用此负载均衡的ip与端口,这样就是master节点的集群网络。 master 节点之间的网络&a…

arm栈推导

按照栈生长方向分:可以分为递增栈(向高地址生长);递减栈(向低地址生长) 按照sp执行位置来分:满栈(sp指向栈顶元素的位置);空栈(sp指向即将入栈的…

利用爬虫技术自动化采集汽车之家的车型参数数据

导语 汽车之家是一个专业的汽车网站,提供了丰富的汽车信息,包括车型参数、图片、视频、评测、报价等。如果我们想要获取这些信息,我们可以通过浏览器手动访问网站,或者利用爬虫技术自动化采集数据。本文将介绍如何使用Python编写…

MATLAB中findpeaks函数用法

目录 语法 说明 示例 在MATLAB中,findpeaks函数用于查找信号中的峰值(peaks)。以下是findpeaks函数的基本语法、说明以及示例: 语法 [pks,locs] findpeaks(x) [pks,locs] findpeaks(x, Name, Value)说明 参数说明 x&…

勒索病毒最新变种.halo勒索病毒来袭,如何恢复受感染的数据?

摘要: .halo勒索病毒已成为数字世界中的威胁,通过高级加密技术将文件锁定,并要求支付赎金。本文91数据恢复将深入介绍.halo勒索病毒的工作原理,提供解锁被感染文件的方法,以及探讨如何有效预防这一威胁。如果您正在经…

87 # express 应用和创建应用的分离

创建应用的过程和应用本身要进行分离。路由和创建应用的过程也做一个分离。 下面实现创建应用的过程和应用本身要进行分离: express.js const Application require("./application");function createApplication() {// 通过类来实现分离操作return ne…

unity UDP 通信

客户端 接收端 : using System; using System.IO; using System.Collections; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using UnityEngine; using UnityEngine.UI;public cla…

常见音视频、流媒体开源编解码库及官网(四十一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

Unity中Shader抓取屏幕并实现扭曲效果(优化)

文章目录 前言一、在之前顶点着色器的输入中,放弃了使用结构体传入,而是直接从应用程序阶段传入参数,这样写的话,对于程序来说,不方便扩张,所以需要对其进行修改实现1、定义结构体用于传入顶点坐标系2、因为…

开始撸 Android 源码

启动找工作模式,发现无比困难。搁在往日,大龄程序员找工作都是一件困难的事情,加上今年形势很差,更是难上加难。关键是我这十几年来主攻的浏览器内核方向,需求量更是几乎为零。在 BOSS 直聘上以 Chromium 为关键词&…

华为云云耀云服务器L实例评测|Git 私服搭建指南

前言 本文为华为云云耀云服务器L实例测评文章,测评内容是 云耀云服务器L实例 Git 私有服务器搭建指南 系统配置:2核2G 3M Ubuntu 20.04 我们平时在使用代码托管服务的时候,可能某些代码托管平台对成员有限制,或是由于内容原因会对…

教你如何清理 Docker 存储驱动的磁盘占用空间

Author:rab 有时候你会发现,你的 Docker 业务容器虽然做了数据持久化,且数据持久化的磁盘空间占用并不大,但是 Docker 的 Overlay2 目录占用却很大。我们知道 Overlay2 是 Docker 的存储驱动,也是 Docker 默认的存储驱…

Vue Router最佳实践,以确保你的Vue.js应用的路由管理清晰、可维护和高效

文章目录 路由结构设计命名路由动态路由参数导航守卫命名视图 (Named Views)懒加载路由错误处理 ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的个人社区…

3D动画制作和渲染需要什么样的硬件规格?

动画是艺术与技术的令人兴奋的融合,为无限的创造力提供了广阔的画布。为了将创意愿景变为现实,动画师需要适合其工艺的强大计算资源。每个动画项目都有不同的硬件需求,无论是制作简单的 2D 动画还是构建复杂的 3D 世界。因此,有抱…

企业架构LNMP学习笔记51

企业案例使用: 主从模式: 缓存集群结构示意图: 去实现Redis的业务分离: 读的请求分配到从服务器上,写的请求分配到主服务器上。 Redis是没有中间件来进行分离的。 是通过业务代码直接来进行读写分离。 准备两台虚…

十七、Webpack搭建本地服务器

一、为什么要搭建本地服务器? 目前我们开发的代码,为了运行需要有两个操作: 操作一:npm run build,编译相关的代码;操作二:通过live server或者直接通过浏览器,打开index.html代码…

Datastage部署与使用

Datastage部署与使用 - 码农教程 https://www.cnblogs.com/lanston/category/739553.html Streamsets定时拉取接口数据同步到HBase集群_streamsets api_webmote的博客-CSDN博客 【SDC】StreamSets实战之路-28-实战篇- 使用StreamSets实时采集指定数据目录文件并写入库Kudu_菜…

【C语言】指针的进阶(二)—— 回调函数的讲解以及qsort函数的使用方式

目录 1、函数指针数组 1.1、函数指针数组是什么? 1.2、函数指针数组的用途:转移表 2、扩展:指向函数指针的数组的指针 3、回调函数 3.1、回调函数介绍 3.2、回调函数的案例:qsort函数 3.2.1、回顾冒泡排序 3.2.1、什么是qso…