サーブレットとは、Webサーバ側で動作するJavaアプレットで、Java版のCGIみたいなものです。
サーブレットは、Webサーバの一部として動作するため、セッション管理を行うこともできます。
また、常駐している分、実行速度も速くなります。
サーブレットを実行するためには、Java Server APIに対応したWebサーバが必要です。
ApacheなどのWebサーバの場合、Java Server APIに対応するためのプログラムと連携することで、対応することができます。
Servlet APIは、ApacheなどのWebサーバでサーブレットを動作させるために必要なモジュールです。
Servlet APIは、Javaエクステンションで、javaxの標準パッケージとして提供されます。
しかし、サーブレットは、クライアントでは使わないため、すべてのプラットフォームでサポートされるわけではありません。
Servlet APIには、ApacheのJakartaプロジェクトのTomcatなどがあります。
Tomcatは、Sun Microsystemsから、ソースライセンスの提供を受けてリリースされています。
この他にも、Sun Microsystemsの提供する、JSDK(Java Servlet Development Kit)や、JSWDK(JavaServer Web Development Kit)もありますが、Servlet APIのバージョンは古いです。
サーブレットコンテナとは、Servlet APIモジュールとともに、ApacheなどのWebサーバをサーブレットを動作させるために拡張するためのモジュールで、サーブレットエンジンとも呼びます。
サーブレットコンテナには、Tomcat3+mod_dkや、Tomcat4+mod_webappや、JRunなどがあります。
mod_dkやmod_webappは、JServを汎用的にして、Apache以外のWebサーバにも対応したものです。
Apache + mod_webapp + Tomcat4.0 におけるサーブレット環境の処理の流れを以下に示します。
+-------------------------------+
+----------+ 80|+------------+ |
| ブラウザ |---->|| apache | |
+----------+ || +----------+ 8008+----------+|
|| |mod_webapp|---->| tomcat ||
|+-+----------+ +----+-----+|
| | |
| +----+-----+|
| | servlet ||
| +----------+|
| +---------------+
| | JDK1.3 |
+---------------+---------------+
|
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class クラス名 extends HttpServlet {
サーブレットの処理
}
|