技術情報

セッション情報を取得する方法

-- 2013.01.29 GroupSession Version4.1.0 --

はじめに

GroupSessionではユーザ識別のためにセッション情報を保持しています。

ここではのそのセッション情報の内容や取得方法について説明します。


前提条件

このドキュメントは、Java、Apache Struts、Jakarta Antについての知識がある事を前提とします。


セッション情報の取得方法(javaファイル)

セッション情報を各プラグイン側で取得する方法を「Hello World!」プラグインを作成する方法で作成したソースファイルを元に説明します。

HelloWorldAction.java

package jp.groupsession.v2.newplugin.helloworld;

  import java.sql.Connection;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  import javax.servlet.http.HttpSession;
  import jp.groupsession.v2.cmn.GSConst;
  import jp.groupsession.v2.cmn.dao.BaseUserModel;
  import jp.groupsession.v2.struts.AbstractGsAction;
  import org.apache.struts.action.ActionForm;
  import org.apache.struts.action.ActionForward;
  import org.apache.struts.action.ActionMapping;

  /**
   * <br>[機  能] HelloWorldのアクションクラス
   * <br>[解  説]
   * <br>[備  考]
   *
   * @author JTS
   */
  public class HelloWorldAction extends AbstractGsAction {

      /**
       * <br>[機  能] アクションを実行する
       * <br>[解  説]
       * <br>[備  考]
       * @param map ActionMapping
       * @param form ActionForm
       * @param req HttpServletRequest
       * @param res HttpServletResponse
       * @param con DB Connection
       * @return ActionForward
       * @throws Exception 実行時例外
       */
      public ActionForward executeAction(ActionMapping map,
                                          ActionForm form,
                                          HttpServletRequest req,
                                          HttpServletResponse res,
                                          Connection con)
          throws Exception {

          //HttpServletRequestからHttpSessionを取得します。
          HttpSession session = req.getSession();
          //セッション情報からログインユーザの情報を取得します。
          BaseUserModel usModel =
             (BaseUserModel) session.getAttribute(GSConst.SESSION_KEY);

          return map.getInputForward();
      }
  }
セッション情報の取得方法(jspファイル)

セッション情報をjspファイル内で取得する方法を「Hello World!」プラグインを作成する方法で作成したjspファイルを元に説明します。

helloworld.jsp

<%@ page pageEncoding="Windows-31J"
    contentType="text/html; charset=UTF-8"%>
  <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
  <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
  <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
  <%@ taglib uri="http://struts.apache.org/tags-nested" prefix="nested" %>


<%  String key = jp.groupsession.v2.cmn.GSConst.SESSION_KEY; %>


  <html:html>
  <head>
  <title>[GroupSession] HelloWorld</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <link rel=stylesheet href='../common/css/default.css' type='text/css'>
  </head>

  <body class="body_03">
  <html:form action="/newplugin/helloworld">

  <%@ include file="/WEB-INF/plugin/common/jsp/header001.jsp" %>

  <table width="100%">
  <tr>
  <td width="100%" align="center">
    <p>Hello
	  
	   <!-- ユーザ名:姓 -->
	   <bean:write name="<%= key %>" scope="session" property="usisei" /> 
	   <!-- ユーザ名:名 -->
	   <bean:write name="<%= key %>" scope="session" property="usimei" />
	   <!-- ログインID -->
	   (<bean:write name="<%= key %>" scope="session" property="lgid" />)
	  
   </p>


  </td>
  </tr>
  </table>

  <%@ include file="/WEB-INF/plugin/common/jsp/footer001.jsp" %>

  </html:form>
  </body>
  </html:html>

セッション情報の内容

セッション情報にはjp.groupsession.v2.cmn.dao.BaseUserModelが格納されています。

BaseUserModelの内容は以下の表の通りです。


項目 データ型 Getter名 説明
ユーザSID int getUsrsid() ユーザを識別するキーとなるIDです。(ログインIDではありません)
ログインID String getLgid() ログインIDです。
String getUsisei() ログインユーザの姓です。
String getUsimei() ログインユーザの名です。
ユーザ区分 boolean getAdminFlg() 管理者権限の有無です。
true:管理者, false:一般
前回ログイン時間 String getLstLogintime() 前回ログインした日時文字列です。
モバイル使用可否 int getMblUse() GSモバイルの使用可/不可です。
テーマファイルパス String getCtmPath() 画面のテーマに関するファイルパス。

セッションの有効期限について

GroupSessionのセッション情報有効期限は12時間に設定されています。

リクエスト毎に有効期限は12時間後に更新されますが、セッションが切れると再ログインする必要があります。



Copyright 日本トータルシステム株式会社