S-JIS[2009-12-29/2010-01-12] 変更履歴

Tomcatのweb.xml

Tomcatで使用する各ウェブアプリ用のweb.xmlの設定について。

Tomcat サーブレット JSP 更新日
Tomcat5.0
Tomcat5.5
サーブレット2.4 JSP2.0 2010-01-12
Tomcat6.0 サーブレット2.5 JSP2.1 2010-01-12

また、Tomcatのディレクトリーのconfの下にもweb.xmlがある。
ここには、全ウェブアプリ共通(すなわちTomcatのデフォルト)の設定が記述されている。


load-on-startupの注意

servlet要素load-on-startupに値を指定すると、ウェブアプリ起動時にサーブレットが初期化される(インスタンスが作られてinit()が呼ばれる)順序を指定できる。
若い番号から順番に初期化されるのだが。

0を指定した場合、Tomcat <load-on-startup> 0が最速は嘘?によると、Tomcat5.0では順番が一番最後になるらしい。
Tomcat5.5.23で同じソース(StandardContext#loadOnStartup())を見てみると、0の場合の特別扱いが無くなっていたので、Tomcat5.5では一番最初に初期化されるだろう。


JspServlet

org.apache.jasper.servlet.JspServletは、jspファイルを扱うサーブレット。
jspファイルをjavaソース(サーブレットのプログラム)に変換してコンパイルして実行 し、HTMLを生成する。
したがって、JspServletのパラメーター(init-param)でJSP変換に関する操作を指定できる。

    <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>
〜
    <!-- The mapping for the JSP servlet -->
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jspx</url-pattern>
    </servlet-mapping>
JspServletのパラメーター(Tomcat5.5)
分類 パラメーター名
param-name
デフォルト値
(param-value)
概要
jspチェック development true jasperを開発モードにするかどうか。
trueの場合はmodificationTestIntervalが使われ、falseの場合はcheckIntervalが使われる。
開発モードの場合、jspから変換する際に例外が発生すると、詳細情報を出力する。
checkInterval 0 (本番モード用)
jspファイルのリコンパイルが必要かどうかチェックする間隔。
developmentがfalseでcheckInterval>0の場合、バックグラウンドでのコンパイルが有効になる。
modificationTestInterval 4 (開発モード用)
jspファイルが最後にチェックされてから ここで指定された時間が経過するまでは、チェックされない。
0の場合は、jspファイルにアクセスされる度にチェックされる。
developmentがtrueの場合のみ使える。
javaソース生成
jasper
keepgenerated true 生成されたjavaソースファイルを残しておくかどうか。
javaEncoding UTF8 javaソースファイルの文字コード。
enablePooling true タグハンドラーがプーリングされるかどうか。
trimSpaces false アクションタグ(カスタムタグ)JSPディレクティブ等があった場所の空白を削除するかどうか。
(trueにするとアクションタグやディレクティブが空行にならないようになる。
ただし、いずれにしてもjspファイル内のインデントは残る)
この値を変えても、jspのリコンパイルが発生しないと(Tomcatを再起動しただけでは)反映されない。
値を変えたらキャッシュをクリアしておくのが無難。
xpoweredBy false 生成されたサーブレットにおいて、HTTPのX-Powered-Byレスポンスヘッダー出力を行うかどうか。
genStrAsCharArray false 文字列をchar配列とするかどうか。(いくつかのケースでは効率がよくなる?)
errorOnUseBean
InvalidClassAttribute
true useBeanタグによる値が正しくないクラスだった場合、エラーとするかどうか。
ieClassId (クラスID) <jsp:plugin>タグで使用される、Ineternet Explorer(IE)向けのクラスID。
コンパイル compiler javac jspファイルを変換する際に使用するコンパイラー。
compilerTargetVM 1.4 or 1.5 コンパイル時のtargetだと思う
デフォルトは、「システムプロパティーのjava.specification.version>1.4」ならば1.5、それ以外は1.4。
compilerSourceVM 1.4 or 1.5 コンパイル時のsourceだと思う
デフォルトは、「システムプロパティーのjava.specification.version>1.4」ならば1.5、それ以外は1.4。
classpath   コンパイル時に使用するクラスパス。
classdebuginfo true コンパイル時にデバッグ情報を含めるかどうか。
mappedfile true Should we generate static content with one print statement per input line, to ease debugging?
suppressSmap false Should the generation of SMAP info for JSR45 debugging be suppressed?
dumpSmap false Should the SMAP info for JSR45 debugging be dumped to a file?
False if suppressSmap is true
その他 scratchdir (ディレクトリー) jspファイルのコンパイルに使用するスクラッチディレクトリーの場所。
デフォルトは、各ウェブアプリのディレクトリーの下
(ServletContextの「javax.servlet.context.tempdir」で指定された場所。
その指定が無ければ、システムプロパティーのjava.io.tmpdirで指定された場所)
fork true jspファイルからコンパイルする際にAntが使われるが、その実行をTomcatとは別のJavaVMで行うかどうか。
sendErrToClient false  

Tomcatへ戻る / 技術メモへ戻る
メールの送信先:ひしだま