我是Servlet过滤器的新手,基本上已加入使用它们的项目,并在web.xml
文件中添加了一个额外的过滤器Tomcat 5.5)。web.xml - Java Servlet过滤器 - 在处理JSP页面之前未运行(在Tomcat上)
我95%确定它在某些时候工作正常,但现在在调试时如果我在JSP页面的顶部放置断点,我试图查看(login.jsp
),它是模板页面(page.jsp
)配置的过滤器的方法doFilter()
;它贯穿整个login.jsp
页面(从上到下),然后page.jsp
并开始处理过滤器。
我需要它先运行过滤器,因为它们中的一个决定了页面应该显示的语言(检查cookie,db设置和浏览器设置),然后应该应用于login.jsp
。
有没有人有什么建议可能会出错?
有很多我可以发布的代码,但我不相信这将是任何使用,因为它都是在错误的顺序工作。从web.xml中
摘录:
<web-app>
...
<filter>
<filter-name>SetSecurityContextFilter</filter-name>
<filter-class>
com.section2.SecurityContextServletFilter
</filter-class>
</filter>
<filter>
<filter-name>SetLocaleFilter</filter-name>
<filter-class>
com.section2.locale.LocaleServletFilter
</filter-class>
</filter>
<filter>
<filter-name>trinidad</filter-name>
<filter-class>org.apache.myfaces.trinidad.webapp.TrinidadFilter</filter-class>
</filter>
<filter>
<filter-name>ActiveUserFilter</filter-name>
<filter-class>com.section2.ActiveUserFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>trinidad</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>SetSecurityContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>SetLocaleFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ActiveUserFilter</filter-name>
<url-pattern>/pages/section2/user/*</url-pattern>
</filter-mapping>
...
</web-app>
在此先感谢。
您在http://java.sun.com/products/servlet/Filters.html了外观和http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/Filter.html?不知道你在做什么,很难想象出了什么问题。你有没有尝试像码头一样的另一个servlet容器? – 2009-11-12 08:16:52