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 }
浙公网安备 33010602011771号