web.xml中監聽器配置


<!-- 監聽器的配置:監聽器配置完以后,應用系統在啟動的時候就會開啟這些監聽器。

    監聽器的理解:監聽器好比一個衛兵,衛兵一直站在那里等待長官的命令,當衛兵收到長官的命令以后,立即執行

    之前已經協定好的事件。

    java中的監聽器,監聽應用的事件,具體有什么事件,以及對每個事件的處理方式都在類中定義了,

    所以,監聽器不需要參數、不具有返回值只是一味的等待指令然后執行既定的名利,也就是執行相應的操作,

    也就是說,監聽器一旦寫完,只是拿過來用就可以,沒有方法,沒有get set,沒有參數,只使用其他什么都沒有。

    還是不大理解 以后再了解了解

 -->

    <listener>

       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

       <!--使用spring的上下文加載監聽器:可能的作用是:在web應用加載系統應用資源文件,也就是加載那些xml文件的時候,

       會建立一些監聽器。譬如監聽xml文件內容的變化

         -->

    </listener>

    <listener>

        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>

       <!-- 實例化一個spring的關於請求的上下文的監聽器 -->

    </listener>

    <listener>

       <listener-class>org.hdht.commonweb.listener.MyServletContextListener</listener-class>

       <!-- 實例化一個自定義的監聽器。監聽器主要代碼

public class MyServletContextListener implements ServletContextListener {

    public void contextDestroyed(ServletContextEvent arg0) {

    }

    public void contextInitialized(ServletContextEvent arg0) {

       try {

           // 初始化日志處理器

           AppLogService.init();//初始化系統用到的變量,主要是靜態變量。

           System.out.println("INFO:數據初始化完畢");//djflag

           

       } catch (Exception e) {

           AppLogService.error("系統初始化錯誤!",e);

       }

    }

}

這是一個繼承了服務器上下文監聽器接口的監聽器,這個監聽器主要有兩個必須實現的方法:

    contextInitialized:當web服務器啟動時執行的方法,該方法主要用來初始化系統的變量,多半是靜態變量。

    contextDestroyed:當web服務器關閉的時候調用的方法,主要是銷毀一些內存變量,釋放資源。

        -->

    </listener>

<filter>

       <filter-name>headerFilter</filter-name>

       <!-- 聲明一個過濾器 名字叫:headerFilter 顧名思義是用來過濾文件頭部的 -->

       <filter-class>org.hdht.commonweb.filter.HeaderFilter</filter-class>

       <!-- 過濾器的實例化類是自定義的過濾器:關鍵代碼:

public class HeaderFilter implements Filter {

    public void init(FilterConfig arg0) throws ServletException {

    }

    public void doFilter(ServletRequest req, ServletResponse res,

           FilterChain chain) throws IOException, ServletException {

       HttpServletRequest request = (HttpServletRequest) req;

       HttpServletResponse response = (HttpServletResponse) res;

       response.setHeader("Pragma", "no-cache");

       response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");

       response.setHeader("Expires", "-1");

       chain.doFilter(req, res);

    }

    public void destroy() {

  }

}      

    通過上邊filter的配置:我們配置了一個自定義的過濾器,過濾器的名字是headerFilter,實例化類似自定義的類:HearderFilter,該過濾器的主要作用是對設置頁面不采用緩存。

 -->

    </filter>

    <filter-mapping>

       <filter-name>headerFilter</filter-name>

       <!-- 過濾器映射名稱 -->

       <url-pattern>*.jsp</url-pattern>

       <!-- 過濾器映射文件:所有的jsp文件。 -->

    </filter-mapping>

    <!-- 通過上邊的ffilter-mapping的配置: 我們將過濾器headerFilter映射到所有的jsp文件。

這樣所有的jsp文件的頭部就都會設置不適用緩存處理頁面。這個過濾器主要用於經常和數據庫有交互的頁面中。-->


    <!-- 權限過濾器:判斷用戶是否登錄的過濾器 -->

    <filter>

      <filter-name>uimfilter</filter-name>

      <!--聲明一個過濾器的:uimfilter 主要的作用是檢測用戶是否登錄 -->

      <filter-class>org.hdht.commonweb.filter.PermissionFilter</filter-class>

      <!-- uimfilter過濾器的實例化類 是自定義的過濾器類

        java代碼主要是對session進行判斷,判斷表示用戶登錄的session變量是否存在,如果不存在就重定向到登陸界面。

      通過上邊filter的配置:我們定義了一個名字叫做uimfilter的權限過濾器,這個過濾器的實例化類是自定義的java類,

      主要對用戶是否登錄做出判斷,並根據判斷結果作相應的處理:繼續操作還是重定向登錄

       -->

    </filter>

    <filter-mapping>

      <filter-name>uimfilter</filter-name>

      <url-pattern>*.jsp</url-pattern>

      <!-- 將權限過濾器映射給所有的jsp文件 -->

    </filter-mapping>

    <filter-mapping>

      <filter-name>uimfilter</filter-name>

      <url-pattern>/dwr/*</url-pattern>

      <!-- 將權限過濾器映射給dwr包內的所有文件 -->

    </filter-mapping>

    <filter-mapping>

      <filter-name>uimfilter</filter-name>

      <url-pattern>*.do</url-pattern>

      <!-- 將權限過濾器映射給所有的.do文件 -->

    </filter-mapping>

    <!-- 通過上邊filter-mapping的配置:我們將uimfilter過濾器映射給所有的jsp文件,dwr包內的所有文件愛你以及.do文件

    這樣,當用戶進入到jsp文件或者調用dwr或者有action的操作的時候,系統就會對用戶是否登錄進行判斷。

     -->



    <!-- 防止出現 Session關閉異常的 過濾器  -->


    <filter>

       <filter-name>hibernateFilter</filter-name>

       <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>

    </filter>

    <filter-mapping>

       <filter-name>hibernateFilter</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>


    <!-- Strtus2.0 控制過濾器  -->

    <filter>

       <filter-name>struts</filter-name>

       <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

    </filter>

    <filter-mapping>

       <filter-name>struts</filter-name>

       <url-pattern>/business/*</url-pattern>

       <url-pattern>/common/*</url-pattern>

       <url-pattern>/system/*</url-pattern>

       <url-pattern>/login.jsp</url-pattern>

       <url-pattern>/loginback.jsp</url-pattern>

       <url-pattern>/main.jsp</url-pattern>

       <url-pattern>/index.jsp</url-pattern>

       <url-pattern>*.do</url-pattern>

    </filter-mapping>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM