本節書摘來自異步社群《spring mvc學習指南(第2版)》一書中的第2章,第2.4節,作者:【美】paul deck著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
雖然servlet是模型2應用程式中最常見的控制器,但過濾器也可以充當控制器。但請注意,過濾器沒有作為歡迎頁面的權限。僅輸入域名時不會調用過濾器分派器。struts 2使用過濾器作為控制器,是因為該過濾器也用于提供靜态内容。
下面的例子(appdesign2)是一個采用filter分發器的模型2應用,目錄結構如圖2.5所示。

圖2.5 appdesign2目錄結構
jsp頁面和product類同appdesign1相同,但沒有采用servlet作為控制器,而是使用了一個名為filterdispatcher的過濾器(見清單2.7)。
清單2.7 dispatcherfilter類
dofilter方法的内容同appdesign1中process方法。
由于過濾器的過濾目标是包括靜态内容在内的所有網址,是以,若沒有相應的action則需要調用filterchain.dofilter()。
要測試應用,可以用浏覽器通路如下url:
<code>http://localhost:8080/appdesign2/input-product</code>