Java_Filter

前言

  最近学习了有关Filter的内容,小咸儿将在此总结下来,分享给大家。有什么不足之处,还希望各位能够在评论区中留言,一起讨论。


叙述

宝图

在这里插入图片描述

是什么?

  Filter的基本功能是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理的前后实现一些特殊的功能。

  简单来说呢,可以将Filter比喻成门房。对发送到Servlet的请求进行拦截,对响应也进行拦截。

过滤过程

在这里插入图片描述

怎么做?
  • Filter是实现了Filter接口的Java类
  • Filter需要在web.xml文件中进行配置和映射
<!--注册Filter-->
<filter>
	<filter-name>helloFilter</filter-name>
	<filter-class>com.firstProject.HelloFilter</filter-class>
</filter>

<!--映射Filter-->
<filter-mapping>
	<filter-name>helloFilter</filter-name>
	<url-pattern>/test.jsp</url-pattern>
</filter-mapping>

注意: 当有多个Filter时,Filter的拦截顺序和映射中配置的顺序有关,靠前的先被调用


方法

init方法
public void init(FilterConfig filterConfig)
{
	// 方法体
}

  类似于Servlet的init方法。在创建Filter对象的时候立即被调用,且只被调用一次。相当于对当前的Filter进行初始化操作。

doFilter方法
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
{
	// 方法体
}

  这个方法则在每次拦截时都会调用,而且其中的FilterChain,也就是Filter链,有多个Filter组成。

注意: FilterChain 的使用

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
{
	System.out.println("每次都会调用的方法");
	chain.doFilter(request, response);
}

  在Filter链中的doFilter方法,起到放行的作用。它将请求给Filter链中的下一个Filter,若当前的Filter是Filter链中的最后一个Filter,则把请求给到目标Servlet或者JSP。

在这里插入图片描述

destroy方法

  释放当前Filter所占用的资源的方法,在Filter被销毁之前被调用,且只被调用一次。

结语

  对于Filter还有待于加深自己的理解,希望能够和您在评论区中交流。

感谢您的阅读~~

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值