(GT×IT×SP×SA)IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。やり方1:アプリ内で完結させる(一時的)こちらは本記事では深くは扱いませんのでさわり程度に書きます。アプリ内に閉じたカウンタ(DB接続なし)の場合はサーブレット内でカウンタ用の変数を定義して、初回呼出し(initメソッド)や二回目以降呼出し(doGetメソッド)が呼ばれる度にカウンタをインクリメントして行きます。処理の概要としては次のようになるイメージです。1カウンタ用の変数(int型)を定義します。2ServeltConfigオブジェクトの「getServletContext()」メソッドを用いてServletContext型のインスタンスを作り、上記で定義したカウンタ変数をsetAttributeでセットします。1カウンタ用の変数(int型)を定義し、getAttributeで現在のカウンタの値を取得します。2カウンタをインクリメントします。3setAttributeでインクリメントしたカウンターをセットします。やり方2:データベースと連動させる(恒久的)こちらが今回のメインテーマです。以降に記載する仕様等は全てこの「やり方2」に関する記載となります。ユーザ画面のjsp(例:XXXX.jsp)からアクセスカウンターの役割をするサーブレット(例:AccessCounter2.java)のアクセスカウント用メソッドを呼び出します。そのメソッドの中でDBアクセスを行い、指定した画面IDのカウンターを更新・値取得を行います。アプリの仕様概要アプリケーション側の処理の概要を記載します。流れとして、大きく3つに分解しています。ユーザー画面ユーザー画面のjspでアクセスカウンタ用のメソッドをコール↓2サーブレット(アクセスカウンター)アクセスカウンタ用のServletでDB接続用の各種メソッド(Connection・Statement・ResultSet・Close)をコールし、指定した画面のアクセスカウンター数を取得&更新する。↓3DBアクセス部品DB接続用メソッド(Connection返却)とStatement作成メソッド(Statement返却)とSQL発行&結果取得メソッド(ResultSet返却)とリソース解放メソッド(上記3つのClose)の4つを用意します。getAttribute(“ABCD”)で、セットしたインクリメント後のカウンタの値を取得します。DB接続&ステートメント作成DB接続(Connection)とステートメント作成(Statement)を行います。カウンタの現在の値取得SQL(SELECT文)を発行して、指定した画面IDの「現在のアクセスカウンタ値」を取得します。カウンタのインクリメントSQL(UPDATE文)を発行して、指定した画面IDの「現在のカウンタ値」をインクリメント(+1)します。再度SQL(SELECT文)を発行して、指定した画面IDの「更新後のカウンタ値」を取得します。データベースの仕様概要DB側でやる事は、アプリからアクセスされて更新をするための、アクセスカウンターテーブルの作成です。レコードは画面単位で作成し、アクセスカウントもその単位でカウントします。工夫した点として、SEQUENCEオブジェクトを用いて「一意な連番を付与」するカラムを作成しました。目的としては、UPDATE文の作成にあたって「どのカウンターを更新すれば良いか?」のWHERE句に指定するカラムとして使うためです。TABLE文の発行)。TABLE文の例を紹介します。作成したテーブルに「INSERT文」でアクセスカウンターのレコードを挿入します。(図3)のように画面毎にレコードを作り、カウンターの初期値は当然ですが「0」を設定します。COUNTER_IDカラムには「ACCESS_SEQ.NEXTVAL」でINSERTする事で、先ほど作ったSEQUENCEに沿った連番を付与しています。ソースコード別記事「JSP/Servletで画面毎のアクセスカウンターを作成してみた(パート2:ソース解説編)」をご参照下さい。Connectionこのエラーが発生した際の対応については、下記の記事にて解説しているため割愛。コメントをキャンセルメールアドレスが公開されることはありません。Linuxを触る人向けにTeraTermのログイン方法からコマンドを入力する方法まで数回にわたり解説していきます。本記事はその第4弾で、viエディタの使い方を簡単に紹介します。今回はWindowsマシンのCドライブ空き容量をチェックし、閾値との比較によってアラートメッセージを出したりするバッチプログラムの作成について紹介します。今回はPL/SQLのUTL_FILEパッケージを利用して、サーバ内にあるテキストファイルを読み込むプロシージャを作成したいと思います。(GT×IT×SP×SA)IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。Reserved.Top。