Documentation
2-8. サーバに配置する
Mayaa を使うアプリケーションをアプリケーションサーバに配置する際に必要なことを説明します。
ページを置く場所
Mayaa はリクエストされたファイルを次の順番で探します。(例: http://localhost:8080/mayaa/index.html にアクセスされた場合)
- コンテキストルートの下 (例: C:\tomcat\webapps\mayaa\index.html)
- /WEB-INF/page の下 (例: C:\tomcat\webapps\mayaa\WEB-INF\page\index.html)
- クラスパス (例: C:\tomcat\webapps\mayaa\WEB-INF\classes\index.html)
2, 3 番目は、Mayaa を通さなければアクセスできない場所ですので、MayaaServlet の設定を間違えている場合や MayaaServlet のみ異常終了した場合に、直接テンプレートの HTML ファイルを表示してしまうことを防げます。
■標準のディレクトリ構成
Mayaa の標準設定では下記のようになっています。Mayaa が動作するために必要なファイルはこれで全部です。
コンテキストルート + WEB-INF/ + lib/ - commons-beanutils-core-*.jar - commons-logging-*.jar - jaxen-*.jar - mayaa-*.jar - nekohtml-*.jar - rhino-*.jar - xercesImpl-*.jar - xml-apis-*.jar - web.xml
web.xml の書き方
Mayaa の基本的な使い方は、MayaaServlet を定義しページを返すときに forward する使い方です。JSP に forward する場合と同じです。従って、Mayaa に任せるファイル (一般的には *.html) を MayaaServlet にマッピングする設定を行います。
■MayaaServlet を設定する
拡張子が .html の HTML ファイルのみを Mayaa に任せる場合、次のように設定します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>MayaaServlet</servlet-name> <servlet-class>org.seasar.mayaa.impl.MayaaServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MayaaServlet</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> </web-app>
Mayaa はリクエストされたファイルの Mime-Type が html、xhtml、xml であるか、もしくは拡張子が .mayaa である場合に処理を行います。それ以外であれば前述のパス解決を行ったあと、そのまま素通しします。他の Servlet やアプリケーションに処理を任せるものがなければ、すべての URL を Mayaa に任せることもできます。
<servlet-mapping> <servlet-name>MayaaServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>