【Java & Tomcat】サーブレットからフォームデータを取得する(サンプルコード付き)

  • このエントリーをはてなブックマークに追加
  • Pocket

Webアプリケーションを作成するにあたり、ブラウザへの出力ばかりではなく、フォームを使ってユーザー側からの入力を取得する場合がある。ここではその方法について説明する。

フォームデータの取得の仕方

フォームデータとは、Webページに入力されたデータのことである。このデータには様々なものがある。テキストを入力するテキストフィールド、ラジオボタンの選択、リストからの選択データなどである。

テキスト入力フィールドの例を考えてみよう。

サーブレットが入力されたフォームデータを取得するために、クライアントからリクエスト情報が入っているHttpServletRequestオブジェクトに対してgetParameterメソッドを使う。ラジオボタンのデータはリクエスト情報の中にパラメータとして含まれている。このメソッドにテキスト入力フィールドのパラメータの名前(name)を引数として与えることによって入力されたテキスト入力フィールドのデータを取得することができる。

書き方の基本は簡単だ。

HttpServletRequestオブジェクト. getParameter (パラメータの名前);

実際のHTML画面のフォームデータ入力のコードはこうなる。

<input type="text" name="item1">

その値を取得するサーブレット側のコードはこうなる。

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

パラメータを取得するAPI仕様

getParameter(java.lang.String name)

戻り値の型

java.lang.String

内容

リクエストのパラメータの値を文字列として戻す。もしパラメータがなければnullを戻す。リクエストパラメータはリクエストともに送られる付加的な情報である。HTTPサーブレットのために、パラメータが参照文字列か送信されたフォームデータに含まれている。

パラメータがただひとつだけの値を持っていることを確かめた時に、このメソッドを使うべきである。もしパラメータがひとつ以上の値を持っているならば、getParameterValues(java.lang.String)を使うべきである。

もし、複数のパラメータで使うならば、戻される値はgetParameterValuesによって返される配列の最初の値である。(更なる詳細は、仕様を参照してください)

引数:指定されたパラメータの名前

戻り値:パラメータのひとつの値を表す文字列。

参照:getParameterValues(java.lang.String)

フォームデータを取得するサンプルプログラム

このサンプルプログラムは、フォームデータとしてふたつの項目を入力する。そのデータを取得したサーブレットは、入力項目をそのまま項目1と項目2としてレスポンスの画面に表示する。

サーブレットの配置とプログラムのコードは次のようになっている。

最初にHTMLで書かれたフォームデータ入力画面のコードを示す。

次に、HTML画面からリクエストを受け取るサーブレットのコードを示す。

実行結果

ブラウザにURL:http://localhost:8080/Servlet/formdata.htmlを入力し、Enterを押す。

表示されるブラウザ画面:

項目1に「aaa」項目2に「bbb」と入力し、入力実行ボタンを押す。

表示されるブラウザ画面:

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1] アノテーションの宣言をする。
  • [2] HttpServletを継承して、ServletFormDataクラスを定義する。
  • [3] doGet()メソッドをオーバーライドして定義する。
  • [4] Content Typeを設定する。
  • [5] 入力されたフォームデータの項目1を取得し、変数item1に代入する。
  • [6] 入力されたフォームデータの項目2を取得し、変数item2に代入する。
  • [7] HTMLを出力するためのPrintWriterオブジェクトを取得する。
  • [8]-[12] PrintWriterオブジェクトに「入力された項目を表示します。」と表示し、続いて項目1の値(変数item1)と項目2(変数item2)の値を表示するHTMLコードを出力する。

まとめ

サンプルプログラムをご覧頂いてもわかる通り、フォームを使って入力されたデータを元に様々な処理を行う事ができる。HTMLとして出力している部分を中心に、自分なりに色々と変更してみよう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*

ゼロからエンジニアを目指す方へ
短期間でエンジニアになる方法

必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報を無料でお届け

資料を見てみる