Tomcat

Tomcatとは?

サーブレットコンテナの1つ。
Linux、Windows、Macにインストール可能。
開発とデバッグ用にWEBサーバ機能もあり

サーブレットコンテナ

サーブレットコンテナとは?

=WEBコンテナ
=サーブレットエンジン
Webサーバー上でJavaプログラム(JAVAサーブレット、JSP)を動作させるソフトウェア
サーブレットアプリケーションと連携して動作する。
HTMLや画像などの静的コンテンツは高速なWebサーバ(Apache等)が担当
動的コンテンツのみサーブレットコンテナが担当する。

サーブレットコンテナの機能

ライフサイクル管理
サーブレットをロードしプロセスをメモリ内に常駐させる
クライアントからのHTTPリクエストに応じてスレッドを生成し、非同期でサーブレットを呼び出す。
一定時間サーブレットに処理要求が無い場合や、コンテナが終了する場合にプロセスを自動終了させる
セッション管理
クライアントとのセッション情報のやり取りを自動で行い、
同一クライアントか否か?の判定を行う。

インストール

手順

Apache Tomcat 公式ダウンロードサイト
Tomcat
デフォルトではポート:8080が設定される。
IIS、Apache等をインストール済みの場合は変更する必要あり

設定

ファイルリスト表示
(開発用。本番サーバーでは不可)
~\Tomcat 9.0\conf\web.xml
<servlet>
 <servlet-name>default</servlet-name>
 <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
 略

 <init-param>
  <param-name>listings</param-name>
  <param-value>false</param-value>
  ↓
  <param-value>true</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>

</servlet>

コマンド

内容 ファイル
起動 ~\Tomcat X.X\bin\startup.bat
停止 ~\Tomcat X.X\bin\shutdown.bat
実行確認

ブラウザからlocalhost、ポート:8080をリクエスト
Tomcat2

管理ツール

Tomcat3

ディレクトリ構成

tomcat~
 ├ bin :実行ファイル
 ├ conf :設定ファイル(tomcat-users.xmlserver.xml)
 ├ lib
 ├ logs :ログ
 ├ temp
 ├ work
 └ webapps :公開ディレクトリ
   ├ manager :管理ツール
   └ (アプリケーションルート)
     ├ (パッケージ名)
     |  └ JSPファイル(~.jsp)
     └ WEB-INF
       ├ classes:プログラム保存場所
       |  └ (パッケージ名)
       |     └ クラスファイル(~.class)
       ├ lib:ライブラリ(API)
       └ web.xml:アプリケーション用設定ファイル(デプロイメントディスクリプタ)

コンテキスト設定ファイル

※(ファイル名).xml
<?xml version="1.0"?>
<Context docBase="~\(公開ディレクトリ)\(アプリケーションルート)" path="/(呼び出し名)"/>
~\(公開ディレクトリ)\(アプリケーションルート) = (呼び出し名)
となる
例 test.xml
<?xml version="1.0"?>
<Context docBase="c:/tomcat~\webapps/test" path="/myApp"/>
呼び出し時
http://localhost:8080/myApp/test.jsp

コンテキスト設定ファイルの配置
tomcat~\conf\Catalina\localhost\コンテキスト設定ファイル

tomcat~\conf\Catalina\localhost\test.xml

デプロイメントディスクリプタ

アプリケーション用設定ファイル
JAVA デプロイメントディスクイプタ」参照

tomcat-users.xml

Tomcat内にある全Webアプリケーションの設定
<?xml version='1.0' encoding='ms932'?>
<tomcat-users
 xmlns="http://tomcat.apache.org/xml"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
 version="1.0">
 
 <user username="" password="" roles="manager-gui" />
 Tomcat Manager Applicationのアカウント情報
 <user username="" password="" roles="test1-gui, test2-gui" />
 任意のアカウント情報
 
</tomcat-users>

server.xml

任意のアプリケーションの設定
<Context …>
 …
 <Realm className="org.apache.catalina.realm.MemoryRealm" debug="1"
     pathname="/home/tomcat//WEB-INF/users.xml" />
 …
</Context>

context.xml

Tomcat5以降
server.xmlの代わり
server.xmlとcontext.xmlの両方に設定値を入力した場合、
server.xmlの内容は、context.xmlの内容で上書きされる。
<Context path="/javaroad"
 docBase=
  "C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\javaroad" debug="0">
  
 <Valve
  className="org.apache.catalina.valves.AccessLogValve"
  directory="logs/AccessLog" />
  
 コネクションプーリング利用時
 <Resource
  データソース名(設定名)
  name="jdbc\myDataSource"
  
  データソース利用時は以下固定
  auth="Container"
  type="javax.sql.DataSource"
  
  JDBCドライバ毎の固定名称(クラス名)
  driverClassName="org.gjt.mm.jmsql.Driver"
  
  接続情報
  username=""
  password=""
  url="//localhost/~"
  
  最大接続数
  maxActive="4"
  
  接続時の最大待ち時間(ミリ秒)
  maxWait="5000"
  
  待機プーリング数
  maxIdle="2"
  
  接続検証用SQL文
  validationQuery="SELECT ~"
  短い時間で取得できるクエリが望ましい
 />
 
</Context>

移行

前の記事

JDK
移行

次の記事

JSP