当前位置: 首页 > news >正文

web实操10——Filter和Listener

Filter介绍

web三大组件:servlet,filter, lisenter。
在这里插入图片描述
在这里插入图片描述

Filter快速入门

步骤

在这里插入图片描述
拦截路径:你访问什么样的资源,过滤器会生效,包括静态资源,动态资源。
配置:两种配置方式

代码实现

代码:
实现Filter接口并实现方法:
在这里插入图片描述
在这里插入图片描述

注解方式配置:

/*:访问所有资源之前都会被过滤器拦下来;
/demo.jsp:只有访问demo.jsp才会被拦截器拦截;
在这里插入图片描述
访问index.jsp时:会被过滤器拦截
在这里插入图片描述
访问页面并没有显示index.jsp…内容,但是过滤器被执行了:
在这里插入图片描述
在这里插入图片描述

执行过滤器后,要考虑是否放行:

这段代码称为放行:
在这里插入图片描述
重启服务器,再访问:
页面有显示:
在这里插入图片描述
过滤器也被执行了:
在这里插入图片描述

web.xml配置方式

在这里插入图片描述
在这里插入图片描述

@WebFilter()注解源码

在这里插入图片描述

urlPatterns默认值空,value也代表了urlPatterns的配置,我们写value=就可以了,如果只有一个值,value可以省略掉。

执行流程

演示代码

在这里插入图片描述
在这里插入图片描述
访问结果:
在这里插入图片描述
在这里插入图片描述

执行流程:

过滤器放行之后,请求资源,资源访问之后,再走过滤器放行下面的代码

过滤器有request对象,req里面放的都是一些请求参数,那么请求参数我们就可以对req进行增强,也可以把请求消息数据拿出来做一些操作后,再进行放行的操作;
放行后执行对应的资源servlet,jsp这些,我们可能会在servlet里面设置resopnse对象,然后回到过滤器里面,就可以继续对resopnse对象进行增强。

生命周期

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

过滤器拦截路径配置

在这里插入图片描述
在这里插入图片描述

过滤器拦截方式配置

资源以哪种方式被访问到:
可以通过浏览器直接发送请求;
服务器内部跳转,转发的方式。

过滤器可以配置拦截的方式是哪种,比如配置拦截只请求资源,只有浏览器直接发送请求资源过滤器才会被执行;如果是转发,过滤器就不会被执行。
在这里插入图片描述
在这里插入图片描述
点进去:
是一个枚举:
在这里插入图片描述

代码演示:
在这里插入图片描述

过滤器链

可以一个项目里配置多个过滤器,而且这些过滤器可以同时生效。
在这里插入图片描述

执行(拦截)顺序

一条路上两个土匪,就一条路,去经过,回来经过顺序。
在这里插入图片描述

代码演示

demo6
在这里插入图片描述
demo7
在这里插入图片描述
访问:
在这里插入图片描述
访问结果:符合预期
在这里插入图片描述

过滤器的先后顺序

每个字符分别比较,a<b,a先执行。
在这里插入图片描述
demo6和demo17,因为前面都一样,到6和1,1值小,所以17先执行

案例一——登陆验证

在这里插入图片描述

代理模式

动态代理

案例二——过滤敏感词汇

在这里插入图片描述
在这里插入图片描述

Listener

在这里插入图片描述
java web中有很多监听器对象,这里只学习ServletContextListener.

ServletContextListener

是一个接口,没有对应的实现类,所以需要我们自己写对应的实现类。

api:

在这里插入图片描述

步骤

以后写监听器的机会很少…
在这里插入图片描述

代码演示

http://www.lryc.cn/news/518245.html

相关文章:

  • Spring中,出现依赖不完全注入后才执行逻辑
  • 如何选择 Dockerfile 的放置方式
  • 用 HTML5 Canvas 和 JavaScript 实现炫酷跨年烟花特效
  • cat命令详解
  • el-table 自定义表头颜色
  • window.print()预览时表格显示不全
  • React Router底层核心原理详解
  • linux MySQL 实时性能监控工具
  • ModuleNotFoundError: No module named ‘setuptools_rust‘ 解决方案
  • 基于Spring Boot的海滨体育馆管理系统的设计与实现
  • 【机器视觉】OpenCV 图像轮廓(查找/绘制轮廓、轮廓面积/周长、多边形逼近与凸包、外接矩形)
  • 深入浅出:React 前端框架解析与应用
  • 【网络安全设备系列】7、流量监控设备
  • qemu解析qcow文件
  • 免费网站源码下载指南:如何安全获取并降低开发成本
  • 【Ubuntu】如何设置 Ubuntu 自动每日更新:轻松保持系统安全
  • 江科大STM32入门——UART通信笔记总结
  • github gitbook写书
  • 探秘MetaGPT:革新软件开发的多智能体框架(22/30)
  • 【优选算法】Binary-Blade:二分查找的算法刃(下)
  • Improving Language Understanding by Generative Pre-Training GPT-1详细讲解
  • 分治算法——优选算法
  • EtherCAT转Modbus网关与TwinCAT3的连接及配置详述
  • Apache Hadoop YARN框架概述
  • 三甲医院等级评审八维数据分析应用(八)--数据治理的持续改进与反馈机制篇
  • XML通过HTTP POST 请求发送到指定的 API 地址,进行数据回传
  • 科大讯飞前端面试题及参考答案 (下)
  • 【理论】测试框架体系TDD、BDD、ATDD、DDT介绍
  • 如何进行全脑思维(左脑,右脑,全脑)
  • 领域驱动设计 2