过滤器filter
前言,过滤器 - Filter
◆ 过滤器(Filter)是J2EE Servlet模块下的组件
◆ Filter的作用是对URL进行统一的拦截处理
◆ Filter通常用于应用程序层面进行全局处理
一、导入servlet包
1、选择file–project structure
2、点击Libraries–“+”–java
3、找到servlet-api工具包所在的位置
并选择
4、点击2次ok
5、此时再使用接口Filter,就会看到servlet
二、filter的简单使用
1、重写方法
使用filter接口后,会出现红色的报错提醒“要导入方法”
这是因为使用filter必须对某些方法重写
选择OK即可
init是初始化
destroy是销毁
dofilter则是filter的核心,执行过滤的代码
2、dofilter方法的介绍
包含着3个参数
请求、响应、filter链
servletRequest
servletResponse
filterChain
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//最简单的dofilter语句
System.out.println("过滤器已生效");
filterChain.doFilter(servletRequest,servletResponse);
}
注意:在方法的结尾必须加上
filterChain.doFilter(servletRequest,servletResponse); }
意思是将请求和响应的内容随着过滤链,依次向后传递。
如果没有这句话,则无法被正常处理
3、配置形式:在web.xml中配置servlet标签
1)filter标签说明哪个类是过滤器,并在应用启动时自动加载
2)filter-mapping标签用于说明过滤器对URL应用的范围
- filter-name与上面filter中的名字对应
- url-pattern 说明过滤器作用的URL范围, /* 代表对所有URL进行过滤
这两部分标签写好后,过滤器就生效了
<filter>
<filter-name>filter名字</filter-name>
<filter-class>所在的包的位置</filter-class>
</filter>
<filter-mapping>
<filter-name>filter名字</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
注解形式:在类中直接设定范围和名字
如果觉得在web.xml中配置比较麻烦,也可以采用注解的形式放在在使用接口的类中。
@WebFilter (filterName=“filter名”,urlPatterns=“/*”)
这个语句等同于上面两个标签的作用。
配置和注解的区别在于
1、配置形式维护性更好,适合应用全局过滤
2、注解形式开发体验更好,但是不能用于全局过滤,适用于小型项目敏捷开发
温馨提示💓
如果在运用时遇到问题,可以直接关注并私信我,发送报错问题,我看到后会第一时间回复~
本文含有隐藏内容,请 开通VIP 后查看