Java web.xml<;过滤器映射>;使用时不工作<;servlet名称>;
我有一个web.xml,其中包含以下内容:Java web.xml<;过滤器映射>;使用时不工作<;servlet名称>;,java,spring,servlet-filters,web.xml,Java,Spring,Servlet Filters,Web.xml,我有一个web.xml,其中包含以下内容: <filter> <description>CASRebroadcastFilter</description> <filter-name>CASRebroadcastFilter</filter-name> <filter-class>edu.utah.acs.tek.filters.CASSingleSignOutRebroadcast</fil
<filter>
<description>CASRebroadcastFilter</description>
<filter-name>CASRebroadcastFilter</filter-name>
<filter-class>edu.utah.acs.tek.filters.CASSingleSignOutRebroadcast</filter-class>
</filter>
(... more CAS-filters)
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<filter-mapping>
<filter-name>CASRebroadcastFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
(... more CAS-filter-mappings and the rest of my web.xml...)
CASRebroadcastFilter
CASRebroadcastFilter
edu.犹他州acs.tek.filters.CassingleSignOut转播
(…更多CAS筛选器)
调度员
org.springframework.web.servlet.DispatcherServlet
1.
调度员
*.做
CASRebroadcastFilter
*.做
(…更多CAS筛选器映射和my web.xml的其余部分…)
环境:Spring 2.5,Glassfish 2.1
这正如预期的那样工作——也就是说,CASRebroadcastFilter拦截并处理适当的调用,并允许其他所有调用通过
但如果我将过滤器映射更改为:
<filter-mapping>
<filter-name>CASRebroadcastFilter</filter-name>
<servlet-name>dispatcher</servlet-name>
</filter-mapping>
CASRebroadcastFilter
调度员
它不起作用。我所说的“不起作用”的确切意思是:所有东西都会通过CASRebroadcastFilter,就好像它不在那里一样,没有一个错误或其他东西被输出
这就好像
标记在我的环境的某些方面的上下文中不起作用
是否有其他人看到了这一点或知道这可能是什么原因?可能是因为您在使用servlet名称设置过滤器时更改了过滤器的顺序。servlet容器将按照在web.xml中配置的顺序运行过滤器,首先是使用url模式的过滤器,然后是使用servlet名称的过滤器。因此,使用url模式的过滤器总是在使用servlet名称的过滤器之前执行 所以,通过将其更改为使用servlet名称,可以有效地将其放在使用url模式的所有过滤器之后