我們說管道機制給我們帶來了更好的擴充套件性,tomcat中在擴充套件性方面具體如何體現,這便是本節討論的內容。從上節了解到基礎閥門是必須執行的,假如你需要乙個額外的邏輯處理閥門,可以新增乙個非基礎閥門。
我的需求是對每個請求訪問進行ip記錄,列印到日誌裡面,詳細操作如下:
① 自定義乙個閥門printipvalve,只要繼承valvebase並重寫invoke方法即可,valvebase是tomcat抽象的乙個基礎類,它幫我們實現了生命介面及mbean介面,使我們只需專注閥門的邏輯處理即可。需要注意的地方是一定要執行呼叫下乙個閥門操作,即執行getnext().invoke(request,response),否則執行時將出現錯誤,請求到這個閥門就停止往下處理。
public classprintipvalve extends valvebase{
@override
publicvoid invoke(request request, response response) throws ioexception,
servletexception{
system.out.println(request.getremoteaddr());
getnext().invoke(request,response);
② 配置tomcat伺服器配置server.xml,這裡把閥門配到engine容器下,這樣作用範圍即在
Tomcat原始碼分析 閥門
1.tomcat元件及關係 server service connector engine host context 元件及其關係可以參考tomcat的server.xml及web.xml檔案 介面及實現 a.pipeline 此介面的實現主要用於維護閥門及先後關係,實現見 org.apache.c...
python定製 python中定製類
1 python中 str 和repr 如果要把乙個類的例項變成 str,就需要實現特殊方法 str classperson object def init self,name,gender self.name name self.gender genderdef str self return p...
jquery easyui中定製window工具
jquery easyui 中的視窗在預設狀態下有收束 展開,最小化,最大化和關閉工具,比如我們定義了下面的視窗 window content 將會得到這樣的輸出 可以看到右上角的四個工具。我們可以定製這些工具,如果想建立只有乙個關閉工具的視窗,就需要隱藏其他的工具,可以在標記中定義也可以在 中定義...