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

JavaWeb之过滤器(Filter)与监听器(Listener)

前言

过滤器(Filter)

1.什么是过滤器

2.过滤器的语法格式

3.使用场景

3.1.如何防止用户未登录就执行后续操作

3.2.设置编码方式--统一设置编码

3.3.加密解密(密码的加密和解密)

3.4.非法文字筛选

3.5.下载资源的限制

监听器(Listener)

1.什么是监听器

2.监听器分类

3.监听三大域对象的创建与销毁的监听器

4.Servlet域的生命周期

5.HttpSession对象的生命周期

6.HttpSessionListener监听器的主要作用:


前言

         回顾一下学习并对JavaWeb的学习过程中对笔记总结进行记录,同时进行思考过程中的理解加入其中,方便自己进行后续的学习和回顾,其实前面的那些都说不上和网安有关系,但是对于过滤器来说,在网安中,很多网站会通过顾虑器来过滤掉渗透人员发来的存在威胁的请求,当然过滤器也不是万无一失的.

过滤器(Filter)

1.什么是过滤器

        过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理,通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理

2.过滤器的语法格式

2.1.创建一个类实现Filter接口

public class CharSetFilter implements Filter{}

2.2.重写接口中的方法

public void destroy() { //销毁的方法}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {//过滤方法 主要是对request和response进行一些处理,然后交给下一个过滤器或Servlet处理chain.doFilter(req, resp);}
​
public void init(FilterConfig config) throws ServletException {/*初始化方法  接收一个FilterConfig类型的参数 该参数是对Filter的一些配置*/}

2.3.在web.xml文件中配置

   <filter><filter-name>过滤器名称</filter-name><filter-class>过滤器所在的路径</filter-class></filter><filter-mapping><filter-name>过滤器名称</filter-name><url-pattern>需要过滤的资源</url-pattern></filter-mapping>

3.使用场景

3.1.如何防止用户未登录就执行后续操作

String name=(String)session.getAttribute("key");if(name==null){//跳转到登录页面}

3.2.设置编码方式--统一设置编码

设置为utf-8等统一格式编码

3.3.加密解密(密码的加密和解密)

通过base64加密或解密,当然能创建自己公司的加密方式更好

3.4.非法文字筛选

对于存在危协的非法输入字符进行过滤操作

3.5.下载资源的限制

防止未收权或是非法下载资源

过滤器的特点:在servlet之前和之后都会被执行

监听器(Listener)

1.什么是监听器

        监听器就是监听某个域对象的的状态变化的组件 ​ 监听器的相关概念: ​ 事件源:被监听的对象(三个域对象 request、session、servletContext) ​ 监听器:监听事件源对象事件源对象的状态的变化都会触发监听器 ​ 注册监听器:将监听器与事件源进行绑定 ​ 响应行为:监听器监听到事件源的状态变化时所涉及的功能代码(程序员编写代码)

2.监听器分类

        第一维度按照被监听的对象划分:ServletRequest域、HttpSession域、ServletContext域 ​ 第二维度按照监听的内容分:监听域对象的创建与销毁的、监听域对象的属性变化的

3.监听三大域对象的创建与销毁的监听器

监听器的编写步骤(重点):

        编写一个监听器类去实现监听器接口 ​ 覆盖监听器的方法 ​ 需要在web.xml中进行配置—注册

<listener><listener-class>监听器所在的路径</listener-class>                                    </listener>

ServletContextListener

监听ServletContext域的创建与销毁的监听器

4.Servlet域的生命周期

何时创建:服务器启动创建 ​ 何时销毁:服务器关闭销毁

ServletContextListener监听器的主要作用

        初始化的工作:初始化对象、初始化数据(加载数据库驱动、连接池的初始化) ​ 加载一些初始化的配置文件(spring的配置文件) ​ 任务调度(定时器—Timer/TimerTask)

HttpSessionListener

监听Httpsession域的创建和销毁的监听器

5.HttpSession对象的生命周期

        何时创建:第一次调用request.getSession时创建 ​ 何时销毁:服务器关闭销毁、session过期(默认30分钟,修改默认的30分钟是在Tomcat的web.xml,修改当前项目的过期时间是在自己项目的web.xml中)、手动销毁

6.HttpSessionListener监听器的主要作用:

        由于每次访问网站都会默认创建session对象(jsp页面中page指令中的session属性默认为true,即被访问时创建session),可以用于计数网站访问过的人

ServletRequestListener

监听ServletRequest域创建与销毁的监听器

ServletRequest的生命周期 

创建:每一次请求都会创建request

销毁:请求结束

用处不是很多,就不多写了

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

相关文章:

  • video.js的请求头问题
  • leetcode 1235
  • Activiti7 开发快速入门【2024版】
  • vue3组件插槽
  • Cloudera简介和安装部署
  • Spring Boot集成Ldap快速入门Demo
  • 杨辉三角的打印
  • 贪吃蛇(下)游戏的实现
  • 偏微分方程算法之椭圆型方程差分格式编程示例
  • PCIe协议之-TLP路由基础
  • inline内联函数-虚函数(virtual)可以是内联函数(inline)吗?
  • Spring Boot | Spring Boot 消息管理 ( 消息中间件 ) 、RabbitMQ“消息中间件“
  • 二层交换机与路由器连通上网实验
  • AJAX知识点(前后端交互技术)
  • 用wordpress为外贸进出口公司搭建多语言国际站
  • 雷军-2022.8小米创业思考-6-互联网七字诀之口碑:口碑即定位,超预期才有口碑,品牌建设
  • 欧盟MDR法规对医疗器械网络安全都有哪些要求?
  • Linux —— 信号初识
  • webpack进阶 -- 自定义Plugin,Loader封装打包优化
  • 《Decoupled Optimisation for Long-Tailed Visual Recognition》阅读笔记
  • Springboot+Vue项目-基于Java+MySQL的毕业就业信息管理系统(附源码+演示视频+LW)
  • 条件平差——以水准网平差为例 (python详细过程版)
  • mysql -- WITH RECURSIVE 语法
  • 洗地机什么品牌好?洗地机怎么选?618洗地机选购指南
  • nginx负载均衡配置
  • HarmonyOS NEXT星河版之美团外卖点餐功能实战(中)
  • CTF-Web Exploitation(持续更新)
  • 图书管理系统c语言
  • 森林消防—高扬程水泵,高效、稳定、可靠!/恒峰智慧科技
  • 光伏设备制造5G智能工厂数字孪生可视化平台,推进行业数字化转型