カテゴリ: 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()でリソースを削除する場合、誤操作や不正アクセスを防ぐためのセキュリティ対策が欠かせません。

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

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

サーブレットやJSPの基礎を体系的に理解したい人には、 定番の入門書がこちらです。

スッキリわかるサーブレット&JSP入門をAmazonで見る

※ Amazon広告リンク

カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「NotLike」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
SpringDataJPAのJPAクエリメソッド「Like」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Java
JavaのLocalDateTimeクラスとplusMinutesメソッドを完全ガイド!初心者でもわかる分単位の時間操作
新規投稿
New4
Spring
SpringDataJPAのJPAクエリメソッド「IsNotNull」と「NotNull」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Java
JavaのBooleanクラスの使い方を完全ガイド!初心者でもわかる真偽値の操作
No.3
Java&Spring記事人気No3
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.4
Java&Spring記事人気No4
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.5
Java&Spring記事人気No5
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
No.6
Java&Spring記事人気No6
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
No.7
Java&Spring記事人気No7
Spring
SpringのModelクラスとaddAttributeメソッドの使い方を完全ガイド!初心者でも安心
No.8
Java&Spring記事人気No8
Spring
SpringDataJPAのJPAクエリメソッド「EndingWith」の使い方を完全ガイド!初心者向け解説