這段時間工作不太忙,所以抽時間學習了TOMCAT,
TOMCAT實際就是負責保持TCP連接傳遞到部署的項目中。瀏覽器實質就是TCP發送器。將用戶的請求封裝成TCP發送請求。當然格式是雙方協定的。使用的socket連接。請求內容為空格和換行符分割??戳讼略创a解析請求頭,覺得寫得好精致啊。講請求轉換為byte數組。然后轉化為char值直接比較他們的值大小。如果和換行符或者空格char相同則提出。
int
ix = 0
;
int
ox = 0
;
String key
=
null
;
String value
=
null
;
while
(ix <
data.length) {
byte
c = data[ix++
];
switch
((
char
) c) {
case
'&'
:
value
=
new
String(data, 0
, ox, encoding);
if
(key !=
null
) {
key
=
null
;
}
ox
= 0
;
break
;
case
'='
:
key
=
new
String(data, 0
, ox, encoding);
ox
= 0
;
break
;
case
'+'
:
data[ox
++] = (
byte
)' '
;
break
;
case
'%'
:
data[ox
++] = (
byte
)((convertHexDigit(data[ix++]) << 4
)
+ convertHexDigit(data[ix++
]));
break
;
default
:
data[ox
++] =
c;
}
}
//
The last value does not end in '&'. So save it now.
if
(key !=
null
) {
value
=
new
String(data, 0, ox, encoding);
?
解析請求資源。根據資源名獲取類名。然后導入class文件URLLoader。然后執行方法。提起要繼承HttpServlet 執行service()方法。
還有一個好東西就是它的一場信息管理ResourceBundle讀取一場信息配置文件根據每個包構成一個單例 放入一個靜態HashMap中使用的使用通過包名獲取。非常靈活。而ResourceBundle可以自動的獲取服務器運行環境獲取相應的配置文件。比如獲取LocalStrings文件,如果在中國地區,包下面還有一個LocalStrings_zh_CN的配置文件,將會優先讀取。
/**
異常信息如何使用
* The string manager for this package.
*/
private
StringManager sm =
StringManager.getManager(Constants.Package);
/**
* 用于加載 properties 文件 國際化文件
* 當在中文操作系統下,如果myres_zh_CN.properties、myres.properties兩個文件都存在
* ,則優先會使用myres_zh_CN
* .properties,當myres_zh_CN.properties不存在時候,會使用默認的myres.properties。
*
* 沒有提供語言和地區的資源文件是系統默認的資源文件。
* 資源文件都必須是ISO-8859-1編碼,因此,對于所有非西方語系的處理,都必須先將之轉換為Java Unicode
* Escape格式。轉換方法是通過JDK自帶的工具native2ascii.
*/
private
ResourceBundle bundle;
private
Demo1(String packageName) {
String bundleName
= packageName + ".LocalStrings"
;
bundle
=
ResourceBundle.getBundle(bundleName);
}
public
static
void
main(String[] args) {
Demo1 c
=
new
Demo1("com.util"
);
System.out.println(c.bundle.getString(
"Hello"
));
}
看的比較馬虎。有新的在記錄吧。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

