过滤器
2015-09-09 15:57
190 查看
过滤器
Java过滤器能够对目标资源的请求和响应进行截取。其工作方式分为四种:request过滤器、forward过滤器、include过滤器、error过滤器。
请求方式指的是直接在地址栏输入URL、表单提交、超链接、响应重定向的方式。
转发方式,表示可以过滤请求转发方式访问的URL。
包含方式,表示可以过滤动态包含的URL。
错误方式,表示过滤错误页面。
默认情况下,过滤器只过滤请求方式的URL。可以通过配置 dispatcher (filter-mapping)选项过滤其他访问方式。
过滤器常用功能:登录验证、权限验证、日志压缩、数据压缩、图片格式转换、加密处理等功能。
过滤器的创建:
1.过滤器需要实现 javax.servlet.Filter 接口,此接口有三个常用方法:
@Override public void init(FilterConfig filterConfig) throws ServletException { }
@Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { }
这里需要注意过滤器链
@Override public void destroy() { }
2.过滤器的配置,需要在web.xml中配置过滤器使其生效,过滤器的配置与Servlet的配置类似,需要配置<filter>和<filter-mapping>,其中url-pattern是过滤的路径
</filter> <filter> <filter-name>PasswordFilter</filter-name> <filter-class>filter.PasswordFilter</filter-class> </filter> <filter-mapping> <filter-name>PasswordFilter</filter-name> <url-pattern>/welcome.jsp</url-pattern> </filter-mapping>
3.javax.servlet.FilterConfig 接口,封装过滤器的配置信息,如过滤器的名字、初始化参数等。其中的getInitParameter 方法获得过滤器的初始化参数值。其配置文件如下:
<filter> <filter-name>UsernameFilter</filter-name> <filter-class>filter.UsernameFilter</filter-class> <init-param> <param-name>userName</param-name> <param-value>java</param-value> </init-param> </filter> <filter-mapping> <filter-name>UsernameFilter</filter-name> <url-pattern>/welcome.jsp</url-pattern> </filter-mapping>
过滤器的生命周期:
1.过滤器在容器启动的时候创建,调用init方法,这里一般用作初始化,可以获取自身配置参数或者通过ServletContext获取<context-param>中的全局参数。
多过滤器的初始化与其在<filter>和<filter-mapping>出现的先后循序无关。
2.配置好过滤路径后,过滤器会对目标资源的请求和响应进行截取,这里需要注意是否使用过滤器链FilterChain。多过滤器的过滤执行顺序与其在<filter>和<filter-mapping>出现的先后循序有关。
3.当服务器结束时将调用destory方法销毁。
相关文章推荐
- 简单的登录过滤器
- Servlet过滤器
- asp.net 字符串过滤器
- 过滤器
- java 拦截器、过滤器、监听器
- angularjs过滤器
- jQuery通过过滤器获取元素
- angularJS 过滤器
- JQuery 实现简单过滤器
- Java拦截器和过滤器的详解
- django 自带部分过滤器
- Spring MVC过滤器-ShallowEtagHeaderFilter
- Spring MVC过滤器-委派过滤器代理(DelegatingFilterProxy)
- 过滤器、监听器、拦截器的区别
- Android 程式开发:(二)使用Intents链接Activities —— 2.2“过滤器”冲突
- Wireshark图解教程(简介、抓包、过滤器)
- java WEB开发中的过滤器接口Filter
- java web过滤器
- Post与Get提交使用过滤器解决中文乱码问题
- ASP.NET MVC 4 (三) 过滤器