Filter过滤器,和Listener监听器

Filter是运行web项目中的一个组件,当请求过来时,过滤器会先运行里面的代码,然后再把请求分发给真正要请求的资源。
Filter过滤器
过滤器:过滤器可以过滤一个或者多个Servlet的请求,请求先经过过滤器,再经过Servlet
响应从Servlet发出,会经过过滤器再响应结果给浏览器。

过滤器的作用:
过滤器中定义多个Servlet的共性代码,避免代码冗余。

过滤器的开发步骤:

  1. 编码 implements Filter
    在这里插入图片描述
    2.在web.xml里面对过滤器进行配置。
    在这里插入图片描述
    URL-pattern设置过滤路径,/*是过滤所有。
    3.测试使用。之前怎么请求servlet,现在还怎么请求,请求会自动运行过滤器里面的代码。

使用filter的注意事项:

1.过滤器可以过滤任意的资源。资源包括servlet,html,图片,css,jsp,js。
2.配置web.xml的时候
/过滤所有的请求
/LoginAction过滤请求路径是LoignAction的资源
/person/过滤请求路径中包含/person的请求。
3.一个filter-mapping标签里面可以配置多个url-pattern,多个url-pattern都对应执行该filter。
4.当一个项目中有多个过滤器时,那么多个过滤器的执行顺序跟配置的先后顺序有关。

Filter的典型应用案例:

1. 设置字符编解码集
在这里插入图片描述
在这里插入图片描述
2. 强制登录
在这里插入图片描述
在这里插入图片描述

Listener(监听器)

监听器:负责监听特殊事件发生的对象,在监听到特殊事件发生之后,执行一段Java代码。
ServletContextListener: 监听ServletContext对象的创建和销毁
监听网站的启动和卸载
HttpSessionListener: 监听session对象的创建和销毁
监听器
在这里插入图片描述

生命周期:

Filter对象的生命周期:在web应用启动时创建
在过滤请求时调用
在web网站关闭时销毁
Servlet对象的生命周期:在一次访问时创建
特殊情况:
在这里插入图片描述
在接受浏览器访问时使用
在web网站关闭时销毁

猜你喜欢

转载自blog.csdn.net/MacWx/article/details/92413575