如何在所有过滤器之前运行PhaseListener?

时间:2012-03-07 15:02:29

标签: java jsf servlet-filters phaselistener

我有一个phaseListener和一个以上的过滤器。我想知道是否有办法创造优先权。我想首先使用phaseListener,然后是所有过滤器。我在/*中使用网址映射web.xml作为我的过滤器。

2 个答案:

答案 0 :(得分:4)

  

我想首先使用phaseListener,然后是所有过滤器。

那是不可能的。阶段侦听器将由JSF faces servlet执行。但是,根据规范,在任何servlet之前调用过滤器。你需要修改你的方法。显然,阶段监听器实际上需要是一个过滤器。如果您完全不依赖于面部上下文,这是非常有可能的。然后,可以将过滤器映射放在web.xml中的所有其他过滤器映射的前面。

答案 1 :(得分:0)

当模式同等匹配时,处理顺序由描述符(web.xml)中的过滤器映射的顺序决定。

因此,如果您希望X先出现,请先将其列出。