我们已经了解了filter的基本用法,还有一些细节配置在特殊情况下起作用。

在servlet-2.3中,Filter会过滤一切请求,包括服务器内部使用forward转发请求和<%@ include file="/index.jsp"%>的情况。

到了servlet-2.4中Filter默认下只拦截外部提交的请求,forward和include这些内部转发都不会被过滤,但是有时候我们需要forward的时候也用到Filter,这样就需要如下配置。

<filter><filter-name>TestFilter</filtername><filter-class>anni.TestFilter</filter-class>
</filter>
<filter-mapping><filter-name>TestFilter</filtername><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher><dispatcher>INCLUDE</dispatcher><dispatcher>EXCEPTION</dispatcher>
</filter-mapping>

这样TestFilter就会过滤所有状态下的请求。如果我们没有进行设置,默认使用的就是REQUEST。而EXCEPTION是在isErrorPage="true"的情况下出现的,这个用处不多,看一下即可。

这里FORWARD是解决request.getDispatcher("index.jsp").forward(request, response);无法触发Filter的关键,配置上这个以后再进行forward的时候就可以触发过滤器了。

Filter还有一个有趣的用法,在filter-mapping中我们可以直接指定servlet-mapping,让过滤器只处理一个定义在web.xml中的servlet。

<filter-mapping><filter-name>TestFilter</filter-name><servlet-name>TestServlet</servlet-name>
</filter-mapping><servlet><servlet-name>TestServlet</servlet-name><servlet-class>anni.TestServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>TestServlet</servlet-name><url-pattern>/TestServlet</url-pattern>
</servlet-mapping>

直接指定servlet-name,TestFilter便会引用TestServlet配置的url-pattern,在某些filter与servlet绑定的情况下不失为一个好办法。

转载于:https://www.cnblogs.com/wenjieyatou/p/6112283.html

filter的详细配置相关推荐

  1. SSM整合Shiro进行登陆认证和授权详细配置

    本篇博客将进行详细介绍Shiro+Spring+SpringMVC+Mybatis+数据库整合并进行登陆认证和授权详细配置. SSM的整合可以参考:https://blog.csdn.net/a745 ...

  2. 日志框架之Logback的使用与详细配置

    日志框架之Logback的使用与详细配置 Logback概述 配置文件结构 日志级别 Logback的基本使用 与Maven项目集成 与Spring Boot集成 logback配置 Logger配置 ...

  3. 【安装篇】- 基于 VMWARE Oracle Linux7.9 安装 Oracle19c RAC 详细配置方案

    作者 | yanwei 来源 | 墨天轮 https://www.modb.pro/db/95684 大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 Linux7.9 安装 ...

  4. OSSEC主要功能及原理+详细配置+日志文件分析

    作者:谭丙章 E-mail:feifengwind@163.com OSSEC主要功能及原理 OSSEC属于基于主机和应用的入侵检测系统,通过监视企业重要服务器和各种应用以避免企业资源被攻击.滥用和误 ...

  5. Nginx负载均衡的详细配置及使用案例

    Nginx负载均衡的详细配置及使用案例详解 感谢看过这一些列博文和评论的小伙伴, 我把自己所看到的学到的拿到这里来分享是想和大家一起学习进步, 想听听园友给出的意见, 也是对自己学习过程的一个总结.  ...

  6. IntelliJ IDEA详细配置

    2019独角兽企业重金招聘Python工程师标准>>> IntelliJ IDEA详细配置 关闭Intellij IDEA自动更新 在File->Settings->Ap ...

  7. apache mysql 连接数 winnt,APACHE PHP MYSQL PHPMYADMIN超详细配置教程

    Apache+PHP+MySQL+phpMyAdmin超详细配置教程 安装之前需要下载 Apache2.0.59 PHP4.4.4Win32 MySQL4.12 phpMyAdmin2.9.1.1rc ...

  8. Window VNC远程控制LINUX:VNC详细配置介绍

    Window VNC远程控制LINUX:VNC详细配置介绍 //---------------------------------------vnc linux下的详细配置 1.VNC的启动/停止/重 ...

  9. (原创)OpenStack服务如何使用Keystone(三)---详细配置Keystone中间件

    (一)Keystone端的操作 (二)如何在OpenStack服务上部署Keystone中间件 (三)详细配置keystonemiddleware 前文我们介绍了如何部署Keystone中间件以及中间 ...

  10. 游戏型计算机的配置表,爽玩游戏型详细配置列表及推荐理由

    爽玩游戏型详细配置列表及推荐理由: 配置清单 配件 品牌型号 数量 单价 CPU AMD羿龙II X4 955/盒装 1 ¥950 散热系统 极冻酷凌Igloo 5610+ 1 ¥99 内存 威刚2G ...

最新文章

  1. DbVisualizer Personal 7.0 数据库连接工具免安装版本获取,直接解压即可使用!
  2. 为什么读写文件要有缓冲区?为什么要有输入输出缓冲区?
  3. 十大经典排序算法之插入排序及其二分优化
  4. 基于Element-plus封装配置化表单组件(组件的v-model实现)
  5. 关于地图制图大赛的8点说明,附地图学习资源
  6. 7个等级 容灾等级_猫奴的10个等级 你的奴性有多高?
  7. opencv java教程_详解OpenCV For Java环境搭建与功能演示
  8. linux 内核 触摸屏,7. Linux - 触摸屏(电阻屏)驱动程序实现
  9. ps 中左边的工具栏消失了,解决方法
  10. js监听鼠标的滚轮滚动事件
  11. Wed Dec 20 2019 00:00:00 GMT+0800 (中国标准时间) 时间转换
  12. 各种排序算法耗时比较
  13. 嵌入式:ARM相关开发工具概述
  14. 5G网络中的缩略语与简写
  15. GTX1650Super和GTX1060哪个好?
  16. 华硕 ZenFone 国产新机盘点
  17. Android 获取手机中微信聊天记录
  18. 【FPGA入门教程】(二)FPGA学习路线及开发流程
  19. 细胞穿透肽八精氨酸、 H2N-RRRRRRRR-OH、 148796-86-5
  20. GPU大百科全书 最终章:33毫秒的咏叹调

热门文章

  1. hibernate中session 与JDBC中 connection分析
  2. 使用docker安装easy-mock
  3. golang cover协程异常
  4. C++11 实现线程池
  5. 26. iterator优先于const_iterator、reverse_iterator以及const_reverse_iterator
  6. html 在线图片压缩,JS HTML图片显示Canvas 压缩功能
  7. mysql8 docker镜像源_Docker 搭建 MySQL 8版本
  8. php讲一个正整数前补0,php 数字补零的两种的简单示例
  9. python房价预测_Python实战:使用线性回归预测房价
  10. vue 封装dialog_GitHub - 1014156094/vue-mobile-dialog: Vue移动端基础组件 - 对话框