过滤器Filter的基本概述
来源:互联网 发布:拓普康怎样导入数据 编辑:程序博客网 时间:2024/05/23 14:56
过滤器Filter的基本概述
Filter:客户端访问Web资源时,可以进行请求和响应的拦截,
如果条件成立,才可以让客户端访问Web资源
如果条件不成立,不可以让客户端访问Web资源
可用于全站字符编码统一,权限控制,,,
开发Filter简单步骤
1 创建一个JavaWeb工程
2 创建一个普通Java类,去实现Filter接口
public class MyFilterimplements Filter {
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain)throws IOException, ServletException {
System.out.println("aaaaa");
//将请求放行,继续访问index.jsp
chain.doFilter(req,res);
System.out.println("bbbbb");
}
@Override
public void init(FilterConfig arg0)throws ServletException {
}
}
3 在web.xml文件中对Filter进行配置
<!-- Filter基本信息-->
<filter>
<!-- Filter取一个别名-->
<filter-name>MyFilter</filter-name>
<!-- Filter的全名(包名+类名) -->
<filter-class>com.aaa.filter.MyFilter</filter-class>
</filter>
<!-- Filter过滤信息-->
<filter-mapping>
<!-- Filter取一个别名,同上-->
<filter-name>MyFilter</filter-name>
<!-- Filter的过滤路径,如你们访问我的index.jsp时,Filter就会进行过滤或拦截,配个/*所有请求都过滤 -->
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
Filter的生命周期
Filter:
无参构造器->init(),在web服务器启动时执行,且只执行一次
doFilter,当Filter需要过滤web.xml文件中配置的路径时,这时
doFilter会执行,可以执行N次
当Web服务器决定不要Filter了,就将Filter删除,在删除前先执行
destroy方法,且一个Filter只执行一次。
无参构造器,init(),destroy(),只执行一次
doFilter()方法可以执行0次或N次
Filter也是一个单例模式的
四种过滤类型
REQUEST:直接访问to.jsp时,Filter会进行拦截,除此之外,Filter不会进行拦截
这种过滤类型是默认类型,可以在web.xml文件中不用配置
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
FORWARD:只有在转发时,Filter会拦截,除此之外,Filter不会进行拦截
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
<!-- 过滤类型 -->
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
INCLUDE:只有在包含时,Filter会拦截,除此之外,Filter不会进行拦截
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
<!-- 过滤类型 -->
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
ERROR:如有发生了错误信息,且在web.xml文件中声明了,Filter会拦截,
除此之外,Filter不会进行拦截
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
<!-- 过滤类型 -->
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
默认是REQUEST
如果多个Filter同时过滤同一种<url-pattern>的话,我们将这些Filter组成一个集合,
它们都在同一个链条上,这个链条就叫过滤器链。
- 过滤器Filter的基本概述
- 过滤器filter概述
- (Filter处理中文乱码)Filter 过滤器的基本知识点
- filter过滤器 的初步使用,以及他的基本应用
- Jsp乱码问题的基本解决方案,转码 + 过滤器 Filter
- Filter过滤器的使用
- filter过滤器的使用
- filter过滤器的使用
- filter过滤器的使用
- Servlet的Filter过滤器
- Servlet的Filter过滤器
- 过滤器Filter的介绍
- Filter过滤器的使用
- filter 过滤器的总结
- SSH2的filter过滤器
- filter过滤器的写法
- 过滤器filter的使用
- Servlet的过滤器Filter
- 【opencv、机器学习】opencv中的SVM图像分类(二)
- poj 3321 Apple tree 解题报告
- 25个经典的Spring面试问答
- 《算法》笔记-3.1字符表
- Bindable must be on a member in an Observable class.报错解决
- 过滤器Filter的基本概述
- MSB LSB转换处理
- Python print 输出不换行
- 为什么写《Tomcat内核设计剖析》
- 使用SwipeRefreshLayout和RecyclerView实现仿“简书”下拉刷新和上拉加载
- 第十九周OJ-Q198解题方法
- IOS常见问题解决
- 利维坦——(1)
- C#之学习7 类型转换