Filter过滤器

Filter

Filter过滤器的简单说明

1.过滤器是一个驻留在服务器端的web组件,可以截取客户端和服务器端之间的请求与响应的信息

2.过滤器Filter是对客户端访问资源的时候的过滤,对符合条件的请求放行,不符合条件的不放行。

3.常用用法:权限验证访问资源、设置资源编码。

Filter的执行顺序

1. 当web服务器接收到一个请求后,将会判断此请求路径是否匹配到一个过滤器的配置,如果匹配到,则服务器把请求交给相关的过滤器处理

2. 在执行Filter的过程中,Web服务器会判断是否有另一个关联当前请求的过滤器,如果有就交给下一个处理

**3.通过doFilter() 调用客户端需要访问的web资源。在返回给客户端的过程中,首先同样经过关联的过滤器,只是顺序与请求到来时相反
**

Eclipse创建简单的Filter过滤器

我们创建先创建一个Maven的JavaWeb工程,我之前的文章有讲过
然后我们右击项目,点击创建一个Filter过滤器
在这里插入图片描述

填写一些信息
在这里插入图片描述

Initialization parameters中配置的是Filter的一些初始化参数,可以不配置;
Filter mappings中的URL Pattern,是请求这个地址的时候,会进过Filter过滤器,从而进行一些判断,我们可以通过右边的添加按钮或者编辑按钮来添加或者修改需要过滤的URL请求
在这里插入图片描述
创建完成后,我们可以看到TestFilter实现Filter接口中的三个方法

/** 当Filter过滤器销毁的时候调用 */
public void destroy() {
		System.out.println("destroy TestFilter")
}
/** doFilter方法主要是对过滤的请求和响应进行处理, FilterChain chain 参数作用是如果有下一个过滤器的话,就将当前的请求和响应发送给下一个过滤器进行处理 */
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
	System.out.println("doFilter TestFilter")
	chain.doFilter(request, response);
}
/** 初始化Filter过滤器的时候调用 */
public void init(FilterConfig fConfig) throws ServletException {
	System.out.println("init TestFilter")
}

接下来我们测试一下各个方法,在方法中输出一些信息
当我们启动Tomcat容器的时候,Filter过滤器初始化
在这里插入图片描述
我们访问上面给的路径加上过滤器的路径的时候,会调用doFilter方法,说明请求进过了过滤器

http://localhost:8099/Filter3/TestFilter

在这里插入图片描述
在访问的时候,我们发现报404错误,(我想是因为我们没有创建一个Servlet容器来存放资源,请求没有找到这个资源地址)

Filter过滤不到指定路径

我们使用注解来过滤请求的,默认是容器的路径,当我们从一个Servlet发送一个请求转发的时候,我们设置的路径是过滤不到这个请求的,我们需要使用注解指定一下

// 这个路径是过滤不到请求转发的路径的
@WebFilter("/TestFilter")
// 我们需要设置过滤的类型
@WebFilter(dispatcherTypes = {DispatcherType.FORWARD }
					, urlPatterns = { "/success.html" })

勾选我们需要的选项在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

在下BUG,有李了

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值