Filter的入门
来源:互联网 发布:zepto.js swipeleft 编辑:程序博客网 时间:2024/06/08 18:53
什么是Filter?
Filter也称过滤器,或拦截器。能够拦截资源并进行操作,达到对web资源进行管理的目的。Filter的作用是什么?
web开发人员通过Filter技术,实现用户在访问某个资源之前,对访问的请求和响应进行拦截,简单地说就是实现web容器对某资源访问前进行截获,然后进行处理,还可以实现某资源对web容器响应返回前获取拦截,进行处理。这些资源包括以下东西:JSP、Servlet、HTML、静态图片文件等。Filter的应用地方有哪些?
实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等。如何创建一个Filter?
(1)创建一个类,实现javax.servlet.Filter接口。
(2)重写接口中的方法。方法有如下:public void init(FilterConfig config)
web容器调用此方法,说明过滤器正在被加载到web容器中。容器在实例化的时候执行该方法一次。容器为这个方法传递一个config对象,该对象包含了与Filter相关的配置信息。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
每当请求和响应经过过滤链的时候,容器都要执行一次该方法。过滤器的一个实例可以服务于多个请求,要注意线程同步问题,尽量不用或少用实例化变量。这个方法是真正对资源进行拦截和操作的方法。
public void destroy()
容器调用destroy()将过滤器从服务器中删除,如果该过滤器使用了其他资源,需要在这个方法中释放这些资源。在web.xml中进行映射配置
配置例子:<filter>
<filter-name>demoFilter</filter-name>//设置别名,和下文别名需相同
<filter-class>com.filter.DemoFilter</filter-class>//设置过滤器的位置
<init-param>//如果不需要初始化参数,则就不需要配置
<param-name>encode</param-name>//初始化参数名称
<param-value>UTF-8</param-value>//该初始化参数的值
</init-param>
</filter>
<filter-mapping>
<filter-name>demoFilter</filter-name>//设置别名,需和上文别名相同
<url-pattern>*.jsp</url-pattern>//设置拦截资源的路径或类型
</filter-mapping>Filter中的FilterConfig的作用
<1>.获取初始化参数
public String getInitParameter(String name);获取名称为name的的参数
public Enumeration getInitParameterNames();返回枚举数组,数组中包含所有的初始化参数。<2>.获取Filter的名称
public String getFilterName();返回该Filter的名称<3>.获取servlet的配置对象
public ServletContext getServletContext();返回一个servlet的配置信息对象。Filter链的存在
FilterChain.doFilter(request,response);它代表的是向下执行,如果下一个还是过滤器,那么访问这个过滤器,如果当前是整个Filter链中的最后一个过滤器,那么访问该资源。
Filter链的顺序是由web.xml中的的配置顺序决定的,优先级由上到下递减。8.的路径配置方法
<1>.完全匹配
路径必须以“/”开始,如/day01/demo1.jsp;表示所有经过day01项目下的demo1的jsp页面。
<2>.*通配符匹配
(1)目录匹配,如格式为:/demo/或/,必须以”/”开始
(2)扩展名匹配,格式为:.do或.jpg,不能以”/”开始,且必须以*.XXX结束。
- Filter的入门
- Filter入门
- Filter 入门
- Filter入门
- filter 入门
- Servlet入门_TWO之Filter的学习
- Servlet Filter(过滤器)、Filter是如何实现拦截的、Filter开发入门
- servlet过滤器Filter入门
- ISAPI Filter开发入门
- filter编程入门
- [转]filter编程入门
- filter编程入门
- servlet - Filter过滤器入门
- filter 编程入门
- 过滤器 filter-----入门学习
- 1 filter入门
- Filter开发入门
- Filter入门Demo
- Codeforces Round #411(A. Fake NP; B. 3-palindrome; C. Find Amir; D.Minimum number of steps)
- 存储过程调试
- Accept-Encoding学习
- #411 Div.2 D. Minimum number of steps
- 各种内部排序算法的比较和选择
- Filter的入门
- 日志篇:使用Qt開發屬於自己的簡單雲日記(1)
- Vue中状态管理——Vuex
- 常见ORA错误(一)
- 博览网_C++_第二周_Rectangle类的初步实现(一)(修订)之拷贝构造和拷贝赋值规范写法
- SQL与HQL的区别
- Hibernate生成表结构两种方式
- junit异常(No tests found matching)
- Mybatis 的常见面试题