
今回は…
というテーマでお送りします。

画面から入力する、あれでしょうか…。
興味津々です。よろしくお願いします。

目次
【1】 フォーム
Webブラウザから サーバにリクエストを送る時には
画面から入力したデータを 送りたい場合が、多くあります。
Webアプリは、ユーザの入力に対応して処理をします。
ですので…
欠かせない存在
なのです。
【2】 パラメータ
フォームを使うと
Webブラウザから サーバに リクエストを送るときに…
入力データを送れる事をお話しました。
そして、この クライアント から
サーバ に送られるデータを…
といいます。
リクエストパラメータが送られる時には、必ず…
この例では、name というパラメータ名 で
「たかはし」という値が送られて…
gender というパラメータ名で
「男」という値が送られます。
イメージ的には…
という感じですね。
次に、リクエストパラメータの
送信方法について 見ていきましょう。
前回お話した、GETリクエストと POSTリクエストで
リクエストパラメータの送り方が違います。
このように URLの最後に付加されます。
URLの後に 「 ? 」をつけて、その後に
パラメータ名=値のセットで指定します。
複数のパラメータがある場合
パラメータとパラメータの間は 「 & 」 で区切ります。
フォームで送信した場合でも、Webブラウザの
アドレスバーには、この形式で表示される事となります。
これに対して…
リクエストボディに格納して 送信されます。
内部的なデータとして送信される、ということですね。
GETリクエストと POSTリクエストの使い分け としては…
GETリクエストは、送信したURL(パラメータを含む)を
保存して使う場合(ブックマークやURL共有) が考えられます。
POSTリクエストは、データをアドレスバーに表示させたく
ない場合(個人情報や機密情報の送信)が挙げられます。
【3】 フォーム部品
フォームは HTML の <form> タグで 囲んで 作成します。
フォームを作成しておくと…
ひとまとまり として サーバに送信できます。
リクエストパラメータの形で 送信します。
各リクエストパラメータ送信のために
フォーム部品(コントロール)を使用します。
代表的な フォーム部品として…
② パスワードボックス
③ ラジオボタン
④ チェックボックス
⑤ セレクトボックス
⑥ 送信ボタン
こういった部品があります。
HTMLの中では、form 要素の 子要素 として
フォーム部品を記述することとなります。
ここでは、フォーム部品の基本的なHTML属性を
見ておきましょう。
まずは、type属性です。これは、部品の種類を表します。
テキストボックスとか、ラジオボタンなどの種類ですね。
name属性は、サーバに送るリクエストパラメータの
パラメター名です。
name属性は必須となります。
value属性は、リクエストパラメータの値です。
そして、部品によっては これら 各々の属性を
指定しない場合もあります。

フォーム部品の集まりなんですね。
早く 自分で書けるように 頑張ります。

キーポイントになりそうですね。
HTMLの復習もしながら、進めていきます。
【4】 パラメータ取得
それでは 今度は、Webブラウザで入力して
サーバに送った リクエストパラメータを…
サーブレットで取得する方法を
見ていきましょう…。
サーブレットの
doGet()メソッド、doPost()メソッドは…
リクエストに関する情報 と レスポンスに
関する情報 を 引数 で受け取ります。
HttpServletRequest型の request
HttpServletResponse型の response
です。
このうち、私たちは リクエストに関する情報
(requestという引数) を使って…
リクエストパラメータを 取得することとなります。
では、続いて リクエストパラメータの取得
2ステップを見ていきましょう。
① リクエストパラメータの文字コードを指定
request の setCharacterEncoding メソッドを
使って、引数で 文字コード体系を 指定します。
Webブラウザは リクエストパラメータを送る時に
エンコード(文字をコード化)して送ります。
サーバは、送られてきたリクエストパラメータを
元に戻して 文字として認識する必要がありますが…
Webブラウザで エンコードした 文字コードを
指定する必要があります。
今回は、UTF-8 を使っているので
サンプルプログラムではは UTF-8 を指定します。
…と、少々 難しく思えるかも知れませんが
最初は、コレはお決まりの処理… と考えてOKです。
② リクエストパラメータの値の取得
こちらは、2種類のパターンがあります
❶ パラメータ名に対して値が1つの場合
このパターンが一番多いわけですが…
この場合には、request の getParameter() メソッドを
使って、リクエストパラメータの値を取得します。
この時に、引数に渡すのは パラメータ名。
戻り値として、パラメータの値を文字列で取得できます。
❷ パラメータ名に対して値が2つ以上の可能性のある場合
この場合には、使うメソッドが変わります。
request の getParameterValues() メソッドを 使います。
そして、引数に渡すのは 同じく パラメータ名 ですが
戻り値を String型の配列で受け取ります。
複数の値(文字列)が返ってくる可能性が あるからですね。
なお、これらの メソッド
getParameter() getParameterValues() ともに…
該当パラメータが 送られてこなかった場合には
null を 戻り値として返します。
【まとめ】
画面から入力したデータを
サーバに送る事ができる。
✅ Webブラウザから サーバに
送られるデータ。
✅「パラメータ名」と「値」が
セットになっている。
① テキストボックス
② パスワードボックス
③ ラジオボタン
④ チェックボックス
⑤ セレクトボックス
⑥ 送信ボタン
① リクエストパラメータの
文字コードを指定
② リクエストパラメータの
値の取得
❶ パラメータの値が1つ
request.getParameter()
❷ パラメータの値が複数
request.getParameterValues()



今回も、ご覧いただき、ありがとうございます。