HTTPプロトコルとJSP (2)
データベース論
第4回
この講義に関するWebページ
http://www.wakhok.ac.jp/~tomoharu/db2003/
きょうの内容


HTMLのフォームから入力したデータと、HTTP の
要求 (request) の関係。
JSP と HTTPの要求・応答との関係。
HTTP
HTMLのフォーム (1)
画面イメージ

Webブラウザから何かを入力してもらうために使う。
HTMLのフォーム (2)
HTMLのソース
<p>姓名を入力してください:</p>
<form method=“get” action=“name.jsp”>
<p>姓: <input type=“text” name=“familyName”
/></p>
<p>名: <input type=“text” name=“givenName”
/></p> <input type=“submit” value=“実行” />
<input type=“reset” value=“キャンセル” />
</form>
フォームとプログラム


「実行」ボタンが押されると、HTTPの要求を用いて、
フォームに入力したデータがプログラムに渡される。
プログラムに渡すときは、次のメソッドを使う。
–
–
GET
POST
POSTメソッドによる処理 (1)
HTMLのソース
<p>姓名を入力してください:</p>
<form method=“post” action=“name.jsp”>
<p>姓: <input type=“text” name=“familyName”
/></p>
<p>名: <input type=“text” name=“givenName”
/></p> <input type=“submit” value=“実行” />
<input type=“reset” value=“キャンセル” />
</form>
POSTメソッドによる処理 (2)
要求の内容
POST /test/name.jsp HTTP/1.1
…..
…..
Content-Length: 35
(←空行)
familyName=maruyama&givenName=fujio
(←本文の内容が「クエリー」)
POSTメソッドによる処理 (3)
クエリーの内容
familyName=maruyama&givenName=fujio




familyName の値が “maruyama”
givenName の値が “fujio”
パラメータと値の間を “=” でつなぐ
パラメータと値の組み合わせを “&” でつなぐ
POSTメソッドによる処理 (4)
プログラムの処理をした後の画面

name.jsp を呼び出している
GETメソッドによる処理 (1)
HTMLのソース
<p>姓名を入力してください:</p>
<form method=“get” action=“name.jsp”>
<p>姓: <input type=“text” name=“familyName”
/></p>
<p>名: <input type=“text” name=“givenName”
/></p> <input type=“submit” value=“実行” />
<input type=“reset” value=“キャンセル” />
</form>
GETメソッドによる処理 (2)
要求の内容
GET /test/name.jsp?familyName=maruyama&
givenName=fujio HTTP/1.1
…..
…..
If-Modified-Since: Sun, 19 Jan 2003 00:39:50
GMT
GETメソッドによる処理 (3)
リクエスト行とクエリーの内容
GET /test/name.jsp?familyName=maruyama&
givenName=fujio HTTP/1.1


リクエスト行にクエリーが置かれている。
プログラム名 “name.jsp” の後に “?” があり、そ
の後にクエリーが続く。
GETメソッドによる処理 (4)
プログラムの処理をした後の画面

URL に クエリーが含まれる。
POSTとGETの使い分け (1)
POSTを使う場合

POST
–
–
–
–
通常はPOSTを使う。
GETメソッドでは、送るデータ量に制限がある。
GETメソッドでは、改行を渡せない (=掲示板では使え
ない)
GETメソッドでは、パスワードは送れない (=見えてしま
うから)
POSTとGETの使い分け (2)
GETを使う場合

GET
–
–
–
クエリーがURLにでているので、ブックマークに保存し
たり、リンクをはったりできる。
例えば、Google の実行結果にリンクを貼ったりする。
POSTメソッドだとこうはいかない。
JSPと要求・応答

要求の処理には、request という変数を使う。
–
–
–
–

request.getMethod()
request.getRequstURI()
request.getProtocol()
request.getRemoteAddr()
応答の処理には、response という変数を使う。
JSPを使ったクエリーの処理
<%= request.getParameter("familyName") %>


getParameter というメソッドを使う。
GET でも POST でも利用できる。
ダウンロード

講義で使用した PowerPoint ファイル