java web7(黑马)


Filter

简介

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

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

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

快速入门

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

public class FilterDemo implements Filter{

          public void init(FilterConfig filterConfig)

          public void doFilter(ServletRequest reguest

          public void destroy() {}

}

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

@WebFilter("/*")

public class FilterDemo implements Filter {

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

public void doFilter(ServletRequest request,ServletResponse,FilterChain chain)

           System.out.println("filter 被执行了..");

           chain.doFilter(request,response);
}

执行流程

注:

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

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

       执行放行前逻辑--> 放行--> 访问资源--> 执行放行后逻辑

使用细节

1.Filter 拦截路径配置

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

                  @WebFilter("/*")

                  public class FilterDemo

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

>目录拦截:/user/*:访问/user下的所有资源,都会被拦截

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

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

2.过滤器链

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



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


Listener

简介

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

监听器可以监听就是在application,session,request三个对象创建、销毁或者往其中添加修改删除属

性时自动执行代码的功能组件

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

使用

ServletContextListener使用

1.定义类,实现ServletContextListener接口

public class ContextLoaderListener implements ServletContextListener {

          public void contextInitialized(ServletContextEvent sce){}

          public void contextDestroyed(ServletContextEvent sce){}

}

2.在类上添加@WebListener 注解

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

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

相关文章

React-forwardRef-useImperativeHandle

forwardRef 暴露dom节点作用:使用ref暴露DOM节点给父组件案例例如在父组件中想要获取子组件input的输入值,和让input获取焦点父组件import { Button } from antd-mobile import Son from "./components/son"; import { useState,useRef } fro…

Unity 用AI自动开发游戏----Cursor研究(实现一套利用Cursor生成模板快速实现原型的框架)

Unity 快速原型开发框架(基于 Cursor AI) 🧩 框架简介 本框架结合了 AI 编程助手 Cursor 的代码生成能力,构建出一套适用于 Unity 项目的模块化原型开发架构。它旨在极大提升开发效率、降低试错成本,特别适用于快速搭…

D触发器实现2分频verilog及电路

使用D触发器完成2分频电路即通过时钟的上升沿或下降沿到来时进行翻转得到,信号的两个状态所占时间长度相同,因此它的输出时钟的占空比为50%。 D触发器实现2分频的电路图如下所示:通过将D触发器2分频电路级联,可实现输入时钟的2N倍…

UniApp完美对接RuoYi框架开发企业级应用

UniApp完美对接RuoYi框架的完整方案及可开发系统类型,结合企业级实践与开源项目经验整理而成,涵盖技术对接、系统设计及实战案例。 🔧 一、UniApp与RuoYi对接全流程 1. 后端配置(RuoYi-Vue/RuoYi-Cloud) 跨域支持 在网…

【通识】深度学习理论基础

1. 深度学习导论 导论和简介的基础知识和路径。 深度学习的各项涵盖范围:深度学习MLPs,然后是机器学习、逻辑回归,知识基础等等 1)连结神经网络等等:Cybernetics控制论,Connectionism连结主义&#xff0…

sql-labs(11-12)-万能密码登录

sql-labs(11-12)万能密码登录 第十一关: 这关是一个登陆口,也是一个sql注入的漏洞,也就是常说的万能密码。 在输入框账号密码种分别输入 1’ 和1’ 页面会报错。后台使用的单引符号进行的拼接。账号输入1’ or ‘1’‘1 密码输入 1’ or …

MsSql 其他(2)

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨Mysql中的MVCC 一、MVCC 的核心目标与设计背景 MVCC(Multi-Version Concurrency Control,多版本并发控制) 是 InnoDB 存储引擎为实现高并发事务处理而设计的核心机制。其核心目标是:在不牺牲事务隔…

解决本地部署n8n,域名访问为什么一直有connection lost的报错

问题:本地部署的n8n服务用IP访问一切都正常,但是使用域名后报错connection lost思路:首先怀疑是ngnix配置问题或者是docker中的环境问题查看docker logsOrigin header does NOT match the expected origin. (Origin: "nxxx.online:1181&…

传统架构开发VS PREEvision:一场效率与可靠性的降维打击

当前,整车功能数量激增,意味着需要更庞大的整车数据库、更复杂的硬件传感器与执行器网络、更密集的跨系统交互接口以及更难以预测的耦合效应。这样一来,单一功能的微小改动,可能会因复杂的依赖关系而引发意想不到的连锁反应&#…

深度学习基础1

一、张量 张量其实就是数组,不过是在深度学习中是这样的叫法 1.张量的创建 (1)基本创建方式 torch.tensor():根据指定数据创建张量 import torch import numpy as np """创建张量标量""" data to…

力扣网编程274题:H指数之普通解法(中等)

一. 简介 本文记录力扣网上涉及数组,排序方面的编程题:H指数。 二. 力扣网编程274题:H指数(中等) 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研…

iptables防火墙,多IP环境下, 指定某个目的IP地址通过某个本地IP访问,策略路由!

需求在CentOS 7.9中,若需从特定源IP(10.0.0.3)访问目标网段 1.1.1.0/24方法一:策略路由(支持网段)1. 创建自定义路由表# 添加名为custom_table的路由表(ID200) echo "200 custo…

数字孪生技术引领UI前端设计新趋势:数据可视化与交互设计的深度融合

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩!一、引言:数字孪生驱动 UI 设计的范式革新在大数据与三维可视化技术爆发的今天&…

【机器学习笔记 Ⅱ】6 激活函数

激活函数是神经网络的核心组件,其作用远不止“引入非线性”。以下是系统化的解析:1. 核心作用 (1) 引入非线性没有激活函数:多层神经网络等价于单层线性变换(矩阵连乘仍是线性)。加入激活函数:每层通过非线…

AI无标记动捕如何结合VR大空间技术打造沉浸式游戏体验

随着数字科技的迅猛发展,VR大空间技术正逐步成为各行业探索沉浸式体验的重要方向。在VR游戏领域,市场对于高度沉浸式体验的需求日益增长,而传统VR游戏主要依赖手柄和基础体感进行交互,而在VR大空间中,用户可以通过全身…

Qt智能指针

在 Qt 框架中,智能指针用于自动管理对象的生命周期,防止内存泄漏。以下是 Qt 中主要的智能指针及其用法详解:1. QScopedPointer作用:独占所有权,超出作用域时自动释放对象(类似 std::unique_ptr&#xff09…

408第三季part2 - 计算机网络 - 信道利用率

理解t1是发送帧的传输时间t2是确认帧的传输时间中间是传播过程这整个过程就是发送周期任何题目会有以下几种情况题目这里数据帧和确认帧长度是一样的t1 t2然后把t1的传输数据算出来然后传播是0.2sd停止等待 k1确认帧忽略t2 0t1算好后,求数据帧的长度下面是速率&…

Android framework 开发者模式下,如何修改动画过度模式

Android framework 开发者模式下, 如何修改动画过度模式 开发者模式下,动画过度 模式1.0→0.5,按如下方式修改。 开发云 - 一站式云服务平台 .../core/java/com/android/server/wm/WindowManagerService.java | 8 ---- 1 file changed, …

win11安装paddlelabel并创建目标检测项目

创建虚拟环境 conda create -n paddlelabel python3.11.11 conda activate paddlelabel通过以下命令安装 pip install --upgrade paddlelabel输入命令pdlabel运行paddlelabel,发现报错: ModuleNotFoundError: Please install connexion using the flask …

关于Novatek B/G-R/G白平衡色温坐标系再探究

目录 一、准备知识 二、色温坐标系的构建 三、Novatek白平衡色温坐标系的再探究 2.1 直线白点框 2.2双曲线白点框 四、仿真代码 之前写的一篇博文关于联咏(Novatek )白平衡色温坐标系探究-CSDN博客感觉逻辑上有些混乱,这个周末我又好好思考了下,以…