Tomcat / Servlet Filter
Tomcat とは オープンソースのアプリケーションサーバで無料で使用できます。 Tomcat を使用することで、 Java Servlet や JSP を処理することができます。 今回調査する Filter機能 は Java Servlet API2.3 から導入された機能で、 クライアントからのリクエストを処理する前 や クライアントへレスポンスを返す前に任意の処理を加えることができます。 Tomcat では 4.x から Filter が使用できるようになっています。
Servlet Filter 調査の目的
今回 profaim では profaim.base を Java を用いて作成しようとしています。 profaim.base ではクライアントからのリクエストに応じて返されるウェブページ(レスポンス)に埋め込まれた profaim.baseタグ と呼ばれる専用のタグを処理することで動的なページ構築を可能としています。
アプリケーションサーバを利用する場合、 コントローラに相当する1つの Servlet を作成してページのID をパラメータにして呼び出すことで目的のレスポンスを返すというのが一般的のようです。 この方式では既にウェブサイトを運営している人はサイトの構成自体を変えて対応しなければならなくなり、 「既存のサイトでも 簡単に導入できる」という profaim.base の思想にはそいません。
そこで、 Servlet の Filter 機能を使用して レスポンスに含まれる profaim.baseタグ を処理してやることで、個別のレスポンスに対して処理を加えることができるため、 サイトの構成を変えなくてよくなります。 また、Filter はアプリケーションサーバの機能を置き換えるわけではなので、 JSP を使用したページも正しく処理することができるというわけです。今回行った、profaim.base構築前の Filter事前調査の結果は随時まとめて公開していく予定です。
ServletFilter 関連の調査記事 | ||
1
|
HttpServletResponseWrapperで見るHTML/JSP処理の流れ | Filterを作成しResponseの内容を変更しようとしたところ、HTMLとJSPとで処理の流れが異なることがわかりました。 |