2011-01-27 167 views

回答

3

何時啓動Java Filter?

在web應用程序啓動過程中。


是否過濾init()方法在此改變的servlet init()方法?

不,他們之間沒有任何關係。 init()方法您的過濾器只是實現了一個定義在javax.servlet.Filter interface


我在哪裏申報web.xml的初始化參數?

裏面的<filter>聲明。

<filter> 
    <filter-name>myFilter</filter-name> 
    <filter-class>com.example.MyFilter</filter-class> 
    <init-param> 
     <param-name>foo</param-name> 
     <param-value>bar</param-value> 
    </init-param> 
</filter> 

它會再提供內部init()如下:

@Override 
public void init(FilterConfig config) { 
    String foo = config.getInitParameter("foo"); // contains "bar". 
} 
+0

這意味着該請求將被過濾automaticaly我的意思是我沒有o把開始的順序,它也是一樣的迴應? – giorgo 2011-01-27 15:05:04

+0

@giorgo - 您必須將濾鏡貼圖添加到您要應用濾鏡的網址。例如,爲了將過濾器應用於一個名爲checkOut.JSP頁面你可以這樣做:<過濾器映射> \t myFilter \t /secure/checkOut.jsp \t – CoolBeans 2011-01-27 15:11:09

1

聲明它在web.xml像

<web-app version=...> 
    ... 
    <filter> 
     <description>...</description> 
     <display-name>My Filter</display-name> 
     <filter-name>MyFilter</filter-name> 
     <filter-class>com.foo.bar.MyFilter</filter-class> 
    </filter> 
    ... 
    <filter-mapping> 
     <filter-name>MyFilter</filter-name> 
     <url-pattern>/some/path</url-pattern> 
    </filter-mapping> 
    ... 
</web-app> 

[更新]<filter>部分登記您的過濾器到系統;它會在Web應用程序啓動時自動啓動。在<filter-mapping>部分中,您可以配置何時(在哪些網址上)調用您的過濾器。

您的其餘問題已由@BalusC回答。