ServeltによるPOST受信処理

クライアントからPOST要求があった場合、ServletではPOST受信の処理が行われます。その時に呼び出されるのが、HttpServletクラスのdoPostメソッドです。

この節では、Servletを使ってPOST送信を処理する方法を見てみましょう。

○ ファイル

プロジェクトに次のようなServletを追加してください。

パッケージ名 test.servlet
クラス名 PostServlet
スーパークラス名 javax.servlet.http.HttpServlet

サンプルダウンロード

○ プログラム

doPostメソッドを追加したクラスに記述します。ここでは前節と同様にdoPostメソッドの仕様に従って記述することができますが、Eclipseの機能を使って追加するメソッドを選択して記述させることもできます。前節を参考に「メソッドをオーバーライド/実装」ダイアログボックスを表示し、次のように選択してください。

追加するメソッドを選択する
追加するメソッドを選択する

次のように追加したメソッドにプログラムを記述してください。

PostServlet.java

  1. package test.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. @WebServlet("/postservlet")
  10. public class PostServlet extends HttpServlet {
  11.     @Override
  12.     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  13.         //クライアントへの出力準備をする
  14.         resp.setContentType("text/html;charset=utf-8");
  15.         PrintWriter pw = resp.getWriter();
  16.         
  17.         //クライアントにHTMLを書き出す
  18.         pw.println("POST送信の応答です。");
  19.     }
  20. }

○ ファイル

POST送信用のWebページを作成します。プロジェクトに次のようなファイルを追加してください。

ファイル名 PostSend.html

サンプルダウンロード

プロジェクトを右クリックして表示されるメニューより「新規(W)」―「その他(O)...」をクリックします。すると次の図のように「ウィザードを選択」ダイアログボックスが表示されます。そのダイアログの「ウィザード(W):」内の「Web」―「HTMLファイル」を選択します。その後、「次へ(N) >」ボタンをクリックします。

新しいファイルの選択画面
新しいファイルの選択画面

すると、次の図のように「新規HTMLファイル」ダイアログボックスが表示されるので、「ファイル名(M):」に「PostSend」を入力して「完了(F)」をクリックします。

ファイル名を指定する
ファイル名を指定する

すると、次の図のように「パッケージ・エクスプローラー」のプロジェクト内にHTMLファイルが配置されます。

HTMLファイルが追加された
HTMLファイルが追加された

○ プログラム

次のようにHTMLを入力してください。

PostSend.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>POST受信処理テスト</title>
  6. </head>
  7. <body>
  8.     <form action="postservlet" method="POST">
  9.         <input type="submit" value="送信">
  10.     </form>
  11. </body>
  12. </html>

○ 実行結果

コンテキストの定義を更新した後で、次のURLを入力して実行してみましょう。

http://localhost:8080/WebApp/PostSend.html

実行結果
実行結果

○ 解説

今回のサンプルはPostSend.htmlからアクセスします。このファイルの8行目で、フォームの送信先として「postservelt」、送信メソッドの指定を「POST」に指定しています。9行目で指定しているSubmitボタンをクリックすることで「http://localst:8080/WebApp/postservlet」にPOST要求が送信されます。

POST要求がPostServletクラスのdoPostメソッドで処理されます。このメソッドでは前節のdoGetメソッドと同様にクライアントのWebブラウザーにメッセージを表示させます。

前へ   次へ