お世話になっております。

現在GoogleAppEngineを利用してサーバーサイドを制作しています。
Servletのバージョンは2.5です。

APIなどを作成する上でapi.example.comの形でサブドメイン形式にしようと思ってます。

そこで

通常ページ: example.com
APIページ: api.example.com
管理ページ: admin.example.com

のイメージでサブドメインでServletを分けたいと思います。

ソースファイルのパッケージ構成はクラス名を統一したいので
ページ用Servlet: com.exampleパッケージ
API用Servlet: com.example.apiパッケージ
管理用Servlet: com.example.adminパッケージ
このように分けて配置しようと考えています。

そこで質問なのですが、
newsの表示: example.com/news
newsのAPI: api.example.com/news
news管理画面: admin.example.com/news
とURLを構成する場合、どのようにアクセスを判断してServletを切り分けるのがいいのでしょうか?

<url-pattern>を使用するにもドメイン以下が同じのためうまく切り分けれていない状況です。
<url-pattern>で切り分けられれば<security-constraint>を使用するときも楽だなとは思っています。

1つの手段としては
filterクラスを定義し、サブドメインを解析してサーブレットにforwardさせる
方法ならできると思うのですが、news以外にもコンテンツが増えた場合、それに合わせてフィルタークラスも増えていくのがナンセンスだと思っています。

宜しくお願い致します。