リスナー
3つのドメインオブジェクトの分類と性質
リスナーは、グローバルスコープオブジェクトの共有データが変更されたときにトリガーされます
まず、リクエストに応答するサーブレットを定義し、グローバルスコープの共有データを更新してリスナーをトリガーします
パブリック クラスOneServletはHttpServletを拡張し ます{ @Override protected void doGet(HttpServletRequest req、HttpServletResponse resp)throws ServletException、IOException { ServletContext app = req.getServletContext(); app.setAttribute(" key "、100 ); app.setAttribute(" key "、200 ); app.removeAttribute(" key " ); } }
リスナーの使用
@WebListener() パブリック クラスを実装するのServletContextListener OneListener、ServletContextAttributeListenerは{ / * * *監視する責任のServletContextListener *アプリケーションが初期化と呼ばれている * @paramのSCE * / @Override 公共 のボイドcontextInitialized(ServletContextEventのSCE){ システム。OUT .println(「グローバルの役割ドメインオブジェクトは初期化されます" ); } / * * * ServletContextListenerは監視を担当し ます * アプリケーションが破棄されたときに呼び出されます* @param sce * / @Override public voidcontextDestroyed(ServletContextEventのSCE){ システム。OUT .println(" グローバルスコープ・オブジェクトが破棄される" ); } / * * *監視する責任ServletContextAttributeListener *アプリケーションが新しい共有データを追加するコールトリガ * @paramのSCAE * / @Override 公共 ボイド(ServletContextAttributeEvent SCAE)attributeAdded { システム。OUT .println(" 新しい共有データ" ); } / * * *監視する責任ServletContextAttributeListener トリガ・アプリケーション更新共有データ * @paramのSCAE * / @Override 公共 ボイドattributeReplaced(ServletContextAttributeEvent SCAE){ システム。OUT .println(" 更新共有データ" ); } / * * *監視する責任ServletContextAttributeListener データが削除される*トリガアプリケーション共有 * @paramのSCAE * / @Override 公共 ボイドattributeRemoved (ServletContextAttributeEvent SCAE){ システム。OUTの .println(" 共有データを削除" ); } }
web.xml登録リスナー
< リスナー> < リスナークラス> com.bjpowernode.listener.OneListener </ リスナークラス> </ リスナー> < サーブレット> < サーブレット名> OneServlet </ サーブレット名> < サーブレットクラス> com.bjpowernode.controller .OneServlet </ servlet-class > </ servlet > < servlet-mapping > < servlet-name > OneServlet </ servlet-name > <url-pattern > /one.do </ url-pattern > </ servlet-mapping >