<!-- 監聽器的配置:監聽器配置完以后,應用系統在啟動的時候就會開啟這些監聽器。
監聽器的理解:監聽器好比一個衛兵,衛兵一直站在那里等待長官的命令,當衛兵收到長官的命令以后,立即執行
之前已經協定好的事件。
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>