感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

【プログラミング 23時間目】サーブレットでweb.xmlをいちいち編集するのが面倒くさいときはinvokerサーブレットを有効化

<スポンサーリンク>


「基礎からのサーブレット
この本は入門書としては最高の本である。説明が一つ一つ詳しく、類書が省きがちな環境構築をきめ細やかに説明してくれる。

初学者が1番つまづくのは環境構築なのに、それを省略する本を書くヤツはナルシストに違いない。
読者の気持ちになるべきだ。
その点この本は本当に素晴らしい。著者の「基礎からの」に込めた情熱が感じ取れる。

今日は以前勉強した部分の復習。
以下はメモ。

★★

サーブレットを書くたびにweb.xmlを書き換えるのが面倒なときは、Tomcat
invokerサーブレットを使えば、web.xmlサーブレットを登録する手間が省ける。

/conf/web.xmlの以下の部分を有効化する。
(最初はコメントアウトされている)

    <servlet>
        <servlet-name>invoker</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>

次に、invokerサーブレットservlet-mapping要素を有効にする。

    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>

次に、
/conf/context.xml
以下のようにContext privileged="true"を追加する。

<!-- The contents of this file will be loaded for each web application -->
<Context privileged="true">

invokerサーブレットを使うと、<サーバのURL>/<アプリケーション名>/servlet/完全クラス名
というURLでサーブレットを呼び出すことができる。

<%@page contentType="text/html; charset=Windows-31J" %>

<%@ 〜 %>
で記述されるタグはディレクティブと呼ばれ、JSPの各種設定を行います。
pageディレクティブはJSPが出力するページ全体に関する設定を行うもので、上記の例ではcontentType属性が指定されている。