Java Sticky Note
java
link
author
|
|
tomcatでSSIを使用する方法
tomcat4.1.18でSSIを使用できるように設定するためのドキュメントです。
1. 概要
|
tomcat4.xには、CGIやSSI(Server Side Include)の機能が実装されていますが、
デフォルトの設定では、これらの機能は使わない設定になっています。SSIは、
SSIServletで実現されており、もちろんJavaで実装されています。
以下では、tomcat4.1.18で、SSIを使用するための設定方法を記述します。
|
2. 設定
|
tomcatは、あらかじめインストールしておいて下さい。本ドキュメントでは、
tomcatがインストールされているディレクトリを $TOMCAT_HOME と記述します。
2.1 web.xmlの設定
|
$TOMCACAT_HOME/conf/web.xmlに、以下のSSIの設定がありますが、全体が
コメントアウトされており、有効になっていません。このコメントアウトを
外して、SSIを有効にします。
修正前
<!--
<servlet>
<servlet-name>ssi</servlet-name>
<servlet-class>
org.apache.catalina.ssi.SSIServlet
</servlet-class>
:
<param-name>isVirtualWebappRelative</param-name>
<param-value>1</param-value>
</init-param>
<load-on-startup>4</load-on-startup>
</servlet>
-->
|
修正後
<servlet>
<servlet-name>ssi</servlet-name>
<servlet-class>
org.apache.catalina.ssi.SSIServlet
</servlet-class>
:
<param-name>isVirtualWebappRelative</param-name>
<param-value>1</param-value>
</init-param>
<load-on-startup>4</load-on-startup>
</servlet>
|
次に、拡張子 shtml のファイルにアクセスされたら、SSIServletが実行される
ように、Servletのマッピングの設定も修正します。これも、あらかじめ用意
されており、コメントアウトされていますので、このコメントアウトを外し
ます。
修正前
<!-- The mapping for the SSI servlet -->
<!--
<servlet-mapping>
<servlet-name>ssi</servlet-name>
<url-pattern>*.shtml</url-pattern>
</servlet-mapping>
-->
|
修正後
<!-- The mapping for the SSI servlet -->
<servlet-mapping>
<servlet-name>ssi</servlet-name>
<url-pattern>*.shtml</url-pattern>
</servlet-mapping>
|
|
2.2 jarファイル
|
SSIServletが含まれるJarファイルを有効にします。
SSIServletの入った
jarファイルは、$TOMCAT_HOME/server/lib/servlets-ssi.renametojarです。
これを有効にするために、このファイルを servlet-ssi.jar に変更します。
$cd $TOMCAT_HOME/server/lib/
$ mv servlets-ssi.renametojar servlet-ssi.jar
|
|
|
3. テスト
|
設定が終了したところで、テストしてみます。
$TOMCAT/webapps/examples/test.shtmlとして、以下のSSIを用いたファイル
を作成します。
<html>
<head>
<title>SSI Test</title>
</head>
<body>
Server Side Include Test.
<!--#exec cmd="/bin/echo hello" --><br>
<!--#include file="hellossi.txt" --><br>
<!--#echo var="LAST_MODIFIED" -->
</body>
</html>
|
SSIから読み込むファイルを作成します。
http://localhost:8080/examples/test.html にアクセスしてみます。
実行結果
Server Side Include Test.
hello
Hello, SSI - 日本語
Friday, 28-Feb-2003 14:18:11 JST
|
|
4. 注意点
|
tomcatでSSIを実行すると、リプライは UTF-8 を用いて返されます。
Content-type ヘッダに、text/html;charset=UTF-8 と設定され、これは変更
出来ないようです。もし、これを変更する必要がある場合には、
tomcatのソースコードを入手し、org.apache.catalina.ssi.SSIServletの
res.setContentType("text/html;charset=UTF-8");
となっているところを適当に変更します。
|
|
|