filter&listener

filter&listener,第1张

filter&listener

什么是filter

Filter:一个实现了特殊接口(Filter)的Java类. 实现对请求资源(jsp,servlet,html,)的过滤的功能.

过滤器是一个运行在服务器的程序, 优先于请求资源(Servlet或者jsp,html)之前执行. 过滤器是javaweb技术中最为实用的技术.

3.2过滤器的作用

对目标资源(Servlet,jsp,html)进行过滤.

应用场景:登录权限检查,解决网站乱码,过滤敏感字符 ...

2.1配置文件方式

  1. 创建一个过滤器类,实现Filter接口

  2. 在web.xml中配置Filter

2.2注解方式

  1. 创建一个过滤器类,实现Filter接口

  2. 在Filter类上面添加@WebFilter("拦截路径")

回顾一下Serlvet生命周期:

init:初始化 默认在来了第一次请求时初始化,可以配置启动项loadOnStartup在服务器启动提前加载

service:服务 当来了请求时,提供服务

destroy:销毁 服务器正常关闭或者项目从服务器移除

Servlet和Filter生命周期的区别:

Filter是在服务器启动时进行初始化,而Servlet是默认来了第一次请求时进行初始化。

Filter是在来了请求并且请求资源刚好是要拦截的资源,就会执行过滤。

 * 过滤器拦截路径
 *     1.完全路径匹配:以/开头 /不能丢  eg:/demo01  表示只过滤/demo01的请求资源
 *          @WebFilter("/demo01")
 *     2.目录匹配:以/开头 以*结尾     eg:/user/*   表示过滤user下的所有请求资源
 *          @WebFilter("/user/*")
 *     3.扩展名匹配:以*开头          eg:*.do      表示过滤所有以.do结尾的请求资源
 *          @WebFilter("*.do")
 *     4.全局匹配:/*  表示过滤所有请求资源

  • 创建一个java类,实现Filter接口

  • 在类上添加注解@WebFilter("拦截路径")

  • 注意:过滤器一定要放行!!!

  • Filter生命周期描述

  • 服务器启动的时候, 会调用init()方法进行初始化 【调用一次】

  • 当每次请求路径和过滤器的拦截路径一致时就执行一次doFilter()方法,进行过滤 【调用多次】

  • 服务器正常关闭或者项目从服务器移除, 调用destory()方法进行销毁 【调用一次】

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4828569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-10
下一篇 2022-11-10

发表评论

登录后才能评论

评论列表(0条)

保存