プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

JSPでヒットカウンターを作成する方法【コード例付きで解説】

はじめに:JSPのヒットカウンターとは?

ヒットカウンターとは、Webサイトやページが閲覧された回数を数えて表示する仕組みです。JSP(JavaServer Pages)では、アプリケーション全体で共有される「application」暗黙オブジェクト(ServletContext)を利用することで、誰でも簡単にアクセス数のカウント機能を実装できます。

applicationオブジェクトを使った基本的な実装方法

最もシンプルな方法は、applicationスコープにカウンター用の変数を保存し、ページがアクセスされるたびに値を1ずつ増やしていくことです。以下のコードをそのままJSPファイルに記述すれば、すぐに動作を確認できます。

<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
  <title>ヒットカウンターのサンプル</title>
</head>
<body>
<%
    Integer hits = (Integer) application.getAttribute("hitCounter");
    if (hits == null || hits == 0) {
        // 初回アクセス時
        out.println("ようこそ、当サイトへ!");
        hits = 1;
    } else {
        // 再訪問時
        out.println("またのご訪問ありがとうございます!");
        hits += 1;
    }
    application.setAttribute("hitCounter", hits);
%>
<p>これまでの総アクセス数:<%= hits %> 回</p>
</body>
</html>

コードのポイント解説

まずapplication.getAttribute()で現在のカウント値を取得します。値が存在しない(null)場合は初回アクセスと判断して1を設定し、それ以外の場合は前回の値に1を加算します。最後にsetAttribute()で更新後の値を保存するため、サーバーが稼働している間はすべてのユーザーで同じカウントが共有されます。

カウンターをリセットしたい場合

テストや検証の際にカウントを0に戻したいときは、URLパラメータを受け取ってリセットすると便利です。

<%
    if ("true".equals(request.getParameter("reset"))) {
        application.setAttribute("hitCounter", 0);
    }
%>

このコードを追加した状態で「sample.jsp?reset=true」のようにアクセスすると、カウンターを初期化できます。

より実用的なカウンターを目指すには

上記の簡易的な実装では、サーバーを再起動するとカウント値が消えてしまう点に注意が必要です。実運用環境では、次のような工夫が推奨されます。

  • アクセス数をデータベースに保存し、再起動後も値を引き継げるようにする
  • CookieやセッションIDを活用して、同一ユーザーの短時間の連続アクセスを除外する
  • Servlet Filterを使えば、個別のJSPを修正せずにサイト全体のアクセスを一括カウントできる

参考チュートリアル

フィルターやデータベースを利用した応用的な実装手順など、さらに詳しい内容は以下のチュートリアルが参考になります。

Tutorialspoint「JSP – Hits Counter」
https://www.tutorialspoint.com/jsp/jsp_hits_counter.htm

  1. Microsoft Wordでバーコードを作成する方法|フォントのダウンロードから変換まで

    スーパーマーケットの商品や企業の製品には、バーコードが印刷されているのをよく見かけます。バーコードは、商品番号、ロット番号、シリアル番号などの情報を機械が読み取れる形式に変換するために使用されています。メーカーや小売業者など多くの業界では、サプライチェーンを通じて商品が流通する過程を追跡・識別する手段として、バーコードが欠かせない存在となっています。 バーコードとは、コンピューターが読み取り可能な情報を含んだ、平行なバー(線)のパターンのことです。このチュートリアルでは、バーコードフォントのダウンロード方法と、そのフォントを使ってMicrosoft Wordでバーコードを作成する手順を詳しく解

  2. Microsoft Accessでラベルを作成する方法|ラベルウィザードの使い方を徹底解説

    世界中の企業では、他の企業や顧客への手紙、請求書、報告書、アンケートなど、さまざまな文書の宛先としてラベルが活用されています。Microsoft Accessで宛名ラベルを作成すれば、面倒な作業も効率的に行えます。このチュートリアルでは、Microsoft Accessでラベルを作成する手順を詳しく解説します。 Accessでラベルを作成する方法 Microsoft Accessでは、ラベルウィザードを使用して、ラベルのサイズに合わせて整形された小さなページ形式のレポートを作成することで、ラベルを作成します。 1. データベースとテーブルを準備する まず、Microsoft Accessを開き