サーブレットと HTML form

Revised: 14th/June/2002

HTML form

HTML の form 要素からのデータをサーブレットが受け取って、その処理を返すことができます。そもそもこの要素は form は HTTP プロトコルで実装している GET メソッド、POST メソッドを送れます。

いずれにせよ、 HTML 文書のプロトコルは HTTP であり、そのためのメソッドを実装するには javax.servlet.http.HttpServlet 抽象クラスを継承する必要があります。

GET メソッド

GET メソッドは、 URL に続けてフォームデータを送信します。例えば、 http://localhost/index.html に [name="namae", value="atai"] と [name="toshi", value="26"] で送信すると、 http://localhost/index.html?namae=atai&toshi=26 のようになります。これは単なる URL 要求であり、データは環境変数としてセットされます。

POST メソッド

POST メソッドは、 URL とは別にデータを送信するための仕組みです。 GET メソッドがサイズの制限があるのに対して、 POST メソッドにはありません。POST メソッドのデータは標準入力として扱われます。

HTML ソース

HTML 文書で form を作るソースの抜粋を載せておきます。

GET メソッド

これは、 GET メソッドでこのページを置いたサーバのリソース "/myAppl/servlet/GetDemo" にデータを送信するフォームです。Tomcat の場合は、 /myAppl にマップされたドキュメント・ルート内の WBE-INF/classes 内の GetDemo.class になります。

<form action="/myAppl/servlet/GetDemo">
<p>GET メソッドのフォームの例</p>
<table>
<tr><th>name:</th><td><input type="text" name="namae" size="30" /></td></tr>

<tr><th> age:</th><td><input type="text" name="toshi" size="2" maxlength="2" /></td></tr>

<tr><th> sex:</th><td><input type="radio" name="sei" value="male" />male
                      <input type="radio" name="sei" value="female" />female</td></tr>

<tr><th>message:</th><td><input type="text" name="memo" size="50" /></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="submit" /></td></tr>
</table>
</form>

POST メソッド

これは、 POST メソッドでこのページを置いたサーバのリソース "/myAppl/servlet/PostDemo" にデータを送信するフォームです。Tomcat の場合は、 /myAppl にマップされたドキュメント・ルート内の WBE-INF/classes 内の PostDemo.class になります。

<form action="/myAppl/servlet/PostDemo" method="POST">
<p>POST メソッドのフォームの例</p>
<table>
<tr><th>name:</th><td><input type="text" name="namae" size="30" /></td></tr>

<tr><th> age:</th><td><input type="text" name="toshi" size="2" maxlength="2" /></td></tr>

<tr><th> sex:</th><td><input type="radio" name="sei" value="male" />male
                      <input type="radio" name="sei" value="female" />female</td></tr>

<tr><th>message:</th><td><input type="text" name="memo" size="50" /></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="submit" /></td></tr>
</table>
</form>

表示例

本サイトが置かれているサーバは設定していないので実際は動作しませんが、上のサンプルの表示例を載せておきます。

GET メソッドのフォームの例

name:
age:
sex:male female
message:

フォームのメソッド

HTTP の GET メソッドと POST メソッドを受け取る Java サーブレットのメソッドは、 doGet()doPost() になります。

これらのメソッドは javax.servlet.http.HttpServlet 抽象クラスで宣言されています。



Copyright © 2002 SUGAI, Manabu. All Rights Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送