サーブレットとは、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 { サーブレットの処理 } |