解答例 - 実習課題2 - 8.リスナー2
(実習課題2)
任意のWebアプリケーションに、以下のリスナーを追加しなさい。
- HttpSessionに登録/置換/削除されるオブジェクトを検知し、ログとして出力すること。
- 処理が行われた時刻、セッションのIDおよびオブジェクトのクラス名がログとして出力されるようにすること。
解答例
/* * CountBean.java TECHSCORE Java Servlet8章 実習課題2 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ package com.techscore.servlet.chapter8.exercise2; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; public class ModifyAttributeListener implements HttpSessionAttributeListener { private void writeLog(String method, HttpSessionBindingEvent event){ StringBuffer buffer = new StringBuffer(); buffer.append(method).append(":").append("\t"); buffer.append(event.getSession().getId()).append("\t"); buffer.append(event.getValue().getClass().getName()); event.getSession().getServletContext().log(buffer.toString()); } public void attributeAdded(HttpSessionBindingEvent event) { this.writeLog("add", event); } public void attributeRemoved(HttpSessionBindingEvent event) { this.writeLog("remove", event); } public void attributeReplaced(HttpSessionBindingEvent event) { this.writeLog("replace", event); } }