這裡主要學習工具類,digester和convertutils,stringtokenizer,file類的3個獲取路徑的方法
1.stringtokenizer
如果為字串的簡單分隔,那麼如果由split方法來分隔字串,效率必然低下(其引數被識別為正規表示式)
這時,我們可以使用stringtokenizer類,來進行字串的分隔,其效率略高
string str = "test1;test2;test3;test4;test5;";
stringtokenizer st = new stringtokenizer(str,";");
while(st.hasmoreelements())
2.file類的3個獲取路徑的方法
file.getpath()
file.getabsolutepath()
file.getcanonicalpath()
從3個例子中來學習
file file = new file("f:/export/./../00");
system.out.println(file.getpath());
system.out.println(file.getabsolutepath());
system.out.println(file.getcanonicalpath());
file file2 = new file("f:/export/as3corelib.swc");
system.out.println(file2.getpath());
system.out.println(file2.getabsolutepath());
system.out.println(file2.getcanonicalpath());
file file3 = new file("./..");
system.out.println(file3.getpath());
system.out.println(file3.getabsolutepath());
system.out.println(file3.getcanonicalpath());
3.digester
digester主要用於將xml檔案解析為物件,其好處在於,事前定義好規則,則在xml解析的過程中,物件也生成了,簡化了**的編寫,另乙個方面,digester採用的是sax的方法解析xml,對程式的記憶體影響很小,舉例如下
首先定義乙個物件student類如下:
public class student
public void setname(string name)
public string getage()
public void setage(string age)
public string getdesc()
public void setdesc(string desc)
@override
public string tostring()
}
然後在src下面,放置乙個作為測試資料的xml檔案,students.xml
<?xml version="1.0" encoding="utf-8"?>
然後是digester的測試類
public class digestertest
private liststus = new arraylist();
public void addstu(student stu)
}
執行後,則可以看到,2個學生的資料,都被新增到了當前類的stus集合物件中
簡單解析,其中測試類的一些方法需要加以說明:
//放入當前物件,方便後面的方法呼叫
dig.push(dt);
//指明student物件,對應著xml中的哪個節點
dig.addobjectcreate("students/student", student.class);
//指明student物件中,name屬性對應著xml中的哪個屬性,
//可以看到這個方法跟下面方法的比較,從xml的屬性和節點給物件新增資料,使用的方法是不同的
dig.addsetproperties("students/student", "namexml", "name");
//指明student物件中,name屬性對應著xml中的哪個節點,
dig.addbeanpropertysetter("students/student", "desc");
//當出現多個物件節點後,使用哪個方法進行新增,方法為之前push的那個物件中定義的方法
dig.addsetnext("students/student","addstu");
//開始解析,方法執行完,即解析完成
dig.parse(in);
4.convertutils
此類用於字串,轉化成其他型別的資料,此類內建支援的物件較少,貌似只有一些基本型別,不過可以通過converter介面進行擴充套件,以下為網上傳遍的dateconverter的乙個簡單實現,僅供參考
public class dateconverter implements converter catch (parseexception e)
return null;
}}
測試的類如下:
public class converttest
}
另外需要說明的是,convertutils和digester需要引入apache commons的一些jar包,具體見附件吧 Tomcat原始碼分析
本文將會介紹tomcat的原始碼,並給出一些分析。org.apache.catalina.startup.bootstrap 該類是tomcat啟動的入口類,包含有main方法。它的主要工作包括 引數解析 環境變數讀取 設定 類載入器初始化 通過反射的方式來呼叫catalina。org.apache...
Tomcat 原始碼分析
tomcat 原始碼分析 bootstrap 引導過程 1 初始化自定義的類載入器 common shared catalina 2 建立並例項化第乙個元件類 catalina tomcat 元件體系 server service connector engine host context 實現li...
tomcat原始碼分析
1 執行環境 tomcat 版本 8.0.x 編譯工具 ant 執行ide idea13.1 2 tomcat架構組成 如下圖所示 server 其實就是background程式,在tomcat裡面的server的用處是啟動和監聽服務端事件 諸如重啟 關閉等命令。service 在tomcat裡面,...