Filter的简介
filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理
快速入门
步骤:
1、编写一个过滤器的类实现Filter接口
2、实现接口中尚未实现的方法(doFilter方法)
3、在web.xml中进行配置(主要是配置要对哪些资源进行过滤)
QuickFilter类实现Filter接口
@Override
public void destroy() {
// TODO Auto-generated method stub
}
/*
*request:内部封装是客户端http的请求
*response:代表响应
*FilterChain:过滤器对象
*/
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("quick1 running...");
chain.doFilter(request,response);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
web.xml配置
<filter>
<filter-name>QuickFilter1</filter-name>
<filter-class>com.kule.web.filter.QuickFilter1</filter-class>
</filter>
<filter-mapping>
<filter-name>QuickFilter1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
图解filter的访问流程
Filter的API详解
filter生命周期及与生命周期相关的知识
Filter接口有三个方法,与生命相关
init(Filterconfig):代表filter对象初始化方法(服务器启动创建)
doFilter(request,response,chain)
destroy():服务器关闭时执行
配置文件:
<url-pattern>/servlet1</url-pattern>
<url-pattern>/abc/*</url-pattern>
<url-pattern>*.jsp</url-pattern>
<url-pattern>/*</url-pattern>
//<servlet-name>Servlet1</servlet-name>
filter-mapping配置
dispatcher访问的方式
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>EEOR</dispatcher>
总结Filter的作用:
1、公共代码的提取
2、可以对request和response中的方法进行增强(装饰者模式/动态代理)
3、进行权限控制