web.xml 配置Filter

下面是該Filter的源代碼。

程序清單:codes/02/2.12/ filterTest/WEB-INF/src/lee/AuthorityFilter.java

 



上面Filter的doFilter方法裏3行斜體字代碼用於獲取Filter的配置參數,而程序中粗體字代碼則是此Filter的核心,①號代碼按配置參數設置了request編碼所用的字符集,接下來的粗體字代碼判斷session範圍內是否有user屬性——沒有該屬性即認爲沒有登錄,如果既沒有登錄,而且請求地址也不是登錄頁和處理登錄頁,系統直接跳轉到登錄頁面。

在web.xml文件中配置該Filter,使用init-param元素爲該Filter配置參數,init-param可接受如下兩個子元素:

param-name:指定參數名。

param-value:指定參數值。

該Filter的配置片段如下:

 


上面配置片段中粗體字代碼爲該Filter指定了3個配置參數,指定loginPage爲/login.jsp,proLogin爲/proLogin.jsp,這表明:如果沒有登錄該應用,普通用戶只能訪問/login.jsp和/proLogin.jsp頁面。只有當用戶登錄該應用後纔可自由訪問其他頁面。


<servlet>
    <servlet-name>action<servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>

    <init-param>
        <param-name>detail</param-name>
        <param-value>2</param-value>
    </init-param>

    <init-param>
        <param-name>debug</param-name>
        <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>



<load-on-startup>2</load-on-startup>配置的作用
1)load-on-startup元素標記容器是否在啓動的時候就加載這個servlet(實例化並調用其init()方法)。
2)它的值必須是一個整數,表示servlet應該被載入的順序
3)當值爲0或者大於0時,表示容器在應用啓動時就加載並初始化這個servlet;
4)當值小於0或者沒有指定時,則表示容器在該servlet被選擇時纔會去加載。
5)正數的值越小,該servlet的優先級越高,應用啓動時就越先加載。
6)當值相同時,容器就會自己選擇順序來加載。

本文來自CSDN博客,轉載出處:http://blog.csdn.net/doymm2008/archive/2009/11/09/4791435.aspx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章