web.xml配置詳解之listener
- 定義
<listener> <listener-class>nc.xyzq.listener.WebServicePublishListener</listener-class> </listener>
- 作用
該元素用來注冊一個監聽器類。可以收到事件什么時候發生以及用什么作為響應的通知。事件監聽程序在建立、修改和刪除會話或servlet環境時得到通知。常與context-param聯合使用。
- listen-class標簽
listen-class 指定監聽類,該類繼承ServletContextListener 包含初始化方法contextInitialized(ServletContextEvent event) 和
銷毀方法contextDestoryed(ServletContextEvent event);
- 示例
初始化日志配置文件
package nc.xyzq.listener; import java.net.InetAddress; import java.net.UnknownHostException; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; import javax.xml.ws.Endpoint; import nc.xyzq.uuib.service.impl.WebServiceImpl; /** * 用於發布WebService的監聽器 */ //使用Servlet.提供的@WebListener注解將實現了ServletContextListener接口的WebServicePublishListener類標注為一個Listener @WebListener public class WebServicePublishListener implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent sce) { System.gc(); } @Override public void contextInitialized(ServletContextEvent sce) { //WebService的發布地址 String ip =""; try { ip = InetAddress.getLocalHost().getHostAddress(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("本機的IP = " + ip); String address = "http://"+ip+":8080/rzzxservices/WebService"; //發布WebService,WebServiceImpl類是WebServie接口的具體實現類 Endpoint.publish(address , new WebServiceImpl()); System.out.println("使用WebServicePublishListener發布webservice成功!"); } }