サーブレット(Servlet)とは、Java言語で書かれた、Webサーバー上で動作してWebページを動的に生成するプログラムのことです。利用者からのリクエストに応じて、その場で内容の異なるページを組み立てて返す仕組みとして、Javaを使ったWeb開発の基盤となってきました。
現実世界に例えると、サーブレットは注文を受けてその場で調理する飲食店の厨房のようなものです。あらかじめ決まった1枚の紙(静的なページ)を渡すのではなく、注文(リクエスト)の内容に応じて、その都度違う一皿(ページ)を作り上げます。
サーブレットの特徴
サーブレットの特徴は、利用者からのリクエストを受け取り、必要な処理を行ったうえで、結果をHTMLなどの形式に組み立てて応答する点です。データベースへの問い合わせや計算処理など、静的なファイルだけでは実現できない動きのあるWebページを作れます。
サーブレットの仕組み
利用者がブラウザからWebサーバーへアクセスすると、サーバー上で該当するサーブレットが呼び出され、リクエストの内容に応じた処理を実行します。処理結果はHTMLなどの形式に整えられ、レスポンスとして利用者のブラウザへ送り返されます。
サーブレットコンテナとの関係
サーブレットは単独では動作せず、「サーブレットコンテナ」と呼ばれる実行環境の上で動かす必要があります。サーブレットコンテナは、リクエストの受け取りやサーブレットの呼び出しといった土台の部分を管理する役割を担っており、Apache Tomcatがその代表的な実装として知られています。
JSPとの違い
| 項目 | サーブレット | JSP |
|---|---|---|
| 基本の書き方 | Javaのコードの中にHTMLを埋め込む | HTMLの中にJavaのコードを埋め込む |
| 向いている用途 | 複雑な処理のロジック部分 | 画面の見た目(レイアウト)部分 |
サーブレットのライフサイクル
サーブレットは、「初期化」「リクエストへの応答」「破棄」という決まった手順(ライフサイクル)に沿って管理されます。最初のリクエスト時に一度だけ初期化が行われ、以降のリクエストにはその状態を使い回すことで、効率よく処理を行えるよう設計されています。
メリット
サーブレットを使う最大の利点は、Javaの豊富な機能やライブラリを活かしながら、本格的なWebアプリケーションを開発できることです。オブジェクト指向の考え方をそのまま活用でき、大規模で複雑な業務システムの開発にも耐えられる構造を作りやすくなります。
デメリット・現在の位置づけ
一方で、HTMLをJavaのコードの中に文字列として書く必要があり、画面のデザインが複雑になるほどコードが読みにくくなるという弱点があります。そのため実際の開発では、見た目の部分をJSPやテンプレートエンジンに任せ、サーブレットは処理のロジックに専念させる使い分けが一般的です。
身近な例
ログイン後に表示される「田中さん、こんにちは」のような、利用者ごとに内容が変わるページは、サーブレットのようなサーバーサイド技術によって動的に組み立てられているものの代表例です。会員制サイトの多くが、こうした仕組みの上で動いています。
あわせて知っておきたい用語
- JSP(JavaServer Pages):
HTMLの中にJavaのコードを埋め込める、画面表示に向いた技術です。 - Apache Tomcat(アパッチ・トムキャット):
サーブレットを動かすための、代表的なサーブレットコンテナです。 - Java(ジャバ):
サーブレットの記述に使われる、オブジェクト指向のプログラミング言語です。 - Webサーバー(Web Server):
サーブレットが動作する土台となる、Webページを配信するサーバーです。


コメント