JavaWeb过滤器
来源:互联网 发布:ug五轴联动编程 编辑:程序博客网 时间:2024/05/16 11:09
过滤器
- Filter称为过滤器,它是一个接口。web开发人员可以通过过滤器对web资源进行管理。例如可以对访问的jsp、静态的html以及servlet进行拦截。
- 功能:URL级别权限访问。过滤敏感词汇,压缩响应的信息。
创建一个过滤器
implements Filter接口,并注册过滤器
注册过滤器
<filter> <filter-name>TestFilter</filter-name> <filter-class>com.lovo.filter.TestFilter</filter-class> <init-param> <!--设置不需要过滤的 --> <param-name>NotFilterList</param-name> <param-value>/login.jsp,/LoginServlet</param-value> </init-param> </filter>
映射URL地址
<filter-mapping> <filter-name>TestFilter</filter-name> <!--过滤条件 /* 表示所有的都要进入这个过滤器--> <url-pattern>/*</url-pattern> <!-- 这里面写入的也是过滤条件。默认过滤 request请求,如果写的是FORWARD或INCLUDE则表示对应的内部派发要经过该过滤器--> <dispatcher>REQUEST</dispatcher> <filter-mapping>
在doFilter()方法中处理请求,是否要能到达目标资源---通过chain.doFilter(req,resp)控制。
FilterChain对象时Filter里面非常重要的一个对象,doFilter()和Filter接口里面的是不同的方法。
流程
- 所有符合过滤器的请求,进来会执行一段代码。
- 判断是否进入目标资源,进入目标资源处理业务。
- 返回过滤器再执行一段代码。
生命周期
- 容器在启动的过程中读取web.xml,找到过滤器配置创建实例
- 调用init方法做初始化
- 满足过滤器的请求都经过doFilter方法
- 容器关闭,销毁Filter
过滤器链
- 在web开发中,我们可以开发多个过滤器,这些过滤器组合起来就成为过滤器链。
- 过滤器里面的内容执行顺序和url配置没关系,和注册的顺序有关系,先注册的先进入。第一个过滤器执行过程中,调用chain.doFilter()方法会去找当前目标还有没有经过其他过滤器,没有就直接进入目标,如果目标程序还有第二个过滤器,那就进入第二个过滤器,嵌套执行。
<dispatcher>REQUEST</dispatcher>
- 这个标签表示指定过滤器所拦截的资源被servlet容器所调用的方式。
- REQUEST(默认):当前用户直接访问过滤器,web容器会调用过滤器
- INCLUDE:目标资源是通过requestDispater.include访问的,过滤器就会被调用,否则过滤器不会被调用
- FORWARD:目标是通过requestDispater.forward访问的,过滤器就会被调用,否则过滤器不会被调用
0 0
- JavaWeb 过滤器
- javaweb - 过滤器
- javaweb过滤器
- JavaWeb 过滤器
- JavaWeb-过滤器
- javaweb 过滤器
- javaweb过滤器
- JavaWeb过滤器
- javaweb过滤器
- JavaWeb过滤器
- JavaWeb过滤器
- JavaWeb过滤器
- javaWeb过滤器
- JavaWeb过滤器
- JavaWeb过滤器
- Javaweb过滤器
- JavaWeb过滤器
- JavaWeb开发过滤器Filter
- 利用Linux信号SIGUSR1调试嵌入式程序
- Linux命令行操作
- ubuntu安装jdk8
- Android之图片压缩和Uri与String类型的路径转换,获取图片,文件大小的工具类
- 关于反射的运行时机
- JavaWeb过滤器
- 群辉tomcat安装目录,群辉修改tomcat设置
- 12-10 的周末时光
- 148. Sort List leetcode list
- if用法及实例分析
- centos7防火墙
- 卸载系统重要文件,导致无法进入系统
- 离线式echarts模拟百度迁徙的实现
- 在idea中简单的搭建一个springboot工程