| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
126 バイト追加 、 2020年2月16日 (日) 04:23
編集の要約なし
==[[Cookie]]==
*http://www.ietf.org/rfc/rfc2109.txt
*http://www.studyinghttp.net/cookies
*http://www.futomi.com/lecture/cookie/specification.html
====セッション維持とCookieセッション維持と[[Cookie]]====*Java Web アプリケーションでは、ブラウザのセッション維持の為に、基本的にCookieを利用する。アプリケーションでは、ブラウザのセッション維持の為に、基本的に[[Cookie]]を利用する。*デフォルトではCookie名は、JSESSIONIDデフォルトでは[[Cookie]]名は、JSESSIONID*ブラウザのCookie がOffの場合は、そのままでは、セッション維持されないので、以下の[[4.4 Webコンテナがセッション管理を行う場合、クッキーやURLの書き換え|メソッドでセッションキーをURLに埋め込む] [メソッドでセッションキーをURLに埋め込む]ことで対応する。**HttpServletResponseHttpServlet[[R]]esponse.encodeRedirectURLencode[[R]]edirectU[[R]]L(url)**HttpServletResponseHttpServlet[[R]]esponse.encodeURLLencodeU[[R]]LL(url)
*フレームワークを利用すると、そのあたりを自動でやってくれることが多い。
**[[Struts ]] 1.xでは、<html:form>や<html:rewrite>等に指定したURLは、自動で上記、セッションキーをURLに付加する処理を行ってくれる。
=====サンプル=====
サンプルコード
protected void doGet(HttpServletRequest HttpServlet[[R]]equest req, HttpServletResponse HttpServlet[[R]]esponse res) throws ServletException, IOException {
PrintWriter writer = res.getWriter();
session.setAttribute(key_date, ftime);
// CookieがOffの場合の対策 [[Cookie]]がOffの場合の対策 1 // res.sendRedirect(res. ("/CookieTest[[Cookie]]Test/cookie.test"));
// return;
}
buf.append("</head>");
buf.append("<body>");
buf.append("<a href='/CookieTest[[Cookie]]Test/cookie.test'>reload</a>");
// CookieがOffの場合の対策 [[Cookie]]がOffの場合の対策 2 // buf.append("<a href='"+ res.encodeURL("/CookieTest[[Cookie]]Test/cookie.test") + "'>reload</a><br>");
buf.append("first access time : " + ftime + "<br>");
buf.append("</body>");
[[File:0316_cook00.jpg]]
*セッションを利用する単純なアプリケーションを動かすと、以下のようなCookieが利用される。セッションを利用する単純なアプリケーションを動かすと、以下のような[[Cookie]]が利用される。
*[[IE]][[ブラウザ用デバッグツール]] | [[Developer Toolbar]] | で確認
[[File:0317_cook01.jpg]]
*Firefox
*Telnet
>telnet localhost 8080
GET http://localhost:8080/CookieTest[[Cookie]]Test/cookie.test HTTP/1.1
[[HTTP]]/1.1 200 OK Server: [[Apache]]-Coyote/1.1 Set-[[Cookie]]: my_name=yagi; Expires=Tue, 04-Mar-2008 01:09:34 GMT Set-[[Cookie]]: JSESSIONID=9A5DE963413D4C8CC0B5A8C78A7E1BCE; Path=/CookieTest[[Cookie]]Test
Transfer-Encoding: chunked
Date: Tue, 04 Mar 2008 01:03:34 GMT
b7
<html><head></head><body><a href='/CookieTest[[Cookie]]Test/cookie.test;jsessionid=9A5DE963413D4C8CC0B5A8C78A7E1BCE'>reload</a><br>first access time : Tue Mar 04 10:03:34 JST 2008<br></body></html>
0
====明示的にCookieを利用明示的に[[Cookie]]を利用==== [[Cookie ]] cookie = new [[Cookie]]("my_name", "yagi");
cookie.setMaxAge(360);
res.addCookieadd[[Cookie]](cookie);*[[IE]]
[[File:0319_cook03.jpg]]
*Firefox
====[[JavaScript]]====
=====参照=====
document.cookie
=====[[Bookmarklet]]=====Cookieを表示[[Cookie]]を表示
javascript:c=document.cookie;w=open('_blank');cs=c.split(";");for(i=0;i<5;i++){w.document.write(cs[i]+";<br><br>");}w.document.close();----

案内メニュー