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のデフォルト)の設定が記述されている。
servlet要素のload-on-startupに値を指定すると、ウェブアプリ起動時にサーブレットが初期化される(インスタンスが作られてinit()が呼ばれる)順序を指定できる。
若い番号から順番に初期化されるのだが。
0を指定した場合、Tomcat
<load-on-startup> 0が最速は嘘?によると、Tomcat5.0では順番が一番最後になるらしい。
Tomcat5.5.23で同じソース(StandardContext#loadOnStartup())を見てみると、0の場合の特別扱いが無くなっていたので、Tomcat5.5では一番最初に初期化されるだろう。
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>
分類 | パラメーター名 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 |