2013年10月3日木曜日

GAEでセッションを使う

目次へ



GAEでsessionを使うにはappengine-web.xmlで設定が必要です


■■■■appengine-web.xmlの設定■■■■

WEB-INFの中のappengine-web.xmlファイルに、sessions-enabledのタグを追加します。

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application></application>
<version>1</version>
<sessions-enabled>true</sessions-enabled>  ←これを追加
     :
     :



■■■■セッションにデータを入れるサーブレット■■■■

たとえば、下のプログラムをサーブレットに書くと次のことを実行します。
セッションスコープにsessesという名前で、"session-abc"という文字列を入れます。
チェックのためにリクエストスコープにはreqreqという名前で、"request-ABC"を入れます
その後 abc.jsp にfowardします。

 HttpSession session = req.getSession();
 session.setAttribute("sesses", "session-abc");
 req.setAttribute("reqreq", "request-ABC");
 req.getRequestDispatcher("abc.jsp").forward(req, resp);



■■■■セッションのデータを使うJSP■■■■

forward先のabc.jspでは、次のようにしてセッションスコープの sesses とリクエストスコープの reqreq を表示します。
fowardした場合には、sessesの"session-abc"という文字列も、reqreqの"request-ABC"という文字列も両方表示されます。
しかし、その後、ブラウザを閉じずに(セッションを保持したまま)、abc.jspを直接リクエストすると、リクエストスコープのデータはなくなっているため、 "session-abc"だけが表示されます。

これでGAE上でセッションが使えたことがわかります。

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>abc.jsp</title>
</head>
<body>
  ${sesses}<br/>
  ${reqreq}
</body>
</html>



にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

0 件のコメント:

コメントを投稿