2023年8月1日发(作者:)

什么是过滤器?什么时候使⽤过滤器?如何使⽤过滤器?过滤器的原理?⼀、什么是过滤器?含义:⽤于拦截数据源和⽬的数据之间的消息,并且过滤⼆者之间的传递的数据 举例:⽐如过滤某⼀个格式的⽂件,然后对这个⽂件做⼀些修改

⼆、什么时候要⽤到过滤器? 1、 认证过滤:对⽤户的请求进⾏统⼀认证2、登陆和审核过滤:对⽤户的访问请求进⾏记录和审核3、图像转换过滤4、数据压缩过滤 当然还有:1、 过滤字符编码2、 进⾏⽹站访问⼈数的统计

三、如何使⽤过滤器?1、⾸先需要在中进⾏配置

Afilter Afilter 过滤器类所在的全路径 Afilter /* 2、然后直接编写⼀个实现过滤器接⼝的类,就是⼀个过滤器 例如:如下是统计某⼀个⽹站被访问的次数的代码package ;import ption;import ;import ;import Chain;import Config;import tContext;import tException;import tRequest;import tResponse;public class Afilter implements Filter { FilterConfig fConfig; public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //获得与天地同寿的application ServletContext app = vletContext(); //取出application中的map Map map = (Map) ribute("map"); //获取访问者的ip String ip = oteAddr(); //判断这个ip是否曾经来过 if(nsKey(ip)){//来过,次数加1 Integer count = (ip); count+=1; (ip, count); }else{//没来过,次数赋值为1 (ip, 1); } //map再次存到application中 ribute("map", map); er(request, response);//放⾏ }

public void init(FilterConfig fConfig) throws ServletException { g=fConfig; }}理解:实现了Filter接⼝的类,需要实现三个⽅法,分别是init、doFilter、destroy1、init⽅法:⽤于过滤器的初始化2、doFilter⽅法:⽤于对请求进⾏过滤处理3、destory⽅法:⽤于销毁⽅法⽤于释放资源其中,doFilter⽅法有三个参数,分别是:ServletRequest request, ServletResponse response, FilterChain chain

四、这三个参数分别有什么⽤?1、request对象⽤于获取请求2、response对象⽤于在调⽤er(request, response);时传⼊3、chain对象就是⽤来调⽤doFilter⽅法的。FilterChain接⼝中只有⼀个⽅法,就是doFilter(request, response),⽤于将过滤后的请求传递给下⼀个过滤器,如果当前过滤器就是最后⼀个过滤器,那么就把请求传递给⽬标资源。

五、如何读取配置⽂件中的初始化参数? FilterConfig接⼝中定义的getInitParameter⽅法,可以⽤于读取配置⽂件,在init⽅法中使⽤public void init(FilterConfig fConfig) throws ServletException { String encoding = tParameter("encoding"); }

六、过滤器是如何运⾏的?前⽂提到的在中配置好了拦截的请求路径,访问该路径,然后请求被发送到对应的过滤器进⾏处理

2023年8月1日发(作者:)

什么是过滤器?什么时候使⽤过滤器?如何使⽤过滤器?过滤器的原理?⼀、什么是过滤器?含义:⽤于拦截数据源和⽬的数据之间的消息,并且过滤⼆者之间的传递的数据 举例:⽐如过滤某⼀个格式的⽂件,然后对这个⽂件做⼀些修改

⼆、什么时候要⽤到过滤器? 1、 认证过滤:对⽤户的请求进⾏统⼀认证2、登陆和审核过滤:对⽤户的访问请求进⾏记录和审核3、图像转换过滤4、数据压缩过滤 当然还有:1、 过滤字符编码2、 进⾏⽹站访问⼈数的统计

三、如何使⽤过滤器?1、⾸先需要在中进⾏配置

Afilter Afilter 过滤器类所在的全路径 Afilter /* 2、然后直接编写⼀个实现过滤器接⼝的类,就是⼀个过滤器 例如:如下是统计某⼀个⽹站被访问的次数的代码package ;import ption;import ;import ;import Chain;import Config;import tContext;import tException;import tRequest;import tResponse;public class Afilter implements Filter { FilterConfig fConfig; public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //获得与天地同寿的application ServletContext app = vletContext(); //取出application中的map Map map = (Map) ribute("map"); //获取访问者的ip String ip = oteAddr(); //判断这个ip是否曾经来过 if(nsKey(ip)){//来过,次数加1 Integer count = (ip); count+=1; (ip, count); }else{//没来过,次数赋值为1 (ip, 1); } //map再次存到application中 ribute("map", map); er(request, response);//放⾏ }

public void init(FilterConfig fConfig) throws ServletException { g=fConfig; }}理解:实现了Filter接⼝的类,需要实现三个⽅法,分别是init、doFilter、destroy1、init⽅法:⽤于过滤器的初始化2、doFilter⽅法:⽤于对请求进⾏过滤处理3、destory⽅法:⽤于销毁⽅法⽤于释放资源其中,doFilter⽅法有三个参数,分别是:ServletRequest request, ServletResponse response, FilterChain chain

四、这三个参数分别有什么⽤?1、request对象⽤于获取请求2、response对象⽤于在调⽤er(request, response);时传⼊3、chain对象就是⽤来调⽤doFilter⽅法的。FilterChain接⼝中只有⼀个⽅法,就是doFilter(request, response),⽤于将过滤后的请求传递给下⼀个过滤器,如果当前过滤器就是最后⼀个过滤器,那么就把请求传递给⽬标资源。

五、如何读取配置⽂件中的初始化参数? FilterConfig接⼝中定义的getInitParameter⽅法,可以⽤于读取配置⽂件,在init⽅法中使⽤public void init(FilterConfig fConfig) throws ServletException { String encoding = tParameter("encoding"); }

六、过滤器是如何运⾏的?前⽂提到的在中配置好了拦截的请求路径,访问该路径,然后请求被发送到对应的过滤器进⾏处理