カテゴリ: Servlet 更新日: 2025/10/11

Java ServletのHttpServletのdoDeleteメソッド完全ガイド!初心者でもわかるDELETEリクエストの使い方と実装方法

HttpServletのdoDeleteメソッド
HttpServletのdoDeleteメソッド

先生と生徒の会話形式で理解しよう

生徒

「Servletでデータを削除するにはどうすればいいですか?」

先生

「それにはDELETEリクエストを使います。JavaのHttpServletクラスではdoDelete()メソッドを使って処理できますよ。」

生徒

「GETやPOSTとは何が違うんですか?」

先生

「それではdoDelete()メソッドの基本と、DELETEリクエストの使い方を一緒に見ていきましょう。」

1. doDeleteメソッドとは

1. doDeleteメソッドとは
1. doDeleteメソッドとは

doDelete()メソッドは、JavaのHttpServletクラスに用意されているメソッドの一つで、HTTPのDELETEリクエストを処理するために使います。

DELETEは、クライアントから指定されたリソースを削除する目的で使用されるHTTPメソッドで、REST APIでは標準的に使われています。

このdoDelete()をオーバーライドすることで、URLパラメータなどをもとに対象データを特定し、削除処理を実装できます。

2. DELETEとPOST・PUTの違い

2. DELETEとPOST・PUTの違い
2. DELETEとPOST・PUTの違い

POSTPUTと同様に、DELETEもサーバー上のデータを操作するリクエストですが、目的が異なります。

  • POST:新しいリソースの作成や一部更新
  • PUT:既存リソースの完全な上書き
  • DELETE:指定されたリソースの削除

このように、それぞれ用途が明確に分かれているため、適切なメソッドを選ぶことでAPI設計が整理され、保守性も向上します。

3. doDeleteの基本的な実装方法

3. doDeleteの基本的な実装方法
3. doDeleteの基本的な実装方法

ServletでdoDelete()メソッドを使ってリクエストを処理する方法は以下の通りです。


import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class DeleteServlet extends HttpServlet {
    @Override
    protected void doDelete(HttpServletRequest request, HttpServletResponse response)
            throws IOException {
        String id = request.getParameter("id");

        if (id == null) {
            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
            response.getWriter().write("IDが指定されていません。");
            return;
        }

        // ここで削除処理を実行する(例:データベースから削除)

        response.setStatus(HttpServletResponse.SC_OK);
        response.getWriter().write("ID: " + id + " のデータを削除しました。");
    }
}

この例では、クエリパラメータからIDを取得し、それを使って削除処理を行う流れになっています。

4. DELETEリクエストの送信方法

4. DELETEリクエストの送信方法
4. DELETEリクエストの送信方法

ブラウザから直接DELETEリクエストを送ることはできませんが、curlやPostmanなどのツールを使えば簡単にテストできます。


curl -X DELETE "http://localhost:8080/api/delete?id=123"

このようにして、ServletのdoDelete()メソッドが正しく動作しているかを確認できます。

5. パスパラメータと連携した削除処理

5. パスパラメータと連携した削除処理
5. パスパラメータと連携した削除処理

より実用的なREST API設計では、IDをクエリパラメータではなくパスで受け取ることが一般的です。例えば、/user/123のようなURLです。

その場合は、HttpServletRequestgetPathInfo()メソッドを使ってパスからIDを取り出します。


String path = request.getPathInfo(); // /123
String id = path != null ? path.substring(1) : null;

この方法を使えば、より直感的でRESTfulなURL設計が可能になります。

6. doDeleteでのエラーハンドリング

6. doDeleteでのエラーハンドリング
6. doDeleteでのエラーハンドリング

doDelete()を実装する際は、適切なエラーハンドリングも重要です。

  • SC_BAD_REQUEST(400):リクエストに必要な情報がない
  • SC_NOT_FOUND(404):削除対象のデータが見つからない
  • SC_INTERNAL_SERVER_ERROR(500):削除処理中にサーバーエラーが発生

レスポンスの内容とステータスコードを丁寧に設計することで、APIの信頼性が向上します。

7. doDeleteが活躍するユースケース

7. doDeleteが活躍するユースケース
7. doDeleteが活躍するユースケース

doDelete()メソッドは、次のような場面で利用されます。

  • ユーザーアカウントの削除
  • 投稿・コメントの削除
  • 設定やファイルの削除
  • 管理画面での一括削除操作

特にRESTful APIの設計では、DELETEは必須のメソッドとして活用されます。

8. セキュリティと認可処理

8. セキュリティと認可処理
8. セキュリティと認可処理

doDelete()でリソースを削除する場合、誤操作や不正アクセスを防ぐためのセキュリティ対策が欠かせません。

削除前に、対象リソースの所有者を確認したり、認可チェック(ログインユーザーの確認)を行うことが重要です。

また、ログ記録を残しておけば、トラブル発生時の原因調査にも役立ちます。

関連記事:
カテゴリの一覧へ
新着記事
Javaのラムダ式で戻り値とvoidの使い方を解説!returnの書き方も完全理解
Javaのメソッド参照とコンストラクタ参照の使い方を完全ガイド!初心者向けに::とClass::newを解説
Javaのラムダ式の書き方を徹底解説!アロー演算子->の基本と使い方
Thymeleafのth:eachの使い方!ループ回数やindexなどの繰り返し処理を学ぼう
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Spring Boot JPA入門:エンティティ/リポジトリの基本と作り方
No.3
Java&Spring記事人気No3
Javaの@Validアノテーションを徹底解説!初心者でもわかる入力値検証の基本
No.4
Java&Spring記事人気No4
Springの@Repositoryアノテーションの使い方を徹底解説!初心者でもわかるSpringフレームワークのデータアクセス