李子栗子梨

导航

Jsp添加Filert 过滤器

一,Filter简介

  

      Filter也称过滤器,Web开发人员通过Filter技术,在文件直接之间传递HttpRequest和Http Response之间加入过滤,并且可以修改其中的, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

二,如何实现Filter接口,实现Filter接口,接口中有三个方法,init()初始化值,doFilter();进行拦截 destory()进行销毁

首先要在web.xml中配置实现了Filter接口的类

 

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="3.0"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
 6 <filter>
 7     <filter-name>filter01</filter-name>
 8     <filter-class>filter.filter01</filter-class>
 9     <init-param>
10         <param-name>text</param-name>
11         <param-value>UTF-8</param-value>
12     </init-param>
13 </filter>
14 <filter-mapping>
15     <filter-name>filter01</filter-name>
16     <url-pattern>/*</url-pattern>
17 </filter-mapping>
18 </web-app>

配置类似于Servlet的配置,其中url-mapping用来标记用来拦截的文件。

 1 package filter;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.Filter;
 6 import javax.servlet.FilterChain;
 7 import javax.servlet.FilterConfig;
 8 import javax.servlet.ServletException;
 9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11 
12 /**
13  * @author: Jeson
14  * @date:2017年8月10日 下午8:55:07
15  * @version :
16  * 
17  */
18 public class filter01  implements Filter{
19     private String key = null;
20     private String value = null;
21     @Override
22     public void destroy() {
23         System.out.println("destory....");
24     }
25 
26     @Override
27     public void doFilter(ServletRequest req, ServletResponse resp,
28             FilterChain chain) throws IOException, ServletException {
29         System.out.println("doFilter....");
30         System.out.println(value);
31         //req.setCharacterEncoding(value);
32         //resp.setCharacterEncoding(value);
33         chain.doFilter(req, resp);
34     }
35 
36     @Override
37     public void init(FilterConfig fc) throws ServletException {
38         //key = fc.getFilterName();
39         value = fc.getInitParameter("text");
40             System.out.println("init....");
41     }
42     
43 }

 

posted on 2017-08-10 21:49  李子栗子梨  阅读(364)  评论(0)    收藏  举报