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 でも利用できる。
© Copyright 2024 ExpyDoc