Webサーバー

静的コンテンツと動的コンテンツ

クライアントのリクエストからコンテンツをレスポンスをするサーバーを、Webアプリケーションサーバー(Webサーバー) といいます。コンテンツにはコンテンツをそのままレスポンスする静的コンテンツと、リクエストに応じて結果が変わる動的コンテンツに分けられます。

静的コンテンツの場合

動的コンテンツの場合

Webアプリケーション

サーバープログラムは、リクエストに応じてHTMLなどのコンテンツを動的に出力します。Webサーバ上で動作するプログラムでWebアプリケーションともいいます。

Webサーバの種類

Webサーバー 説明
Apache 世界中で使用されている Webサーバー(HTTPサーバー)のソフトウェア
Nginx Apacheよりも新しいWebサーバ
IIJ Microsoft Windowsの標準Webサーバ

Webコンテナ

ServletとJSP

Java Servlet

一般的なWebサーバーは「Apache」や「Nginx」を利用しますが、JavaではJava Servlet(Java サーブレット) を利用します。Java Servletは、Webサーバで動作するJavaプログラムのことで、単にServletとも略します。

JSP

JSP(Java Server Page)は、HTMLにJavaを埋め込むスクリプティング機能です。JavaのWebアプリケーションは、データ処理はServlet、HTML表示はJSPと役割を分担して開発します。

Webコンテナ(サーブレットコンテナ)

JavaプログラムをWebサーバーで動作させるソフトウェアをWebコンテナー(サーブレットコンテナ) といいます。ServletとJSPはWebコンテナーにあたります。

Webコンテナの種類

Webコンテナにはいくつか種類があります。

Webコンテナ 説明
Apache Tomcat Javaの定番のWebサーバーでApacheが管理・開発
Glass Fish Jakarta EEの実行環境に含まれる
Jetty Eclipseが管理・開発する軽量Webサーバー
Web Logic Oracleが管理・開発するJakarta EEのWebサーバー
Web Sphere IBMが管理・開発するJakarta EEのWebサーバー

Tomcat

Apache Tomcatとは

Apache TomcatはWebコンテナの代表的なソフトウェアです。「Tomcat」はサーブレットコンテナ、「Apache」はWebサーバーを指し、それぞれ連携して動作します。

名称 役割 説明
Apache Webサーバ HTTPでコンテンツを送受信
Tomcat サーブレットコンテナ Java Servlet / JSPを動作

Tomcatインストール

Pleiadesの場合

Pleiadesの場合、Tomcatがデフォルトでインストールされているので、個別にインストールする必要はありません。

Tomcatフォルダの確認(Mac)

「アプリケーション > Eclipse.app」を右クリックして「パッケージの内容を表示」をクリックします。

「Contents > tomcat」にTomcatの実行ファイルが配置されています。

ソースでインストールする場合(Mac)

もし個別にインストールしたい場合は、公式サイトからTomcatのソースをダウンロードしてインストールします。

Tomcatのソースダウンロード

Apache Tomcatにアクセスして、TomcatのZIPファイルをダウンロードします。今回はバージョン「9.0.62」を利用しますが、その都度合わせてください。

ZIPの解凍

ダウンドードした「apache-tomcat-9.0.62.zip」を解凍し、任意の場所に配置します。

ソースインストール

「アプリケーション」フォルダに配置します。配置場所はどこでも構いませんが、デスクトップや忘れてしまうような場所は避けましょう。

ターミナルを開き、Tomcatの「bin」フォルダに移動します。

% cd /Applications/apache-tomcat-9.0.62/bin/

実行権限の変更

Tomcatの各ファイルに実行権限を与えます。

% chmod 775 *.sh

Tomcat起動

「startup.sh」を実行します。

% ./startup.sh

Tomcat停止

「shutdown.sh」を実行します。

% ./shutdown.sh

演習

問題1

JavaのWebコンテナはどれでしょうか?

1)Apache

2)Nginx

3)Tomcat

4)IIS

問題2

「Java Servlet」の説明で正しいのはどれですか?

1)コンテンツをそのままレスポンスする静的コンテンツ

2)HTMLにJavaプログラムを埋め込むスクリプティング機能

3)Webサーバーで動作するJavaプログラム

4)「Apache」「Nginx」などのサーバーの1つ

TomcatでつくるWebアプリ