<%--===========================================================================
  << jsp152.jsp >>

  JSP(5):クッキー(応用 アクセスカウンタ)

   クッキーを使って、アクセスカウンタを作る。                             
                                                                             
 ●Cookieクラスのメソッド                                                   
  public void setMaxAge(int t)                                             
   機能:クッキーの最大存続期間tを秒数で設定する。                        
      負の値を設定すると、Web ブラウザ終了時に削除される。             
      0を設定すると、削除される。                                      
                                                                             
 ●起動法
  (1)JSPファイル(jsp152.jsp)を作成し、
     %CATALINA_HOME%\webapps\SV\jsp152.jsp
    に保存する。
    (2)URL(http://localhost:8080/SV/jsp152.jsp)を指定する。
============================================================================--%>

<%@ page contentType="text/html; charset=Shift_JIS" %>

<html>
<head><title>JSP</title></head>
<body>

<%
  // クッキーの受信。                                                    
  Cookie c[] = request.getCookies();                                    
  Cookie ck;
  int n=0;

  if( c != null ) {
    // クッキー中で、名前(ACCESSCOUNT)の探索との更新。       
    for( int i=0; i<c.length; i++ ) {                                         
      String s1 = c[i].getName();                                             
      if( s1.equals("ACCESSCOUNT") ) {             
        String s2 = c[i].getValue();                                          
        n = Integer.parseInt(s2) + 1;                                      
        ck = new Cookie(s1, String.valueOf(n));                             
        ck.setMaxAge( 60*60*24 ); // 有効期限は1日。                   
        // クッキーの追加。                                                  
        response.addCookie(ck);                                               
      }                                                                    
    }                                                                      
  }

  if( n == 0 ) { // クッキーに名前(COUNT)がない場合、追加する。            
    n = 1;                                                               
    ck = new Cookie("ACCESSCOUNT", "1");                                        
    ck.setMaxAge( 60*60*24 );                                           
    response.addCookie(ck);                                               
  }                                                                      

  // 表示。
  out.print("アクセスカウンタ:");
  out.println(n + "回目のアクセスですね");
%>

</body>
</html>
実行結果

URL(http://localhost:8080/SV/jsp152.jsp)を指定後


表示メニューの「最新の情報に更新」項目をクリック後


表示メニューの「最新の情報に更新」項目をクリック後