Filter的用法之注解
一、filter的概念及功能
Filter就像用滤纸来过滤杂物一样,它也叫过滤器。过滤器是Servlet2.3之后新增加的功能,它可以更变一个request请求也可以修改一个response。它可以在request到达Servlet之前预处理request,他也可以在response离开Servlet时处理response,总之,可以叫他Servlet链。一般作用在一下方面:
1.在request到达Servlet之前:
1)对用户的请求统一的认证;
2)编码的转换;
3)对用户发过来的数据进行替换,也可以进行加密行为等。
2.在response离开Servlet之后:
1)修改response的头及数据等。
二、代码实现
首先要实现 javax.servlet.Filter接口以及三个方法:
1. init(FilterConfig filterConfig)-->初始化过滤器多用于获取初始化参数。
2.doFilter(ServletRequest servletRequest , ServletResponse servletResponse , FilterChain chain )-->过 滤处理的相关操作都在这里完成,需要调chain.doFilter(servletRequest ,servletResponse )方法,把请求继续向 后传递,可以是对下一个过滤器doFilter方法的调用,或者相应的web组件。所以Filter采用了职责链设计模式。
3.destroy() 过滤器销毁 Servlet容器在销毁过滤器实例之前该方法得到调用,以释放占用的资源。
最后编码的实现:
对用户的请求统一的认证,获取用户名,如果用户名为空,则调到登录界面,否则放行。
@webFilter里相关属性的介绍:
属性名 类型 描述
filterName String 指定过滤器的name属性,等价于<filter-name>
value String[] 该属性等价于urlPatterns属性,两者不能同时使用
urlPatterns String[] 指定过滤器的URL匹配模式,等价于<url-pattern>
servletNames String[] 指定过滤器将应用到哪些Servlet。取值是@WebServlet的name属性或者<servlet-name>的值
dispatcherTypes DispatcherType 指定过滤器的转发模式,取值有:ASYNC ERROR FORWARD INCLUDE REQUEST
initParams WebInitParam[] 指定一组过滤器初始化参数,等价于<init-Param>
asyncSupported boolean 指定过滤器是否支持异步操作模式,等价于<async-supported>
description String 该过滤器的描述信息,等价于<description>
displayName String 该过滤器的显示名,通常配合工具使用,等价于<display-name>
Filter的用法之注解的更多相关文章
- springboot中filter的用法
一.在spring的应用中我们存在两种过滤的用法,一种是拦截器.另外一种当然是过滤器.我们这里介绍过滤器在springboot的用法,在springmvc中的用法基本上一样,只是配置上面有点区别. 二 ...
- 兼容ie8 rgba()用法 滤镜filter的用法
原文 http://blog.csdn.net/westernranger/article/details/40836861 今天遇到了一个问题,要在一个页面中设置一个半透明的白色div.这个貌似不 ...
- Spring MVC中各个filter的用法
转载:http://blog.csdn.net/qyp1314/article/details/42023725 Spring MVC中各个filter的用法 2014-12-19 09:08 105 ...
- python基础===map, reduce, filter的用法
filter的用法: 这还是一个操作表list的内嵌函数'filter' 需要一个函数与一个list它用这个函数来决定哪个项应该被放入过滤结果队列中遍历list中的每一个值,输入到这个函数中如果这个函 ...
- JS内置对象-Array之forEach()、map()、every()、some()、filter()的用法
简述forEach().map().every().some()和filter()的用法 在文章开头,先问大家一个问题: 在Javascript中,如何处理数组中的每一项数据? 有人可能会说,这还不简 ...
- logstash filter grok 用法
在elk+filebeat都安装好,且明白了基本流程后,主要的就是写logstash的filter了,以此来解析特定格式的日志 logstash的filter是用插件实现的,grok是其中一个,用来解 ...
- 高阶函数 map,reduce, filter的用法
1. map 用法 def fun_C(x): """求平方""" return x ** 2 result = map(fun_C, my ...
- reduce,map,filter 的用法
# filter用法 (对每一个数据进行筛选,满足条件的就保留)# 1,filter(功能函数,容器类型数据)# 2,过滤出来是一个地址,用list,或tuple进行包装# 3,过滤出来的是原容器类型 ...
- js中filter过滤用法总结
定义和用法 filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素. 注意: filter() 不会对空数组进行检测. 注意: filter() 不会改变原始数组 ...
随机推荐
- swift webView 提出这样的要求你能忍吗?
提出的要求是:webView字体显示大小合适,里面会有大的图片,大的表格,不能按比例缩放,可以左右滑动查看. 首先,如果要满足上面的要求需要将webView放入scrollView中显示 scroll ...
- Python环境下NIPIR(ICTCLAS2014)中文分词系统使用攻略
一.安装 官方链接:http://pynlpir.readthedocs.org/en/latest/installation.html 官方网页中介绍了几种安装方法,大家根据个人需要,自行参考!我采 ...
- Java核心知识点学习----多线程 倒计时记数器CountDownLatch和数据交换的Exchanger
本文将要介绍的内容都是Java5中的新特性,一个是倒计时记数器---CountDownLatch,另一个是用于线程间数据交换的Exchanger. 一.CountDownLatch 1.什么是Coun ...
- 【笔记】Python 学习Tips
Lambda Python中给予的定义是用来创建匿名的简单函数(单行).基本的应用场景就是替换简单函数的定义. >>> fl = lambda x : x % 3 >>& ...
- Sql 常见面试题
SQL面试题(1) create table testtable1(id int IDENTITY,department varchar(12) ) select * from testtable1i ...
- C#签名 NX90
1.在VS中添加D:\Siemens\NX90\ \NXSigningResource.res文件,右击文件属性,将资源变为 嵌入式资源,即生成方式 2.编译生成exe文件或者dll文件,例如:xxx ...
- C++通过模板实现多态
#include <iostream> using namespace std; template<typename T> class Phone { public: void ...
- css3之转换
1.2D转换 2.3D转换 transform-style属性(设置三维/二维效果) 值: flat表示子元素不保留3D设置(默认) preserve-3d表示子元素保留3D设置 transform属 ...
- js-事件、正则表达式
AddEventListener()之中有三个参数,分别是(1)事件的名称(注:不要加on,例:click才是点击事件的名称)(2)需要执行的function(){} (3)布尔类型(false表示的 ...
- Lucene.Net+盘古分词器(详细介绍)(转)
出处:http://www.cnblogs.com/magicchaiy/archive/2013/06/07/LuceneNet%E7%9B%98%E5%8F%A4%E5%88%86%E8%AF%8 ...