Tomcat是很是有名的開源容器,因其開源咱們能夠對其作定製化的改變,並且Tomcat在其配置文件方面作了不少註釋說明摘要,幫助咱們更好的定製化咱們所需的功能點。java
New Tomcat Listener
首先看下Tomcat整個比較有名的Listener,在咱們的conf/server.xml文件中一目瞭然apache
![點擊查看原始大小圖片](http://static.javashuo.com/static/loading.gif)
類圖tomcat
NEXT 自定義的Listener,本代碼是案例的方式,實際上在咱們項目中定製化擴展了,譬如應用stop後,通知集羣下的另外機器;監聽接受UDP發過來的信息...spa
- import java.io.FileWriter;
- import java.io.IOException;
- import java.net.DatagramPacket;
- import java.net.DatagramSocket;
- import java.net.InetAddress;
- import java.net.SocketException;
- import java.net.UnknownHostException;
-
- import org.apache.catalina.Container;
- import org.apache.catalina.Executor;
- import org.apache.catalina.Lifecycle;
- import org.apache.catalina.LifecycleEvent;
- import org.apache.catalina.LifecycleException;
- import org.apache.catalina.LifecycleListener;
- import org.apache.catalina.LifecycleState;
- import org.apache.catalina.Server;
- import org.apache.catalina.Service;
- import org.apache.catalina.connector.Connector;
- import org.apache.juli.logging.Log;
- import org.apache.juli.logging.LogFactory;
-
- public class EwellListener implements LifecycleListener {
-
- public void lifecycleEvent(LifecycleEvent event) {
- System.out.println("-------------------------------------------------");
- if (event != null && event.getLifecycle() != null) {
- System.out
- .println(event.getLifecycle().getStateName() + "chenyang");
- }
- System.out.println("-------------------------------------------------");
- if (!(event.getLifecycle() instanceof Server))
- return;
-
- if (!Lifecycle.AFTER_START_EVENT.equals(event.getType()))
- return;
-
- Server server = (Server) event.getLifecycle();
-
- }
- }
對於容器在不一樣事件下觸發的行爲,在tomcat中LifeCycle都有說明.net
![點擊查看原始大小圖片](http://static.javashuo.com/static/loading.gif)
下一步就是如何在Tomcat中可以進行識別以及啓動呢?code
1.把你生成的jar包放入,tomcat的lib的目錄下${CATALINA_HOME}/lib
or ${CATALINA_BASE}/lib
server
2.把你的監聽器配置到server.xml文件中
xml