java过滤器不管用_java中过滤器不起作用的原因
在应用中,有时候会用到过滤器,也有时候命名写好了配好了过滤器信息,可是过滤器就是不起作用。
导致过滤器不起作用的原因,目前我碰到的有两种:一个是过滤器的顺序问题,一个是过滤文件类型。
先说说过滤器的顺序问题。
在项目里面,要是用SSH框架的话,web.xml文件中除了自己写的过滤器以外,还会有struts、Hibernate等的过滤器,这样子经常就会出现题目当中说的问题(尤其是过滤器过滤的是同一种类型,如.actioon)。
如:原来的过滤器顺序是这样子的:
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
*.action
UserFilter
com.wjl.MyFilter
UserFilter
*.action
这个时候的过滤器可能会不起作用,因为请求的时候先走了struts的过滤器,自己写的过滤器就不执行了。但是要是换个顺序,也就是如下的顺序,让请求先走自己的过滤器再走struts的过滤器,这样子自己的过滤器就起作用了。
UserFilter
com.wjl.MyFilter
UserFilter
*.action
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
*.action
再说说过滤类型导致的不起作用。
在web.xml配置文件里面,很多地方是可以连续使用多个文件的,用逗号隔开就好,如:
配置spring配置文件的路径
contextConfigLocation
/WEB-INF/classes/daosql.xml,/WEB-INF/classes/pageContorl.xml,/WEB-INF/classes/base.xml
这个时候的就可以放好多参数,用逗号隔开就好,而且每个都起作用。
由上面那种类似的例子就容易联想到在过滤器里面使用同样的方法配置多个过滤类型,如:
UserFilter
*.action,*.jsp
但实际上这样子是不对的。这样配置后,无论是action还是jsp都不会走过滤器。还是得把他们拆开才能用。拆开之后两者类型都走过滤器。
UserFilter
com.wjl.MyFilter
UserFilter
*.action
UserFilter
*.jsp
java过滤器不管用_java中过滤器不起作用的原因相关推荐
- java的环境变量classpath中加点号 ‘.’ 的作用
java的环境变量classpath中加点号 '.' 的作用 "."表示当前目录,就是编译或者执行程序时,你的.class文件所在的目录: 当找.class文件时,先去" ...
- Java程序员在面试中不通过的五个原因
如今正是毕业生找工作的高峰期,那么在面试Java程序员的过程中会出现什么问题呢?有哪些问题是初入职场的Java程序员在面试中最容易犯的呢?下面,我总结了Java程序员在面试中不通过的五个原因,作为大家 ...
- html设置margin无效,CSS中margin不起作用的原因及解决方法
margin是一个属性,指定元素和元素之间的间距,但不能为内联元素指定边距,本篇文章将给大家介绍关于CSS中margin不起作用的原因及解决方法. margin不起作用的原因 对于初学者来说,可能会经 ...
- java 过滤js事件_java中的过滤器与监听器
过滤器: Filter本身并不生成请求和响应对象,只是提供过滤功能. Filter能够在Servlet被调用之前检查Request对象,并修改Request Header和Request内容:在Ser ...
- java可以多重继承吗_Java中的多重继承与组合vs继承
java可以多重继承吗 有时我写了几篇有关Java继承,接口和组成的文章. 在这篇文章中,我们将研究多重继承,然后了解组成优于继承的好处. Java中的多重继承 多重继承是创建具有多个超类的单个类的能 ...
- java中有没有栈_Java中堆和栈有什么区别
stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里.栈(stack):是一个先进后出的数据结构,通常用于保存方法(函 ...
- java访问控制符_java中访问控制符的作用
展开全部 java中访问控制符的作用是说明被声明的内容(类.属性.方法和构造方法)的访问权636f70793231313335323631343130323136353331333337393466限 ...
- java 基本类型 引用_java中 引用类型 和 基本类型 有何区别?
栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运行时数据区,类的(对象从中分配空间.这些对象通过new.newa ...
- java构造器详解_Java中关于构造器的使用详解
这篇文章主要介绍了Java构造器使用方法及注意事项的相关资料,这里举例说明如何使用构造器及需要注意的地方,需要的朋友可以参考下 Java构造器使用方法及注意事项 超类的构造器在子类的构造器运行之前运行 ...
- java final内存机制_Java中的内存处理机制和final、static、final static总结
装载自:http://blog.csdn.net/wqthaha/article/details/20923579 Java程序运行在JVM上,可以把JVM理解成Java程序和操作系统之间的桥梁,JV ...
最新文章
- 使用rancher对Docker容器服务升级
- 利用单片机快速实现家庭智能控制平台
- Linux系列-Red Hat5平台下的LAMP网站服务搭建(四)
- table 标签的 rules 属性
- 根据端口查找是那个程序正在占用
- [burp][CTF]burp intruder爆破出现 Payload set 1: Invalid number settings的解决办法
- ansible执行mysql命令,Ansible常用命令(ad-hoc 命令)
- 2019年最值得关注的5个人工智能趋势!
- android 静态编译链接,Android NDK:使用预编译的静态库链接
- python+flask编写一个简单的登录接口例子
- Python学习笔记总结
- Laravel Request 和 Laravel Input 常用操作方法
- 树莓派 之 动态DNS(DNSPod)
- 深圳租房你必须知道的问题有哪些?
- 两个很重要的极限和夹逼准则
- 2023-2029年中国博物馆旅游行业市场经营管理及发展前景规划报告
- sd卡突然所有文件都无法删除,在手机中会提示‘无法删除’,并且无法格式化,并且无法写入文件,
- Word里面如何在两个字正中间加入点
- MySQL安装 ,版本mysql-5.7.19-winx64
- vue 校验表单报错:model is required for validate to wor