解答例 - 実習課題1 - 4.クッキーとセッション
(実習課題1)
以下のサーブレットプログラムを作成しなさい。
- そのページに何回訪れたかを表示する。
- 訪れた回数の情報は、クッキーで管理する。
解答例
/*
* CookieServlet.java TECHSCORE Java Servlet4章 実習課題1
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
package com.techscore.servlet.chapter4.exercise1;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CookieServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
int count = 0;
Cookie[] cookies = request.getCookies();
Cookie cookie = null;
if (cookies != null) {
for (int i = 0; i < cookies.length; i++) {
if (cookies[i].getName().equals("count")) {
count = Integer.parseInt(cookies[i].getValue());
break;
}
}
count++;
cookie.setValue(String.valueOf(count));
} else {
cookie = new Cookie("count", "1");
}
cookie.setMaxAge(60 * 5);
response.addCookie(cookie);
response.setContentType("text/html; charset=Shift_JIS");
PrintWriter writer = response.getWriter();
writer.println("<html><head><title>Servlet4章Exercise1</title>");
writer.println("</head><body>");
writer.println("カウンタ:");
writer.println(cookie.getValue());
writer.println("</body></html>");
}
}

