KMS Knowledge Management Support
 お問合せ
トップページ会社案内製品案内介護シリーズ スグレポート技術情報採用情報サイトマップ
 -- サーバサイドJava --
 JSPの採用-Tomcatのインストール

サーブレットだけで直接HTMLに書き込もうとすると作業量の多さが難点になります。
画面イメージを変更する場合は、  毎回ソースの変更→コンパイル の必要があります。
JSP(JavaServer Pages)を使用すれば、この問題が解決できます。
JSPはHTMLの中にHTML拡張タグを使ってJavaコードを直接書き込んだものです。
サーバに格納したJSPファイルに記述されたHTMLはそのまま、
Javaコードはサーブレットにコンパイルされて、 ブラウザに投げられます。

JSPエンジンにはTomcatを使用することにしました。
Tomcatは、単体でWebサーバとしてサーブレットとJSPを動作させることができるほか、
Apacheにアドオンモジュールとして組み込んで使用することもできます。

 Tomcat3.1のインストール方法をまとめてみます。

Tomcat 3.1 インストール手順

1. ダウンロードURL 

 1)ソースコード http://jakarta.apache.org/downloads/sourceindex.html
 2)バイナリ http://jakarta.apache.org/downloads/binindex.html

の3種類の手段がありますが、ここでは 1) ソースコード のインストールについて記述します。
ダウンロードしたファイルはusr/local上にコピー後、ファイル名を変更します。
      jakarta-ant_tar.tar → jakarta-ant.tar.gz
      jakarta-tomcat_tar.tar → jakarta-tomcat.tar.gz

2. ソースコードからのインストール

 1) アーカイブを展開する。

  /usr/localに「tomcat3_1」ディレクトリを作成し、アーカイブを展開します。
  (tomcat3_1は、展開用のディレクトリ)
   $ cd /usr/local/ tomcat3_1
   $ tar zxfv jakarta-ant.tar.gz
   $ tar zxfv jakarta-tomcat.tar.gz
   すると、展開したディレクトリ tomcat3_1 に jakarta-ant, jakarta-tomcat
  二つの ディレクトリが 現れます。

 2) コンパイルの準備

  コンパイルするにあたって HOME, JAVA_HOME 二つの環境変数が使われますので
   $ echo $HOME
   $ echo $JAVA_HOME
  上記コマンドで正しく設定されていることを確認します。
  もし、 設定されていないか、 変更したい場合は
   $ export HOME=/home/%username%
   $ export JAVA_HOME=/usr/local/jdk1.2.2
  (Java2 SDK1.2.2 がインストール済であること) とします。
 もう一つ、コンパイル時に Tomact は自分で javac を 呼び出しますので
 sun.tools.javac.Main クラスが 入っている tools.jar へのCLASSPATH
 を設定します。

    /home/%username%/.javaenv に設定

    export CLASSPATH=.:/usr/local/jdk1.2.2/lib/tools.jar
              :/usr/local/jdk1.2.2/lib:/usr/local/jdk1.2.2
              :/usr/local/servlet2.2/servlet.jar:/usr/local/jsdk2.1/servlet.jar
   CLASSPATHの設定順によっては、コンパイルできないことがあります。
   この順番に設定するとコンパイルできました。      

 3) コンパイル      

   $ cd jakarta-ant
   $ ./bootstrap.sh
   $ ./build.sh
   $ cd ../jakarta-tomcat
   $ ./build.sh
   というように jakarta-ant ディレクトリで 2つのスクリプトを実行したら、
   jakarta-tomcatディレクトリでスクリプトを一つ実行し、コンパイルは終了です。

   コンパイルが無事に終っていれば tomcat3_1 に build ディレクトリが作られて、
   $tomcat3_1/build/tomcat 以下に Tomcat 一式が そろえられます。
   $tomcat3_1/buildの下にできた tomcat ディレクトリ以下を、
   /usr/localへコピーします。

3. 起動

 $tomcat/bin に、起動のためのスクリプト startup.sh が用意されていますので
  これを使って起動します。

   $ ./startup.sh
  で起動できます。 このスクリプトは JAVA_HOME 環境変数か
  java インタープリタ(java コマンド)へのパスのどちらかが
  設定されていることを想定していますので、
  見つけられるようになっていれば起動できます。

4. 停止

 起動同様、$tomcat/bin に、停止のための スクリプト shutdown.sh が
  用意されていますのでこれを使って停止します。  

   $ ./shutdown.sh

5. セットアップ

 Tomcat のセットアップファイルには次の3つの形式があります。
   *.xml(*.dtd) : Tomcat そのものに関係する設定
   *.conf : アドオンする Web サーバに組み込むための設定
   *.properties : Web サーバから参照する Tomcat の設定

 1) /usr/loca/tomcat/conf/server.xml
   port 値の変更が必要な場合があります

 2) /usr/local/apache_1.3.12/conf/httpd.conf
   最終行に次の1行を追加   
   Include /usr/local/tomcat/conf/tomcat.conf

 3) /usr/local/tomcat/conf/tomcat.properties
   に wrapper.classpath を追加
   wrapper.classpath=/usr/local/apache_1.3.12/beans

6.サーブレット・クラス・JSP を置く場所

 <サーブレット・クラス>
      /usr/local/tomcat/webapps/examples/WEB-INF/classes/

 <JSP> /usr/local/tomcat/webapps/examples/jsp/

 <JSPをコンパイルする時、使用されるワークファイル>
      /usr/local/tomcat/work/localhost_8080%2Fexamples/jsp/ディレクトリ

 <アプレット・HTML> /home/ユーザ名/public_html/*.class or *.html

(参考文献 技術評論社刊 『JAVAPRESS』12号)

 MVCアーキテクチャ

Webブラウザベースのシステムを設計する際、
 「MVC(Model-View-Contoller)アーキテクチャ」
という考え方が広く使われています。

これはアプリケーションを

 ・Model(モデル) 
     システムが扱うデータとそのデータに対する操作を表現。
 ・View(ビュー) 
     ユーザインターフェースに相当する部分。
 ・Controller(コントローラー)
     ユーザの入力を受取り、これに基づきモデル/ビューを制御。

という3つの部分に分割し、各部分間の相互依存性を抑えることにより
全体の保守性・拡張性を向上させるという考え方です。

 モデル ⇔ JavaBeans
 ビュー ⇔ JSP
 コントローラー ⇔ サーブレット

のようにWebアプリケーションを機能分割すると
見通しのよいアプリケーションになります。

 @システムで扱うデータをJavaBeans化し、
  ビジネス口ジックをメソッドとして提供。
 AJSPはJavaBeansの内容を参照し、組み立てて、
  動的なHTMLとしてユーザーに提供。
 Bユーザーからのリクエストをサーブレットが受取り、
  JavaBeansとJSPを制御。

図 MVCによるWebアプリケーションの機能分割


 

(参考文献 技術評論社刊 『JAVAPRESS』12号)

 サーブレットの動作アーキテクチャ

サーブレットはひとつのJVM上でスレッドとして実行されます。
サーブレットへの要求が発生するたびに、この空いているスレッドが
サーブレットとして処理を実行します。
あらかじめ用意されているスレッドを用いるので、
新たにスレッドを作成することなく、速やかな応答が可能です。

 

処理の終了したサーブレットは、次に要求が来るまで待機します。
2回目以降の要求に対しては、このサ−ブレットが処理を行うので
初期化処理がない分、応対時間が短縮されます。

もし、実行中のサーブレットに対して別に要求がきた場合、
サーブレットエンジンは2つ目のサーブレットを作成して処理を実行します。
同一サーブレットが並列に処理を行うことになります。
多量の要求によって、サーブレットとして動作させる空きスレッドが
足りなくなったときには、新しい空きスレッドが生成されます。

(参考文献 サイエンス社刊 『サーブレット&JavaWebServer』)

 CGIプログラムとの比較

サ−ブレットの動作をCGIプログラムと比較し、サーブレットの優れている点

・CGIプログラムはプロセスとして実行させるため、
WWWブラウザからの要求のたびにプロセスが起動される。(図参照)。
・プロセスの起動処理はサーブレットエンジンが空きスレッドをサーブレットとして
起動するのに比べ時間のかかる作業であり、CPUやメモリの消費量も大きい。
・サーブレットはCGIプログラムに比べ、
応答時間やリソースの消費量という点で優れている。

(参考文献 サイエンス社刊 『サーブレット&JavaWebServer』)


 国際マイコンサービス株式会社

 © 2008 KOKUSAI MICOM SERVICE Co.,Ltd