本文共 1164 字,大约阅读时间需要 3 分钟。
最近学习了有关Filter的内容,小咸儿将在此总结下来,分享给大家。有什么不足之处,还希望各位能够在评论区中留言,一起讨论。
Filter的基本功能是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理的前后实现一些特殊的功能。
简单来说呢,可以将Filter比喻成门房。对发送到Servlet的请求进行拦截,对响应也进行拦截。
helloFilter com.firstProject.HelloFilter helloFilter /test.jsp
注意: 当有多个Filter时,Filter的拦截顺序和映射中配置的顺序有关,靠前的先被调用
public void init(FilterConfig filterConfig){ // 方法体}
类似于Servlet的init方法。在创建Filter对象的时候立即被调用,且只被调用一次。相当于对当前的Filter进行初始化操作。
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。
释放当前Filter所占用的资源的方法,在Filter被销毁之前被调用,且只被调用一次。
对于Filter还有待于加深自己的理解,希望能够和您在评论区中交流。
感谢您的阅读~~
转载地址:http://zjerb.baihongyu.com/