我是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