Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第2部 Servlet/JSP編> 第7章 Webアプリケーションの開発> 7.3 JSPの開発

7.3.2 セション管理

 JSPでも、同一のWebブラウザからの複数回のリクエストを、同一のWebブラウザからのアクセスとして処理することができます。

 サーブレットのセション管理の処理をJava言語の埋め込みとして、JSPに埋め込むことができます。また、JavaBeansを利用した方法でも実現できます。
 <%@ page>タグのsession属性に"true"と、<jsp:useBean>タグのscope属性に"session"を指定します。JavaBeansの呼び出しについては、“ビジネスロジックの埋め込み”を参照してください。

 セションはServletコンテナによりセションIDを使用して自動的に管理され、セションIDは、CookieまたはURLパラメタに埋め込まれます。URLパラメタを使用する場合は、リンク等を出力するロジックで、encodeURL メソッドを使用してください。
 Webブラウザ、運用環境共にCookieを使用可能な場合はセションはCookieで管理されますが、encodeURLメソッドを使用することで、Cookieを使用可能でない場合でもセションを使用することができます。

■サンプル

 セション管理にCookieを使用したセション管理を利用した簡単なサンプルを以下に示します。
 本サンプルでは、1ページ目で設定した名前を2ページ目で表示しています。

[sample1.jsp]

------------------------------------------------------------------------------------
  <HTML>
  ・・・
  <BODY>
  <FORM action="sample2.jsp">
  <INPUT type="submit" value="NEXT">
  </FORM>
  <%@ page ・・・ session="true"%>
  <jsp:useBean id="sample" scope="session" class="MyApp.AccessName"/>
  ・・・
  <jsp:setProperty name="sample" property="name" param="username"/>
  ・・・
------------------------------------------------------------------------------------

[sample2.jsp]

------------------------------------------------------------------------------------
  <HTML>
  ・・・
  <BODY>
  <%@ page ・・・ session="true"%>
  <jsp:useBean id="sample" scope="session" class="MyApp.AccessName"/>
  ・・・
  <jsp:getProperty name="sample" property="name"/>
  ・・・
------------------------------------------------------------------------------------

[AccessName.java]

------------------------------------------------------------------------------------
  package MyApp;
  public class AccessName {
  ・・・
    String name;
    public AccessName() {
    }
    public String getName() {
      return name;  }
    public void setName(String inputname) {
      name = inputname;  }
  }
------------------------------------------------------------------------------------

目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED