ASH | サーバ | セキュリティ | Linux | FreeBSD | DB | Web | CGI | Perl | Java | XML | プログラム | ネットワーク | 標準 | Tips集

サーブレットについて

サーブレットとは

サーブレット(Servlet)

 サーブレットとは、Webサーバ側で動作するJavaアプレットで、Java版のCGIみたいなものです。
 サーブレットは、Webサーバの一部として動作するため、セッション管理を行うこともできます。 また、常駐している分、実行速度も速くなります。
 サーブレットを実行するためには、Java Server APIに対応したWebサーバが必要です。 ApacheなどのWebサーバの場合、Java Server APIに対応するためのプログラムと連携することで、対応することができます。

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

主なメソッド一覧

init(ServletConfig)
 サーブレットが起動されたときに動作する初期化処理。
 パラメータにServletConfigオブジェクトを渡す。
service(ServletRequest, ServletResponse)
 クライアントからのリクエストがあったときに動作するサーブレットのメイン処理。
 Webサーバーは、リクエストを実行するためにservice()を呼び出す。
 通常は、doGetやdoPostメソッドを利用するが、GETでもPOSTでも共通な処理にする場合に利用。
doGet(ServletRequest, ServletResponse)
 クライアントからGETメソッドによるリクエストがあったときに動作するサーブレット処理。
doPost(ServletRequest, ServletResponse)
 クライアントからPOSTメソッドによるリクエストがあったときに動作するサーブレット処理。
destroy()
 サーブレットが消滅する直前に動作するサーブレットの終了処理。
getServletConfig()
 ServletConfigオブジェクトを返却。
getServletInfo()
 サーブレットの説明や著作権情報の文字列を返却。
getInitParameter(name)
 サーブレットへのパラメータを取得する


Copyright (C)1995-2002 ASH multimedia lab.
mail : info@ash.jp