在Struts2中,我們可以寫一個filter讓它繼承于FilterDispatcher并覆蓋其init()方法,然后修改web.xml文件的Struts2啟動相關(guān)配置來達(dá)到目的。
package fangwei.filter;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import org.apache.struts2.dispatcher.FilterDispatcher;public class BaseFilterDispatcher extends FilterDispatcher {@Overridepublic void init(FilterConfig arg0) throws ServletException {super.init(arg0);// 初始化系統(tǒng)全局變量// ...// 加載自定義配置文件// ...// 啟動定時任務(wù)// ...}}
<?xml version="1.0" encoding="UTF-8"?><web-app><filter><filter-name>struts2</filter-name><filter-class>fangwei.filter.BaseFilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>
不管是Struts、Struts2還是其他的web層框架,它們目前基于的技術(shù)都是Servlet,只要根據(jù)web.xml找到那個啟動類,我們就能通過覆蓋該類的的init()方法來實(shí)現(xiàn)系統(tǒng)的初始化工作。