#topicpath ---- //ここにコンテンツを記述します。 #contents *** formでPOSTするときの enctype="application/x-www-form-urlencoded" の話 [#kf216592] このenctypeを指定することで、 -URL Encodeしたい(application/x-www-form-urlencoded) -プレーンなテキストで(text/plain) -メール形式(?)で(multipart/form-data) などと送信するデータの形式を指定することができます。というかココを見て、ブラウザが適切にform内のデータをエンコーディングしてサーバに送信してくれます。例えば <form action="[URL]" method="post" enctype="[いろいろ]" name="form1"> <input type="text" name="textfield" /> <input type="submit" name="Submit" value="送信" /> </form> というフォームデータを送る場合 -enctype=application/x-www-form-urlencoded ならば POST /hoge/ HTTP/1.0 Content-Type: text/plain --- ヘッダ省略 --- textfield=aaaaa Submit=送信 -text/plain ならば Content-Type: text/plain --- ヘッダ省略 --- textfield=aaaaa Submit=送信 -multipart/form-data ならば 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 ***リロード [#y2fa1b6d] <meta http-equiv="Refresh" content="1;URL=DBTestServlet"> *** 文字列のALT [#sde24e73] <acronym title="World Wide Web">WWW</acronym> *** 文法チェックサイト [#rd468a1a] http://openlab.ring.gr.jp/k16/htmllint/htmllint.html *** 改ページ [#f4003d7d] <BR STYLE="page-break-after: always"> ***Cookieについて覚え書き [#d29a130f] 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 て書かれていました。有効期限とか、パスとかを一緒に返してます。 で次に、次のリクエストヘッダは、 -/CookieExample にリクエストした場合 --CookieExampleの方は1秒以内なら有効期限内なのでCookieは Cookie: JSESSIONID=hogehoge; CookieExample=CookieExample となります。1秒たってると期限切れなのでブラウザはなにもヘッダに載せません(nullで送出もされない)。 --CookieExample2の方はパスが違うのでブラウザはなにもヘッダに載せません(nullで送出もされない)。 -/CookieExample2 にリクエストした場合 --CookieExampleの方は1秒以内なら有効期限内なのでCookieは Cookie: JSESSIONID=hogehoge; CookieExample=CookieExample となります。1秒たってると期限切れなのでブラウザはなにもヘッダに載せません(nullで送出もされない)。 --CookieExample2の方はパスが一致してるからブラウザはヘッダに載せてきます。 結果的に/CookieExample2にリクエストした場合にブラウザが載せるCookieは Cookie: CookieExample2=CookieExample2; JSESSIONID=hogehoge; CookieExample=CookieExample となりました。 ''ポイントはパスは前方一致なので/CookieExample2にリクエストしても、CookieExampleのCookieは載ってくるってことと、有効期限が切れたり、無効なCookieはキー値すら載ってこないってこと。。'' SIZE(10){現在のアクセス:&counter;} ---- この記事は #vote(おもしろかった[1],そうでもない[0]) #vote(おもしろかった[2],そうでもない[0]) #comment #topicpath SIZE(10){現在のアクセス:&counter;}