このenctypeを指定することで、
などと送信するデータの形式を指定することができます。というかココを見て、ブラウザが適切にform内のデータをエンコーディングしてサーバに送信してくれます。例えば
<form action="[URL]" method="post" enctype="[いろいろ]" name="form1"> <input type="text" name="textfield" /> <input type="submit" name="Submit" value="送信" /> </form>
というフォームデータを送る場合
POST /hoge/ HTTP/1.0 Content-Type: text/plain --- ヘッダ省略 --- textfield=aaaaa Submit=送信
Content-Type: text/plain --- ヘッダ省略 --- textfield=aaaaa Submit=送信
POST /hoge/ HTTP/1.1 Content-Type: multipart/form-data; boundary=---- -----------------------41184676334 --- ヘッダ省略 --- -----------------------------41184676334 Content-Disposition: form-data; name="textfield" aaa -----------------------------41184676334 Content-Disposition: form-data; name="Submit" 送信 -----------------------------41184676334--
となります。ほかにもいろいろ指定できると思うんだけど、たとえば
enctype="text/xml; charset=utf-8"
とやってもIE6.0SP1やFirefoxで1.5.0.1ではムシされて
application/x-www-form-urlencoded
で送信されてました。何でかなあ。。
ちなみにファイルのアップロードなどは、multipart/form-dataを用いるみたいですね。
参考
http://hp.vector.co.jp/authors/VA014833/mailto.html
http://jsgt.org/ajax/ref/test/enctype/test1.htm
<meta http-equiv="Refresh" content="1;URL=DBTestServlet">
<acronym title="World Wide Web">WWW</acronym>
http://openlab.ring.gr.jp/k16/htmllint/htmllint.html
<BR STYLE="page-break-after: always">
Cookieのパスとか、有効期限とかについてちょっと調べたので、覚え書き。
Cookie cookieExample = new Cookie("CookieExample","CookieExample"); cookieExample.setPath("/CookieExample"); //↑ パスが/CookieExample で始まるもののみに有効(前方一致) cookieExample.setMaxAge(1); //<-有効時間を1秒にセット Cookie cookieExample2 = new Cookie("CookieExample2","CookieExample2"); cookieExample2.setPath("/CookieExample2"); //↑ パスが/CookieExample2 で始まるもののみに有効(前方一致) response.addCookie(cookieExample); response.addCookie(cookieExample2);
サーバ側でこのように指定してクライアントに返却したときに、ヘッダの内容と次にリクエストされる内容をモニタしてみました。まず上の処理後のレスポンスヘッダは
Set-Cookie: CookieExample=CookieExample; Expires=Thu, 19-Aug-2004 06:11:13 GMT; Path=/CookieExample Set-Cookie: CookieExample2=CookieExample2; Path=/CookieExample2
て書かれていました。有効期限とか、パスとかを一緒に返してます。
で次に、次のリクエストヘッダは、
Cookie: JSESSIONID=hogehoge; CookieExample=CookieExampleとなります。1秒たってると期限切れなのでブラウザはなにもヘッダに載せません(nullで送出もされない)。
Cookie: JSESSIONID=hogehoge; CookieExample=CookieExampleとなります。1秒たってると期限切れなのでブラウザはなにもヘッダに載せません(nullで送出もされない)。
結果的に/CookieExample2にリクエストした場合にブラウザが載せるCookieは
Cookie: CookieExample2=CookieExample2; JSESSIONID=hogehoge; CookieExample=CookieExample
となりました。
ポイントはパスは前方一致なので/CookieExample2にリクエストしても、CookieExample?のCookieは載ってくるってことと、有効期限が切れたり、無効なCookieはキー値すら載ってこないってこと。。
現在のアクセス:8488
この記事は
現在のアクセス:8488