フォームと暗黙オブジェクトrequest


今回は、フォームからの送信について説明しましょう。まずは、簡単なフォームを持ったサンプルを作ってしまいましょう。ここでは「index.jsp」というファイルとして作成をしてあります。

<%@page contentType="text/html" %>
<%@page pageEncoding="UTF-8" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd"%>

<html%>
  <head%>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"%>
    <title%>JSP Page</title%>
  </head%>
  <body%>

    <h1%>JSP Page</h1%>

    <%
      String s = request.getParameter("text1");
      if (s != null){
        out.println("こんにちは、" + s + "さん!<br%><br%>");
      }
    %%>
    
    ※送信フォーム<br%>
    <form method="post" action="index.jsp"%>
      <input type="text" name="text1"%>
      <input type="submit"%>
    </form%>
  </body%>
</html%>


テキストを送信すると、「こんにちは、××さん!」と表示される。

送信フォームから、適当にテキストを入力し、送信をしてみてください(ただし、日本語は使わず半角英数字で! 理由は後ほど)。「こんにちは、××さん!」と表示されますよ。送信したテキストが受け渡されていることがわかりますね。

さて、みなさんHTMLの基本はだいたいわかっていますか? フォームによる送信というのは、だいたい以下のような形で記述しますね。

<form method=×× action=××>
・・・入力する項目のタグ・・・
<input type="submit">
</form>


 methodは、送信する方式を指定します。これは「get」か「post」のいずれかになります。getというのは、HTTPプロトコルのGETコマンドを使ったもので、これは一般的にデータの取得用に用いるものです。postはHTTPプロトコルのPOSTコマンドを使うもので、データの送信はこちらを利用するのが一般的でしょう。

actionには、送信先のURLを指定します。これは別ファイルでなくてもかまわなくて、フォームがあるファイル自身を送信先に指定することも可能です。――では、作成したフォームを見てみましょう。

<form method="post" action="index.jsp">
<input type="text" name="text1">
<input type="submit">
</form>


メソッドは「post」に、送信先は「index.jsp」になっていますね。また、<input type="text">タグには、nameという属性で名前を指定してあります。これは、実は非常に重要です。送信された情報を取り出す際に必要となるからです。JSPで処理をする場合、それぞれの入力用タグには必ずnameで名前を指定しておく必要があるのです。

フォームについては、これらのポイントさえおさえていれば、特に難しいところはありません。JSPだからといって特別なことは何もないのです。