【Java】Servletの書き方|JSPとサーブレットの違い・フレームワークとの関係を解説のカバー画像

【Java】Servletの書き方|JSPとサーブレットの違い・フレームワークとの関係を解説

公開日:2025/03/21最終更新日:2025/03/22

Java Servletは、サーバーサイドでのリクエスト処理を担うJavaの重要な技術です。本記事では、Servletの基礎から実践的な活用方法までを詳しく解説します。


Servletを学ぶことで、JavaのWebアプリケーション開発の基盤をしっかり理解できるでしょう。

1.Java Servletとは?

Java Servlet(ジャバ・サーブレット)は、Javaを用いたWebアプリケーション開発のための技術であり、サーバーサイドで動作するJavaプログラムです。主に以下の役割を担います。

  • クライアントからのリクエスト(HTTPリクエスト)を受け取る

  • 適切な処理を行い、レスポンス(HTMLやJSONなど)を返す

  • セッション管理や認証などのWebアプリケーションの基盤機能を提供

Servletは、Java EE(現 Jakarta EE)の仕様の一部として提供されており、サーバー上で動作するWebアプリケーションを作成するための標準的な仕組みです。

Servletの主な特徴

Servletの特徴として、以下の点が挙げられます。

  • サーバーサイドで動作するプログラム

    クライアントのブラウザやアプリから送信されたリクエストを処理し、必要なデータを返す。

  • HTTPプロトコルとの親和性が高い

    HTTPリクエスト(GET・POSTなど)を処理し、HTMLやJSONレスポンスを生成する。

  • プラットフォームに依存しない

    Javaの「Write Once, Run Anywhere(WORA)」の特性を持ち、異なるOS環境でも動作する。

  • セッション管理が可能

    クッキーやセッションオブジェクトを利用し、ユーザーごとの状態管理ができる。

  • 他のフレームワークと組み合わせて利用される

    現代では、Spring MVCなどのフレームワークの基盤技術として使われることが多い。

Servletの歴史と進化

Java Servletは、1997年に登場しWebアプリケーション開発の基本技術として普及しました。当初はCGI(Common Gateway Interface)に代わる技術として注目され、より効率的なリクエスト処理を実現しました。


現在ではJakarta EEの一部としてServletは進化を続けていますが、Spring Bootなどのフレームワークの台頭により、Servletを直接書く機会は減少しています。そのためサーブレットは古いといわれることもありますが、依然としてWebアプリの基盤技術として重要な役割を担っています。

2.Java ServletとJSPの違い

JSP(JavaServer Pages)は、HTML内にJavaコードを埋め込むことができる技術であり、Java Servletの拡張機能として登場しました。


Servletと異なり、HTMLページの中に直接Javaのコードを記述できるため、動的なWebページの開発が容易になります。

JSPの主な特徴

JSPの主な特徴は下記の通りです。

  • HTMLとJavaの統合

    JSPでは、スクリプトタグを使用してJavaコードを埋め込むことができる。

  • サーバーサイドでの動的処理

    ユーザーのリクエストに応じて、動的にページの内容を変更できる。

  • コンパイル不要

    JSPファイルはServletに変換され、サーバー上で自動的にコンパイルされるため、手動でコンパイルする必要がない。

  • JavaBeansやJSTLの利用

    再利用可能なコンポーネント(JavaBeans)や、カスタムタグ(JSTL)を使うことで、よりメンテナブルなコードを書くことが可能。

Servlet(サーブレット)とJSPの違い

Servletは、クライアントからのリクエストを処理し、データベースのやり取りなどのビジネスロジックを担当します。一方でJSPは、Servletから受け取ったデータを使って画面(HTML)を生成する役割を持ちます。


例えば、ユーザーがログインするWebアプリを作成するとき、以下のように役割分担を行います。

  • Servlet(LoginServlet)

    ユーザー情報をデータベースと照合し、認証の処理を行う

    認証結果(成功・失敗)をJSPに渡す

  • JSP(loginResult.jsp)

    Servletから受け取った認証結果を元に、適切なメッセージを表示する

3.Java Servletの基本的な書き方

Java Servletは、Webアプリケーションのリクエスト処理を行うサーバーサイド技術の基盤です。Servletの基本的な書き方を理解することで、クライアントからのリクエストを受け取り、適切なレスポンスを返す仕組みを学ぶことができます。

Servlet(サーブレット)の作成手順

Java Servletを作成するためには、以下のステップを踏みます。

  1. Servletクラスを作成

    javax.servlet.http.HttpServletを継承したクラスを作成。

  2. リクエスト処理メソッドを実装

    doGet()やdoPost()などのメソッドをオーバーライド。

  3. web.xmlまたはアノテーションでURLマッピング

    クライアントがアクセスするURLとServletクラスを紐づける。

  4. Tomcatなどのサーバーでデプロイ

    Servletを動作させるためにサーバー環境を整える。

まずは、「Hello, World!」を表示する簡単なServletを作成してみましょう。以下のコードを使って、基本的なServletを作成できます。

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


// サーブレットのURLマッピング

@WebServlet("/hello")

public class HelloServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;


    // GETリクエスト処理

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");

        PrintWriter out = response.getWriter();

        out.println("<html><body>");

        out.println("<h1>Hello, World!</h1>");

        out.println("</body></html>");

    }

}

doGet()とdoPost()の使い分け

Servletでは、HTTPのリクエストメソッドによって処理を分けることができます。主にdoGet()とdoPost()を使用します。


GETリクエストの例

protected void doGet(HttpServletRequest request, HttpServletResponse response)

        throws ServletException, IOException {

    String name = request.getParameter("name");

    response.setContentType("text/html;charset=UTF-8");

    PrintWriter out = response.getWriter();

    out.println("<html><body>");

    out.println("<h1>Hello, " + name + "!</h1>");

    out.println("</body></html>");

}

http://localhost:8080/app/hello?name=Johnにアクセスすると、「Hello, John!」と表示します。


POSTリクエストの例

protected void doPost(HttpServletRequest request, HttpServletResponse response)

        throws ServletException, IOException {

    String username = request.getParameter("username");

    response.setContentType("text/html;charset=UTF-8");

    PrintWriter out = response.getWriter();

    out.println("<html><body>");

    out.println("<h1>Welcome, " + username + "!</h1>");

    out.println("</body></html>");

}

フォームからPOSTで送信されたデータを処理し、画面に表示します。


関連記事

Javaのオーバーライド攻略|オーバーロードとの違いや使い方・条件・戻り値などわかりやすく解説

4.Java Servletの実行環境:Tomcatのセットアップ

Apache Tomcatは、Java ServletやJSPを動作させるためのオープンソースのサーバー(Servletコンテナ)です。Tomcatは下記のような特徴を持ちます。

  • 軽量で高速

    Java EEのフルスタックアプリケーションサーバー(JBoss, GlassFishなど)よりも軽量。

  • Servlet & JSPの実行環境

    Servlet APIやJSPをサポートしており、簡単にWebアプリを動作させることが可能。

  • 開発環境に最適

    本番環境でも利用されるが、特に開発・テスト環境での使用が一般的。

Tomcatのインストールと設定手順

公式サイト(Apache Tomcat)から最新のTomcatをダウンロードしましょう。ダウンロードが完了したら、インストールを開始します。

Windowsの場合

  1. ZIPファイルを解凍(例:C:\tomcat\に配置)

  2. binフォルダ内のstartup.batを実行

  3. ブラウザでhttp://localhost:8080にアクセスしてTomcatが起動しているか確認

  4. シャットダウンする場合は、binフォルダ内のshutdown.batを実行

macOSの場合

  1. ターミナルでtar.gzを展開

  2. 実行権限を付与

chmod +x /opt/tomcat/bin/*.sh

  1. Tomcatの起動

/opt/tomcat/bin/startup.sh

TomcatでServletを動作させる方法

Tomcatでは、webapps/配下にデプロイされたアプリが実行されます。

1.WEB-INF/web.xmlにURLマッピングを記述

<web-app>

    <servlet>

        <servlet-name>HelloServlet</servlet-name>

        <servlet-class>com.example.HelloServlet</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>HelloServlet</servlet-name>

        <url-pattern>/hello</url-pattern>

    </servlet-mapping>

</web-app>

2.classes/配下にコンパイル済みの.classファイルを配置

3.Tomcatを再起動

4.http://localhost:8080/myapp/helloにアクセスし、Servletの動作を確認


次に、Eclipseを使用してTomcatでServletを実行します。

1.EclipseにTomcatを設定

ウィンドウ > 設定 > サーバー > Runtime 環境 でTomcatを追加

2.Servletプロジェクトを作成

新規 > Dynamic Web Project を選択

3.Servletクラスを作成

@WebServlet("/hello")

public class HelloServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");

        PrintWriter out = response.getWriter();

        out.println("<h1>Hello, World!</h1>");

    }

}

4.EclipseからTomcatを起動

サーバータブ > Tomcat を右クリック > 開始

http://localhost:8080/プロジェクト名/helloにアクセスし、動作確認


関連記事

Java開発環境構築|Windows・Mac・Linux別開発環境手順とおすすめIDEを解説

5.Java Servletとフレームワーク

Java Servletはサーバーサイドでのリクエスト処理の基本技術ですが、近年は直接Servletを記述することは減り、フレームワークを利用するのが一般的になっています。

Java Servlet

フレームワーク

開発のしやすさ

低い(コード量が多い)

高い(簡潔な記述)

メンテナンス性

低い(手動で設定)

高い(設定が自動化)

機能の充実度

基本機能のみ

DI, AOP, ORM など強力な機能

プロジェクト規模

小規模向け

中〜大規模向け

そのため、Java Servletは「フレームワークの内部構造を理解するための基礎」として重要であり、実際の開発ではSpring MVCやJakarta EEを活用する方が効率的です。


関連記事

Javaフレームワーク徹底解説【2025年版】


【Javaアプリ開発|初心者必見】手順やおすすめの練習方法を教えます!効率化の手段やアプリ例も解説!

6.まとめ

Java Servletは、Javaを用いたWebアプリケーション開発の基本技術として広く活用されています。Servletの概念やJSPとの違いを理解し、適切なリクエスト処理方法を学ぶことで、Webアプリ開発のスキルを向上させることができます。


また、Tomcatのセットアップ方法やServletの実装手順を習得することで、実際の開発環境での運用がスムーズになります。


現在ではSpring MVCなどのフレームワークが主流ですが、Servletの基礎を理解することは、Webアプリ開発の土台を築く上で重要です。


本記事が皆様にとって少しでもお役に立てますと幸いです。


フリーランスボード」は、数多くのフリーランスエージェントが掲載するITフリーランスエンジニア・ITフリーランス向けの案件・求人を一括検索できるサイトです。


開発環境、職種、単価、稼働形態、稼働日数など様々な条件から、あなたに最適なフリーランス案件・求人を簡単に見つけることができます。

単価アップを目指す方や、自分の得意なスキルを活かせる案件に参画したい方は、ぜひ「フリーランスボード」をご利用ください。

無料で登録したらスカウトを待つだけ フリーランスの新しい仕事探しを始めよう

フルリモート案件を 無料登録した方限定で配信中

目次

1.Java Servletとは?

Servletの主な特徴

Servletの歴史と進化

2.Java ServletとJSPの違い

JSPの主な特徴

Servlet(サーブレット)とJSPの違い

3.Java Servletの基本的な書き方

Servlet(サーブレット)の作成手順

doGet()とdoPost()の使い分け

4.Java Servletの実行環境:Tomcatのセットアップ

Tomcatのインストールと設定手順

Windowsの場合

macOSの場合

TomcatでServletを動作させる方法

5.Java Servletとフレームワーク

6.まとめ