栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWeb过滤器(Filter)详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaWeb过滤器(Filter)详解

Filter:过滤器 1.概念:

web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能
过滤器的作用:一般用于完成通用的操作,如登录验证、统一编码处理、敏感字符过滤等等。

2.Filter接口源码
public interface Filter {
    default void init(FilterConfig filterConfig) throws ServletException {
     }
    void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) throws IOException, ServletException;
    default void destroy() {
    }
  }  

注意:通过查看源码我们发现,只有doFilter方法没有实现,我们可以只重写doFilter方法,其他两个方法可以不重写

过滤器的生命周期方法:

(1)init:在服务器启动后,会创建Filter对象,然后调用init方法。只执行一次,用于加载资源
(2)doFilter:每一次请求被拦截资源时,会执行。执行多次
(3)destroy:在服务器关闭后,Filter对象被销毁。如果服务器是正常关闭,则会执行destroy方法,只执行一次。用于释放资源

3.Filter的快速入门
@WebFilter("/*")//注解配置
public class FilterDemo implements Filter {    
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("对request进行过滤");
        filterChain.doFilter(servletRequest,servletResponse); //放行
        System.out.println("对response进行过滤");
    }
}
4.Filter配置拦截路径

(1)web.xml配置

 
    写filter的名字
    写filter的全类名路径


    写filter的名字
    写拦截路径

(2)注解配置:查看源码得以下配置项
filterName:该filter的名字
initParams:初始化参数
displayName:filter显示名称
servletNames:指定对哪些servlet进行过滤
asyncSupported:是否支持异步模式
urlPatterns:指定拦截路径
value:指定拦截路径
注意:urlPatterns和value是一样的。urlPatterns和value只能配置一个,不能两个都配置,两个都配置就会报错。
实例:

@WebFilter(filterName = "loginCheckFilter",urlPatterns = "/*")
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002945.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号