Filter 整理

已有 50 次阅读2017-6-12 12:51 | web服务器, 过滤器, 图片, 技术, 开发

Filter 整理
Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
 
Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。简单说,就是可以实现web容器对某资源的访问前截获进行相关的处理,还可以在某资源向web容器返回响应前进行截获进行处理。
package com.test.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class Demo1Filter implements Filter {
private FilterConfig filterConfig;

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("Demo1过滤前");
System.out.println(filterConfig.getInitParameter("param1"));
chain.doFilter(request, response);//放行。让其走到下个链或目标资源中
System.out.println("Demo1过滤后");
}

public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("初始化了");
this.filterConfig = filterConfig;
}

public void destroy() {
System.out.println("销毁了");
}
}


2>在web.xml中进行配置
<filter>
  <filter-name>Demo1Filter</filter-name>
  <filter-class>com.itheima.filter.Demo1Filter</filter-class>
 
 </filter>
 <filter-mapping>
  <filter-name>Demo1Filter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>



Filter 生命周期
和Servlet一样Filter的创建和销毁也是由WEB服务器负责。
实例化:服务器启动的时候
初始化:实例化之后会马上被初始化
Ps:只执行一次
过滤:访问资源的时候,路径与过滤器拦截的路径匹配,doFilter 方法
销毁:服务器关闭,或者重新加载。
Filter 的整个生命周期过程的执行,均由 Web 服务器负责管理。即 Filter 从创建到销毁


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

Copyright;  ©2015-2017  知了堂学习社区  Powered by  知了堂Edu!     ( 蜀ICP备16011312号-1 )