忍者ブログ
[9]  [8]  [7]  [6]  [5]  [4]  [3]  [2]  [1
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

JSP&サーブレットでは、複数のページ間で情報を維持するために、2つの方法を提供している。
■Cookie情報を取得する。
==============================================
【サンプル】リスト1で入力したメールアドレスをリスト2でCookieとして保存する。

[リスト1]cookie.jsp
<form method="POST" action="cookie_rec.jsp">
 E-Mailアドレス:
  <input type="text" name="email" size="40" maxlength="100"
   value="${cookie['email'].value}" /> -(3)
  <input type="submit" value="送信" />
</form>

[リスト2]cookie_rec.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="res" uri="http://jakarta.apache.org/taglibs/response-1.0" %>
<res:addCookie name="email"> -(1)
 <res:value>${param['email']}</res:value>
 <res:maxAge>15552000</res:maxAge>
</res:addCookie>
<c:redirect url="cookie.jsp" /> -(2)
 *2度目にcookie.jspにアクセスすると、1度目に入力したアドレスが表示される。
==============================================
Cookieを保存するには、Responseタグライブラリに含まれる<res:addCookie>タグを
利用する。(リスト2の(1)) …ResponseタグライブラリはJakarta Taglibsによるもの

<res:addCookie>要素は、name属性(Cookie名)と<res:value>要素(Cookie値)、<res:maxAge>
要素(有効期限)(秒単位)といった設定に基づいて、クライアントにCookieを送信する。

■Cookieの値を出力する。
クライアントに保存されたCookieの値にアクセスするには、暗黙オブジェクトCookieの役割。(リスト1の(3))
ただし、&{cookie['クッキー名']}で返されるのはCookieオブジェクトな為、Cookie値にアクセスする
には${cookie['email'].value}のように、valueプロパティを介する必要がある。

■セッションによる情報の引き継ぎ
==============================================
【サンプル】リスト1で保存されたセッション情報をリスト2から参照する。

[リスト1]session1.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
…中略…
<c:set var="sample" value="セッション情報" scope="session" /> -(1)
セッション情報を記録しました。
</body>

[リスト2]session2.jsp
<body>
セッション"sample" => ${sessionScope['sample']} -(2)
</body>

[リスト3]web.xml
<session-config>
 <session-timeout>10</session-timeout>
</session-config>
==============================================
セッション情報をセットするのは<c:set>要素の役割(リスト1の(1))
セッション情報を設定するにはscope属性を明示する必要がある。
※セッション有効期限はweb.xmlの要素で指定する。(リスト3)
※セッション情報を破棄したい場合はJakartaTaglibsのSession
 タグライブラリを使用する。
 

===================================
■セッションの開始・継続・終了
・実際の実装方法
サーブレットにおけるセッション管理を実現するにはHttpSessionを使用する。
セッションの開始・継続にはHttpServletRequestのgetSessionメソッドを実行する。
 ※開始時は引数にtrueを指定する。継続時はfalseを指定する。
セッションを終了する場合はHttpSessionのinvalidateメソッドを実行する。

セッションに値を格納する場合はHttpSessionのsetAttributeメソッドを実行する。
  UserInfo userInfo = new UserInfo(...);
  session.setAttribute("USER_INFO", userInfo);
セッションに格納された値を取得する場合はgetAttributeメソッドを実行する。
  UserInfo userInfo = (UserInfo) session.getAttribute("USER_INFO");
セッションに格納された値を削除する場合はremoveAttributeメソッドを実行する。
  session.removeAttribute("USER_INFO");
※getSessionメソッドの戻り値はHttpSessionになる。このメソッドは引数に関わらず
 セッション情報が存在するかチェックする。存在している場合は、そのセッションを返す。
 ただし、存在しない場合は引数により異なる
 trueの場合→セッションを新規に作成して返す。
 falseの場合→nullを返す。

 
参考サイト
http://www.atmarkit.co.jp/fjava/javafaq/session/session04.html

PR
POST
name
title
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字

secret(※管理者へのみの表示となります。)
COMMENT
TRACKBACK
trackbackURL:
カレンダー
04 2025/05 06
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
フリーエリア
最新コメント
最新トラックバック
プロフィール
HN:
学kun
性別:
男性
バーコード
ブログ内検索
P R
Copyright © 毎日勉強頑張ってます! All Rights Reserved.
Powered by NinjaBlog
Graphics by 写真素材Kun * Material by Gingham * Template by Kaie
忍者ブログ [PR]