Filter过滤器的例子与注解配置

您所在的位置:网站首页 拦截方式怎么设置 Filter过滤器的例子与注解配置

Filter过滤器的例子与注解配置

2023-09-17 04:06| 来源: 网络整理| 查看: 265

概念

作用

创建

创建web项目

定义类实现Servlet接口,实现其抽象方法

配置Filter

原理

注解配置

过滤器放行

Filter的生命周期

Filter的拦截路径

Filter的拦截方式

Filter的过滤器链

 

概念 当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能 作用

一般用于完成通过的操作。比如登录验证,统一编码处理,敏感字符过滤等等

创建 创建web项目

定义类实现Servlet接口,实现其抽象方法

注意实现的是servlet包下的Filter

package com.lingaolu.filter; import javax.servlet.*; import java.io.IOException; /** * @author 林高禄 * @create 2020-08-04-9:42 */ public class Demo1 implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("demo1过滤器进来了......"); } @Override public void destroy() { } } 配置Filter

在项目的web.xml文件 中配置,(原理在下面说)

启动访问index.jsp

控制台输出

为什么index.jsp页面看不到内容,因为被我们的拦截器给拦截,说明我们的拦截器成功了

原理

项目启动的时候会把配置文件web.xml解析,把相关东西装进容器

1、我们访问的是这个地址:http://localhost/filterWeb/index.jsp,找到虚拟目录filterWeb,

2、接着拦截的路径进行匹配/*,也就是配置里的/*内容,会映射找到demo1的内容demo1,

3、接着根据demo1找到标签里的内容,根据demo1对应找到com.lingaolu.filter.Demo1,这样就找到了我们的Demo1类,

4、通过反射创建实例,然后会执行doFilte方法,这是规范,所以要实现Filter类并且实现相关的方法。

注解配置

通过上面我们了解了Filter拦截器的创建与在web.xml的配置,但是配置有点繁琐,所以我们介绍一下注解配置

我们创建新的类Demo2.同样实现Filter接口

可以使用注解配置,然后我们的web.xml不需要写任何配置,也就是这个文件你删掉也可以

接着在我们Demo2类名上加上注解@WebFilter("/*"),其中"/*"是你定义的拦截路径

ctrl+鼠标左键查看一下 WebFilter

 

我们先把xml配置的demo1的拦截器配置给注释掉,免得影响我们的demo2

启动访问index.jsp

 看控制台输出

是不是很方便,比在xml配置方便多了,所以以后我们写使用注解配置,也不需要创建web.xml文件了。

这里我们可以快捷的创建过滤器

模板可以自己定义

过滤器放行

上面我们的例子里面index.jsp页面被拦截了,所以没有出现任何内容,对于满足某些条件的连接,我们还是要放行的,比如登录的用户等等,将来可以做登录验证等等,满足条件的就放行,

如果全部都拦截,那么这个项目就没意义如果全部都放行,那么拦截就可能没什么意义将来做一些判断,满足某些条件的放行 filterChain.doFilter(servletRequest,servletResponse);

启动访问index.jsp,有内容了,是因为我们放行了

控制台输出

Filter的生命周期

Filter过滤器的生命周期

Filter的拦截路径配置

Filter过滤器的拦截路径配置

Filter的拦截方式

Filter的拦截方式配置

Filter的过滤器链

Filter的过滤器链 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3