javaweb05-过滤器和监听器

1 过滤器

1、简介:

它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等 一些高级功能。其工作原理如图所示:
在这里插入图片描述
创建过滤器需要实现Filter接口:

public interface Filter {    

void init(FilterConfig var1) throws ServletException;​    

void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) throws IOException, ServletException;​    

void destroy();

}

2、过滤器生命周期

1、实例化:服务器启动时,通过构造方法实例化,只实例一次,单实例
2、初始化:服务器启动时,调用init方法初始化,
3、过滤:请求的路径在过滤器的过滤范围的话,执行
4、销毁:服务器关闭时销毁

3、创建过滤器

设置编码方式
在这里插入图片描述

基于xml配置:
在这里插入图片描述
有四种可能的属性:
1、REQUEST只要发起的操作是一次HTTP请求,比如请求某个URL、发起了一个GET请求、表单提交方式为POST的POST请求、表单提交方式为GET的GET请求。一次重定向则前后相当于发起了两次请求,这些情况下有几次请求就会走几次指定过滤器。
2、FOWARD只有当当前页面是通过请求转发转发过来的情形时,才会走指定的过滤器
3、INCLUDE只要是通过<jsp:include page="xxx.jsp" />,嵌入进来的页面,每嵌入的一个页面,都会走一次指定的过滤器。
4、ERROR
假如web.xml里面配置了<error-page></error-page>

<error-page>    
<error-code>500</error-code>    
<location>/500.jsp</location>
</error-page>

4、登录验证

使用过滤器来验证用户是否登录系统,如果没有登录就跳转到登录页面。登录验证过滤器:思路:判断session是否有对应的数据,如果有呢,过滤器链正常执行,如果没有,跳转到登录页面
在这里插入图片描述
@WebFilter 用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器。该注解具有下表给出的一些常用属性 ( 以下所有属性均为可选属性,但是 value、urlPatterns、servletNames 三者必需至少包含一个,且 value 和 urlPatterns 不能共存,如果同时指定,通常忽略 value 的取值 )
在这里插入图片描述

2 监听器

1、作用:

监听你的web应用,监听许多信息的初始化,销毁,增加,修改,删除值等Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理

2、监听器的分类:

在一个web应用程序的整个运行周期内,web容器会创建和销毁三个重要的对象,ServletContext,HttpSession,ServletRequest
按监听的对象划分,可以分为
ServletContext对象监听器
HttpSession对象监听器
ServletRequest对象监听器 ​

按监听的事件划分
对象自身的创建和销毁的监听器
对象中属性的创建和消除的监听器
session中的某个对象的状态变化的监听器

原文:https://shimo.im/docs/52VXYn3fJtErv5KC/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杵意

谢谢金主打赏呀!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值