解答例 - 実習課題3 - 4.クッキーとセッション
(実習課題3)
実習課題2のプログラムを改良しなさい。
- セッションの有効期限を1分とする。「WEB-INF/web.xml」で設定を行う事。
タイムアウト後にどのような挙動になるか確かめる事。
解答例
/* * SessionServlet.java * TECHSCORE Java Servlet4章 実習課題4 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ package com.techscore.servlet.chapter4.exercise4; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class SessionServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); Integer count = (Integer) session.getAttribute("count"); response.setContentType("text/html; charset=Shift_JIS"); if (count == null) { count = new Integer(1); } else { count = (Integer) session.getAttribute("count"); } String link = new String("servlet4-4"); link = response.encodeURL(link); PrintWriter writer = response.getWriter(); writer.println("<html><head><title>Servlet4章Exercise4</title>"); writer.println("</head><body>"); writer.println("カウンタ:"); writer.println(count.toString()); writer.println("<br><a href=\"" + link + "\">リンク</a>"); writer.println("</body></html>"); session.setAttribute("count", new Integer(count.intValue() + 1)); } }