2012-01-25 239 views
1

事實:servlet容器爲每個servlet創建一個實例(希望我對這個事實是正確的)
任務:如果假設2個請求發送到同一個servlet來更新表Y中的x列, 一個請求發送的值是否會被其他請求覆蓋? 這是如何處理的,容器是要單獨處理還是? 請回復多個請求處理servlet

回答

1

事實:servlet容器創建每個servlet的一個實例(希望我對這個事實是正確的)

無法保證,但通常爲true 。所以更多的是假設而不是事實。

如果假設2個請求被髮送到同一個servlet來更新表Y中的x列爲相同的記錄一個請求發送的值是否會被其他請求覆蓋?這是如何處理的,容器是否會自行處理它?

這取決於數據庫,而不是servlet容器。將有兩個線程使用相同的servlet實例,每個實例都有自己的數據庫連接。

但是,當然,第二個請求會覆蓋第一個請求放在那裏的數據庫值。不知道你有什麼期望這個工作。

0

有1個servlet實例。正確。

但是請求將由容器創建的不同線程處理。
所以servlet代碼將被2個不同的線程調用。

所以一定要確保你的代碼是線程安全