調(diào)結(jié)者的action請(qǐng)求 |
StrutsPrepareFilter類(lèi)在處理request請(qǐng)求的時(shí)候,需要用到一個(gè)叫PrepareOperations類(lèi)的幫忙。PrepareOperations類(lèi)可以說(shuō)是StrutsPrepareFilter類(lèi)和Dispatcher類(lèi)的中間人。PrepareOperations類(lèi)大部分的工作都是通過(guò)Dispatcher類(lèi)完成的。先讓我們看一段代碼。如下
StrutsPrepareFilter類(lèi):
public void init(FilterConfig filterConfig) throws ServletException { InitOperations init = new InitOperations();//用于初始化相關(guān)的功能操作。你可以理解為工具類(lèi)一樣子。 Dispatcher dispatcher = null;//這個(gè)類(lèi)相當(dāng)?shù)闹匾K淖饔眠B接著StrutsExecuteFilter。這里可以命名為調(diào)結(jié)者。 try { FilterHostConfig config = new FilterHostConfig(filterConfig);//這里可以理解為把filterConfig在進(jìn)行封裝FilterHostConfig更為主便操作和理解。 init.initLogging(config);//獲取名為loggerFactory的參數(shù),并實(shí)例化這個(gè)類(lèi)。一般為去用戶(hù)自定義日志。 dispatcher = init.initDispatcher(config);//初化調(diào)結(jié)者。這里是重要。 prepare = new PrepareOperations(dispatcher); this.excludedPatterns = init.buildExcludedPatternsList(dispatcher);//加載排除在內(nèi)的action的正則表達(dá)式 &n