フロントコントローラはServlet? Filter?

フロントコントローラにServlet、Filterのどちらを使用するかで悩む。
Struts時代であれば、Servletが主流(というかFilterはまだなかったかな)だったが、
今はSAStrutsにしてもStruts2にしてもCubbyにしてもFilterを使っている。
Filterを採用するのにはそれなりの理由があるのだろう。
ちょっと考えてみる。


Servletが同一URLパターンへの適用は1クラスになるのに対し、Filterは多重適用が可能。
・同様な理由からFilterは機能ごとに分割して多重適用できるが、Servletは根本的に分割することはできない。
・Filterは、クライアントからの最初のリクエスト時だけでなく、forwardやinclude時にも適用可能。
JSPへのダイレクトアクセス時も、Filterなら処理/制御可能
 (ServletJSP用のサーブレットが対応することになり、いじりにくい)


思いつくのはこんなところ。Filterにしとくのがよさげ。
Filterで各コントローラクラスへ振り分けることにする。