JavaWeb三大组件——过滤器的运行机制理解
来源:互联网 发布:js轮播图片自适应代码 编辑:程序博客网 时间:2024/06/05 05:11
文章前言:本文侧重实用和理解。
一.过滤器的概念。
- 编写一个类实现Filter接口了。
- 配置Filter
<!-- 配置过滤器 -->
<filter>
<!-- 过滤器名称 -->
<filter-name>FilterDemo1</filter-name>
<!-- 过滤器的类的全路径 -->
<filter-
class
>cn.itcast.filter.FilterDemo1</filter-
class
>
</filter>
<!-- 配置过滤器映射 -->
<filter-mapping>
<!-- 过滤器名称 -->
<filter-name>FilterDemo1</filter-name>
<!-- 过滤器路径 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
<init-param>元素用于为过滤器指定初始化参数,它的子元素<param-name>指定参数的名字,<param-value>指定参数的值。在过滤器中,可以使用FilterConfig接口对象来访问初始化参数
<url-pattern>标签的配置:
* 完全路径匹配 :以 / 开始的. 如 /aa /bb /aa/bb...
* 目录匹配 :以 / 开始的. 以 * 结束.如 /* /aa/* /aa/bb/*
* 扩展名匹配 :不能以 / 开始的. 如 *.jsp *.do *.action
配置Filter之后,在服务器调用Servlet之前,会自动寻找与自身路径相匹配的过滤器路径,匹配之后,则执行过滤器。无匹配,则直接调用Servlet。
四.过滤器链的概念。
通常客户端对服务器请求之后,服务器调用Servlet之前会执行一组过滤器(多个过滤器),那么这组过滤器就称为一条过滤器链。
每个过滤器实现某个特定的功能,一个过滤器检测多个Servlet。(匹配几个,检测几个)。
一组过滤器中的执行顺序与<filter-mapping>的配置顺序呢有关。
当第一个Filter的doFilter方法被调用时,web服务器会创建一个代表Filter链的FilterChain对象传递给该方法。在doFilter方法中,开发人员如果调用了FilterChain对象的doFilter方法,则web服务器会检查FilterChain对象中是否还有filter,如果有,则调用第2个filter,如果没有,则调用目标资源。
- Filter里面的doFilter是Filter实例的doFilter(request,response)方法。
- 这条责任链的运行次序依次是:代码1,代码3,代码5,Servelt、web资源..,代码6,代码4,代码2;就是因为它的头尾相呼应的机制,所以才叫它责任链。
- 在Filter中,如果你不调用chain.doFilter(request,response)方法,就表示此次请求被拒绝,返回目标路径。
七.获取web.xml文件中Filter的配置信息。
方法的调用对象:
init(FilterConfig filterConfig)方法中的filterConifg对象.
方法:
getFilterName():获得过滤器名称
getInitParameter(String name):获得过滤器的初始化参数
getInitParameterNames():获得过滤器的所有初始化参数的名称
getServletContext():获得ServletContext对象
文章转自:http://www.cnblogs.com/bzx888/p/4878971.html
- JavaWeb三大组件——过滤器的运行机制理解
- JavaWeb笔记——三大组件之过滤器
- javaweb三大组件--过滤器
- JAVAWEB三大组件之过滤器
- JavaWeb过滤器的运行机制理解及过滤器.监听器.拦截器-原理&区别
- Log4j三大组件运行机制
- JavaWeb三大组件
- JavaWeb三大组件
- javaweb三大组件
- javaWeb的三大组件之一Servlet
- JavaWeb笔记——三大组件之监听器
- JavaWeb的学习总结(三)— 过滤器(Filter)
- javaweb三大组件---监听器
- javaweb 三大组件之Severlet
- JavaWeb三大组件之Listener
- JavaWeb三大组件之Filter
- javaweb三大组件之Filter(一)
- javaweb三大组件之Servlet
- dede标签:arclist标签使用大全
- 面试题总结
- 基于Dragonboard 410c的总线控制之SPI(一)
- LinkedList源码解析
- Linux下的lds链接脚本基础
- JavaWeb三大组件——过滤器的运行机制理解
- SSH整合配置步骤
- 实现表格隔行/点击换色效果
- 第七周项目3
- for编写九九乘法表
- 计算单词个数
- 数字金融监管
- R学习:用rvest包爬取imdb网站电影信息
- 浮动之名人名言页面