小ネタ千夜一夜 第4夜 Glassfishは再配備時にセッション維持するんだぜ?
Java使いはみんな知っていると個人的には思っていたGlassfishのアプリ再配備時のセッション維持機能。
どうもid:yone098さんは知らなかったらしい。
まず、NetBeansの設定を表示してみる。赤く囲んだところが注目ポイントだ!
続いてGlassfishの管理ツール。赤く囲んだところにチェックを入れるのだ!
Javaコードは以下のとおり。
public class Index extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession s = request.getSession(); s.setAttribute("session", "セッションに値をセットしてるぜー"); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet Index</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1> " + s.getAttribute("session") + "</h1>"); out.println("</body>"); out.println("</html>"); } finally { out.close(); } } 〜省略〜
一度実行した後、セッションをセットする部分をコメント化して再配備。
ちゃんとセッションのメッセージが出る。
配備解除後に配備だともちろん、セッションは空っぽになる。今回の例では「null」と表示される。
ロジックの修正とかした場合、すぐに不具合が出たURLから処理の続行が出来るので開発効率はいいかも。ログインからやり直すとか面倒なことがないからね!