I will be waiting for your knock ever after from today.


Visards, Inc.

Java Sticky Note

java
  ・JSTL
  ・Commons Net
  ・Apache
  ・Tomcat
  ・James
  ・Jetspeed
  ・POI
  ・Jexl
  ・Jelly
  ・Blojsom
  ・eclipse

link
  ・James

author
  ・profile

tomcat  
tomcat index
tomcatでSSIを使用する方法

mixiチェック

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から読み込むファイルを作成します。
Hello, 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");
となっているところを適当に変更します。
tomcat index




Copyright (C) 2003-2005 Visards, Inc. All Rights Reserved.