1 过滤器
1、简介:2、过滤器生命周期3、创建过滤器4、登录验证 2 监听器
1、作用:2、监听器的分类:
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、销毁:服务器关闭时销毁
设置编码方式
基于xml配置:
有四种可能的属性:
1、REQUEST只要发起的操作是一次HTTP请求,比如请求某个URL、发起了一个GET请求、表单提交方式为POST的POST请求、表单提交方式为GET的GET请求。一次重定向则前后相当于发起了两次请求,这些情况下有几次请求就会走几次指定过滤器。
2、FOWARD只有当当前页面是通过请求转发转发过来的情形时,才会走指定的过滤器
3、INCLUDE只要是通过
4、ERROR
假如web.xml里面配置了
4、登录验证500 /500.jsp
使用过滤器来验证用户是否登录系统,如果没有登录就跳转到登录页面。登录验证过滤器:思路:判断session是否有对应的数据,如果有呢,过滤器链正常执行,如果没有,跳转到登录页面
@WebFilter 用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器。该注解具有下表给出的一些常用属性 ( 以下所有属性均为可选属性,但是 value、urlPatterns、servletNames 三者必需至少包含一个,且 value 和 urlPatterns 不能共存,如果同时指定,通常忽略 value 的取值 )
监听你的web应用,监听许多信息的初始化,销毁,增加,修改,删除值等Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理
2、监听器的分类:在一个web应用程序的整个运行周期内,web容器会创建和销毁三个重要的对象,ServletContext,HttpSession,ServletRequest
按监听的对象划分,可以分为
ServletContext对象监听器
HttpSession对象监听器
ServletRequest对象监听器
按监听的事件划分
对象自身的创建和销毁的监听器
对象中属性的创建和消除的监听器
session中的某个对象的状态变化的监听器
原文:https://shimo.im/docs/52VXYn3fJtErv5KC/



