Parameter を受け取る



JSP に Parameter を渡す方法と、受け取る方法です。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. クライアントから渡されたパラメータを受け取って、ホームページに表示します。
    私はアプリケーションの開発用に webapps の下に hoge のフォルダーを作成しました。
    "C:\tomcat\webapps\hoge\
    ソースプログラム GetParam.jsp を hoge\jsp のフォルダーに格納して下さい。
    +hoge
        +jsp
            ・HelloWorld.jsp      //以前に格納したファイル(今回は不要)
            ・GetParam.jsp        //Parameter を受け取って表示する JSP
            ・Param.html          //FORM からパラメータを入力する HTML
    
  2. GetParam.jsp のソースコードです。
    request.getParameter("name") で、name を受け取ります。
    request.getParameter("bir") で、bir を受け取ります。
    渡される値は全て String 型で、"Shift_JIS" にコード変換します。
    元のソースは ブラウザからの入力のあるJSP に掲載されていたものです。
    <%@ page contentType="text/html; charset=Shift_JIS" %>
    <%
      String name=request.getParameter("name");
      String bir=request.getParameter("bir");
    
      name=new String(name.getBytes("8859_1"),"Shift_JIS");
      bir=new String(bir.getBytes("8859_1"),"Shift_JIS");
    %>
    
    <html>
    <head><title>ex11_1_5.jsp</title></head>
    <body>
    あなたのお名前は<%= name%><BR>
    誕生日は<%= bir%>ですね。
    </body>
    </html>
    
  3. apache-tomcat を立ち上げて、WWW ブラウザを起動して下さい。
    URL に次の文字列を張り付けて呼び出すと、渡した Parameter が表示されます。
    http://localhost:8080/hoge/jsp/GetParam.jsp?name=太郎&bir=10/8
    GetParam.jsp? 以降が JSP に渡す Parameter で「名前=値」の形で指定します。
    「太郎&bir」の「&」は、一個目と二個目のパラメータの区切りです。
    あなたのお名前は太郎
    誕生日は10/8ですね。

FORM から呼び出す

  1. 一般的にパラメータは、FORM を使ってタイプ入力した値を渡します。
    FORM からパラメータを入力して GetParam.jsp を呼び出す Param.html です。
    C:\tomcat\webapps\hoge\jsp のフォルダーに格納して下さい。
    ごく普通の HTML ですが action="GetParam.jsp" で JSP を呼び出します。
    <html>
      <head><title>Param.html</title></head>
      <body>
        <form action="GetParam.jsp">
          お名前を入力してください<BR>
          <input type="text" name="name"><BR>
          誕生日を入力してください<BR>
          <input type="text" name="bir">
          <input type="submit" value="OK">
        </form>
      </body>
    </html>
    
  2. WWW ブラウザから Param.html を呼び出します。
    apache-tomcat を立ち上げて、WWW ブラウザに次の URL を張り付けて下さい。
    http://localhost:8080/hoge/jsp/Param.html
    FORM から入力した名前と誕生日が GetParam.jsp に渡されます。

隠れパラメータ

  1. FORM から画面に表示されない隠れパラメータを渡します。
    type="hidden" が隠れパラメータで、"hoge" の名前で "piyo" を渡します。
    <html>
      <head><title>Param.html</title></head>
      <body>
        <form action="GetParam.jsp">
          お名前を入力してください<BR>
          <input type="text" name="name"><BR>
          誕生日を入力してください<BR>
          <input type="text" name="bir">
          <input type="hidden" name="hoge" value="piyo">
          <input type="submit" value="OK">
        </form>
      </body>
    </html>
    
  2. 受け取る側は "hoge" が追加されるだけです。
    <%@ page contentType="text/html; charset=Shift_JIS" %>
        ・・・
      String hoge=request.getParameter("hoge");
      hoge=new String(hoge.getBytes("8859_1"),"Shift_JIS");
    隠れて<%= hoge%>が渡されました。<BR>
        ・・・
    
  3. 新しいページに更新すると、前頁の情報は全て失われます。
    そこで、新しいページに引き継ぎたい情報を "hidden" で渡します。
    "hidden" で渡す以外に、Java では永続化(Serializable)が使われることがあります。
    また情報量が多い時は、ファイルに保存したり、データベースを使ったりします。
  4. GetParam.jsp が呼び出された時に表示されている URL を確認して下さい。
    GET(既定値)で送られるデータは「URL?」に続いて「名前=値」の形式で渡されます。
    隠れパラメータと言いながら渡された文字列が丸見えです。
    多少コードが変わっているとは言え、隠しているとは言えません。
    本当に隠すときは POST で送ります。

POST を使う

  1. POST を使ってパラメータを送ります。
    修正は簡単で、次の行に method="POST" を追加するだけです。
    修正前
    <form action="GetParam.jsp">
    修正後
    <form method="POST" action="GetParam.jsp">
  2. 受け取り側は、修正の必要はありません。
    前回と同じように操作して下さい。
    GET で送られたパラメータは URL に埋め込まれます。
    それに対して POST で送られたデータはリクエスト・メッセージの本体であるメッセージ・ボディに格納されます。
    今度は URL だけしか見えないでしょう。
    このように POST にはパラメータを隠匿する効果があります。
  3. method="POST" を使うと、本来は受け渡し方法が異なるために、プログラムも変わります。
    JAVA では method="POST" を追加するだけで、後はシステムが全て面倒を見てくれるようです。
    GET/POST の詳細は GETとPOSTデータを受け取るには を参照して下さい。

Java Game Program