バックエンドの用語一覧へ
このページの目次

サーブレットコンテナとは?

読み方:サーブレットコンテナ

最終更新:2026/08/18

3秒でわかる

Servlet を動かすための実行環境。HTTP の受け口とスレッド管理を肩代わりし、開発者はリクエスト処理する部分だけを書けばよくなります。

もう少し詳しく

どういうものか

サーブレットコンテナは、Java の Servlet 仕様に沿ったプログラムを動かす実行環境です。Tomcat、Jetty、Undertow などが代表例です。ソケットを開いて接続を待ち受け、届いたバイト列を HTTP リクエストとして解釈し、担当の Servlet を呼び出し、返ってきた内容を HTTP レスポンスとして送り返すところまでを引き受けます。

Servlet の生成と破棄、リクエストごとのスレッドの割り当て、セッションの管理も、コンテナ側の仕事です。

なぜ必要か

これが無いと、アプリケーションごとに TCP の待ち受けから HTTP の解析、同時接続の捌き方までを自前で書くことになります。コンテナが共通部分を持つことで、開発者はリクエストを受けて何を返すかだけに集中できます。仕様が標準化されているので、同じ war ファイルを Tomcat でも Jetty でも動かせるという移植性も生まれます。

具体例

@WebServlet("/hello") public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws <a href="/glossary/ioexception" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">IOException</a> { String name = req.getParameter("name"); res.setContentType("text/plain; charset=UTF-8"); res.getWriter().write("こんにちは " + name); } }

この doGet を呼ぶのはコンテナです。開発者側に main メソッドはありません。Spring Boot で組む場合も、内部では組み込みの Tomcat が起動して同じ役割を果たしています。

つまずきやすいところ

Servlet はリクエストごとに作り直されず、ひとつのインスタンスが複数スレッドから同時に呼ばれます。そのため、Servlet のフィールドにリクエスト固有の値を保存すると、別の利用者の値が混ざります。状態はローカル変数かリクエスト属性に置きます。

もうひとつは、アプリケーションサーバーとの混同です。Tomcat は Servlet と JSP を動かすコンテナで、EJB や JTA まで含む Jakarta EE のフルセットを備えたサーバー(WildFly など)とは範囲が違います。用件がウェブ層だけならコンテナで足ります。

覚え方

コンテナが「電話を取る受付」、Servlet が「用件に答える担当者」です。受付を自分で作る必要はありません。

知識のつながり

サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

現在地サーブレットコンテナバックエンド

LEARN BY DOING

この用語を、教材で使ってみる

直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

Javaコースの全編を見る