龙空技术网

过滤器Filter学习笔记

心有玲曦遇见你 124

前言:

眼前大家对“js敏感词过滤器”大约比较讲究,同学们都想要分析一些“js敏感词过滤器”的相关资讯。那么小编在网络上网罗了一些有关“js敏感词过滤器””的相关资讯,希望各位老铁们能喜欢,小伙伴们快快来了解一下吧!

我们可以通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能

Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter

通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。

简单说,就是可以实现web容器对某资源的访问前截获进行相关的处理,还可以在某资源向web容器返回响应前进行截获进行处理。

实现步骤:

1:创建一个类实现Filter接口

2:实现do Filter()方法:

3:在web.xml中进行配置

4:浏览器进行访问

代码:

	@WebFilter("/*")//访问所有资源之前,都会执行该过滤器			public class FilterDemo1 implements Filter {			    @Override			    public void init(FilterConfig filterConfig) throws ServletException {						    }						    @Override			    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {			        System.out.println("filterDemo1被执行了....");						        //放行			        filterChain.doFilter(servletRequest,servletResponse);						    }						    @Override			    public void destroy() {						    }			}

3. 过滤器细节:

1. web.xml配置

 <filter> <filter-name>demo1</filter-name> <filter-class>cn.itcast.web.filter.FilterDemo1</filter-class> </filter> <filter-mapping> <filter-name>demo1</filter-name> <!-- 拦截路径 --> <url-pattern>/*</url-pattern> </filter-mapping>

2. 过滤器执行流程

1. 执行过滤器

2. 执行放行后的资源

3. 回来执行过滤器放行代码下边的代码

3. 过滤器生命周期方法

1. init:在服务器启动后,会创建Filter对象,然后调用init方法。只执行一次。用于加载资源

2. doFilter:每一次请求被拦截资源时,会执行。执行多次

3. destroy:在服务器关闭后,Filter对象被销毁。如果服务器是正常关闭,则会执行destroy方法。只执行一次。用于释放资源

4. 过滤器配置详解

* 拦截路径配置:

1. 具体资源路径: /index.jsp 只有访问index.jsp资源时,过滤器才会被执行

2. 拦截目录: /user/* 访问/user下的所有资源时,过滤器都会被执行

3. 后缀名拦截: *.jsp 访问所有后缀名为jsp资源时,过滤器都会被执行

4. 拦截所有资源:/* 访问所有资源时,过滤器都会被执行

* 拦截方式配置:资源被访问的方式

* 注解配置:

* 设置dispatcherTypes属性

1. REQUEST:默认值。浏览器直接请求资源

2. FORWARD:转发访问资源

3. INCLUDE:包含访问资源

4. ERROR:错误跳转资源

5. ASYNC:异步访问资源

* web.xml配置

* 设置<dispatcher></dispatcher>标签即可

5. 过滤器链(配置多个过滤器)

* 执行顺序:如果有两个过滤器:过滤器1和过滤器2

1. 过滤器1

2. 过滤器2

3. 资源执行

4. 过滤器2

5. 过滤器1

* 过滤器先后顺序问题:

1. 注解配置:按照类名的字符串比较规则比较,值小的先执行 * 如: AFilter 和 BFilter,AFilter就先执行了。

2. web.xml配置: <filter-mapping>谁定义在上边,谁先执行

标签: #js敏感词过滤器