まるご サーブレットとJSP 5:)
今回は
5章〜
フォームについて
フォームを使うとユーザーがWebアプリケーションにデータを入力できるようになるんだって
アンケートとかお買い物とかできるな:)
一般的なアプリケーションはユーザーの入力に対応して処理する仕組みをもっていて
Webアプリケーションではフォームでそれをやる
フォームを使えば入力項目をひとまとめにしてサーバサイドプログラムに送信することができる
フォームはWebアプリケーションにかかせないものだ
フォームはHTMLの複数のタグを組み合わせて作成する
テキストボタン・ラジオボタン・送信ボタンなど入力項目のひとまとまりがフォームなんだって
フォームの中にはデータ入力や送信のための部品をいれる
たとえば送信ボタンとかテキストボックスとか
データを送信するには3つ知らないといけないことがある
1. HTMLにはデータ入力や送信のための部品が用意されていて各部品はタグを使ってつくる
気をつけなくちゃいけないのは各部品には識別のために固有の名前をつける必要があること
名前の付け忘れや複数の部品で重複する名前をつけると正しくデータを送信できない(例外もまぁあるけど)
2. 部品をいれるフォームの作成
フォームはformタグで作ってこれに部品を入れる
formタグの外に部品を書くとその部品の値は送信されないから注意!
1つのformタグにつき送信ボタンは原則一個!不要な混乱を招かないように!
formタグはaction属性(送信先となるサーバサイドプログラムを指定)とmethod属性(リクエストメソッドをGETリクエストにするかPOSTリクエストにするか指定する)を使って送信に関する情報を指定する必要がある
3. データ送信のしくみ
フォームの送信ボタンをクリックするとフォームの部品に入力したデータは「部品名=値」(リクエストパラメータ)の形式で送信される
リクエストパラメータは送信の際にURLエンコードという変換処理(ブラウザが使用している文字コードをもとにする)が行われる
そのため変換されたリクエストパラメータを受け取ったサーバサイドプログラムでは
URLエンコードに使用された文字コードと同じ文字コードを使って元に戻す必要がある
リクエストパラメータを送信するリクエストのリクエストメソッドにはGETまたはPOSTを使用する
どちらのリクエストメソッドを使用するかはフォームの作成者がformタグのmethod属性で決定する
GETリクエスト(リクエストによって新しい情報(Webページなど)を取得するような場合
POSTリクエスト(リクエストによってフォームに入力した情報を登録するような場合
に使用する
リクエストパラメータの取得方法
リクエストパラメータはアプリケーションサーバによってHttpServletRequestインスタンスに格納され送信先のサーブレットクラスまたはJSPファイルに渡される
リクエストパラメータは応用ができる
たとえばアマゾンでなにか買うとあなたにおすすめのなんちゃら〜とかでてくる
あれは利用者はみえないけれどこっそりリクエストパラメータが付加されてサーバに送信されている
これを行う方法が2つあって
①hiddenパラメータを使用する(送信したいリクエストパラメータの名前と値をname属性とvalue属性で指定する)
②リクエスト先の指定に「?名前=値」をつける(リンクのhref属性、フォームのaction属性で指定するるクエスト先に?をつけその後ろにリクエストパラメータを追加する)
5章はこんな感じ
・p138と139がわからないからきいておくこと
・暗黙のオブジェクトについてきいておく
スクリプト式の中には暗黙オブジェクトという宣言せずに利用できる特別なオブジェクトがある(定義済みのため)
・ Eclipseでエラーが出たけど何が違うかわからないからきいておくこと
次は6章MVCモデルだ!