Java listers的使用步驟:1、透過實作特定介面建立實作類別(可實現多個監聽器介面)。 2.直接用@WebListener註解修飾實作類,配置實作類別成為監聽器;或透過web.xml方式配置實作類別成為監聽器。
Java listers是監聽器的意思,用來監聽網路應用程式的內部事件的實作類別。可以監聽使用者session的開始與結束,使用者要求的到達等等,當事件發生時,會回呼監聽器的內部方法。
使用Listener步驟
透過實作特定介面建立實作類別(可實作多個監聽器介面)
設定實作類別成為監聽器,有兩種設定方式:
直接用@WebListener註解修飾實作類別
透過web.xml方式配置,程式碼如下:
<listener> <listener-class>com.zrgk.listener.MyListener</lisener-class> </listener>
常用Web事件監聽器介面
1. ServletContextListener
#此介面用於監聽Web應用程式的啟動與關閉
該介面的兩個方法:
contextInitialized(ServletContextEvent event); // 启动web应用时调用 contextDestroyed(ServletContextEvent event); // 关闭web应用时调用
如何取得application物件:
ServletContext application = event.getServletContext();
範例:
@WebListener public class MyServetContextListener implements ServletContextListener{ //web应用关闭时调用该方法 @Override public void contextDestroyed(ServletContextEvent event) { ServletContext application = event.getServletContext(); String userName = application.getInitParameter("userName"); System.out.println("关闭web应用的用户名字为:"+userName); } //web应用启动时调用该方法 @Override public void contextInitialized(ServletContextEvent event) { ServletContext application = event.getServletContext(); String userName = application.getInitParameter("userName"); System.out.println("启动web应用的用户名字为:"+userName); } }
#2 . ServletContextAttributeListener
此介面用於監聽ServletContext範圍(application)內屬性的改變。
此介面的兩個方法:
attributeAdded(ServletContextAttributeEvent event);//当把一个属性存进application时触发 attributeRemoved(ServletContextAttributeEvent event);//当把一个属性从application删除时触发 attributeReplaced(ServletContextAttributeEvent event);//当替换application内的某个属性值时触发
如何取得application物件:
ServletContext application = event.getServletContext();
範例:##
@WebListener public class MyServletContextAttributeListener implements ServletContextAttributeListener{ //向application范围内添加一个属性时触发 @Override public void attributeAdded(ServletContextAttributeEvent event) { String name = event.getName();//向application范围添加的属性名 Object val = event.getValue(); //向application添加的属性对应的属性值 System.out.println("向application范围内添加了属性名为:"+name+",属性值为:"+val+"的属性"); } //删除属性时触发 @Override public void attributeRemoved(ServletContextAttributeEvent event) { // ... } //替换属性值时触发 @Override public void attributeReplaced(ServletContextAttributeEvent event) { // ... } }
以上是java listers怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!