サーブレットの基礎知識

サーブレットの動作原理を教えてください

テンアートニ 中越智哉
2000/12/20

  まず、サーブレット(以下Servlet)が通常のJava Applicationと異なるところは、JavaVM上で単独で動作しているのではなく、Servlet Containerという実行環境の上で動作しているということ(図1)、そして、その起動・実行がコマンドラインなどの指示ではなく、クライアント(Webブラウザなど)からのリクエストに応じて行われるということです。

図1 Java Servletの動作にはServlet Containerが必要です

 通常、Webサーバはファイルとして格納されている情報しか送信することができません。そこで、Webサーバに対して拡張(プラグインの追加など)を行うことによって、Servlet Containerとの通信を行うことができるようにします。こうすることによって、以下の動作を実現します(図2)

  • Webサーバ自身で処理できる内容(HTMLファイルや画像ファイルなど)は自分で処理する
  • Webサーバでは処理できない内容(Servletの実行など)は、Servlet Containerに処理を依頼する

図2 Webサーバはリクエストの内容に応じて処理をServlet Containerに依頼します

 具体的には、Servletに対して特定のURLのパスを割り当てて、そのパスが指定された場合は、Servlet Containerに処理を依頼するようにしています。

(例)
/servlet というパスを Servletに割り当てた場合、
http://hostname/servlet/foobar
というURLが指定されると、foobarというServletが実行される。

 WebサーバからServlet Containerに対してリクエスト(URL指定やパラメータ内容)が送信されると、Servlet Containerは、指定されたURLをもとに必要なServletをメモリ上にロードし、インスタンス化します。その後、Servletが実行されます。

Servletでは、

  • リクエスト内容からのパラメータの受信
  • クライアント側への表示内容の送信

 という処理を行うことができます。つまり、クライアントから送信されたパラメータ(フォームに入力した内容など)を解析し、その内容に応じた処理を行い、その処理結果を、HTMLとして表示させる、といった動的なWebページの生成を行うことができるのです。

「Java Solution FAQ」



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間