1樓:匿名使用者
答案:是的
因為servlet的實現是單例,多執行緒
也就是說,n個客戶端請求同一個servlet,他們所請求的是同一個物件,成員變數是屬於這個物件的,因此成員變數也被共享了
因此在servlet程式設計中,無狀態的servlet(就是不寫屬性,所以變數都在dopost或者doget裡面)是執行緒安全的,否則,由於會共享到成員變數,因此就有可能不是執行緒安全的
2樓:
servlet的工作原理
當多個客戶請求同一個servlet時,伺服器為每個客戶啟動一個執行緒,這些執行緒由tomcat伺服器管理。
servlet的生命週期
一個servlet的生命週期主要有三個過程:
呼叫init()方法初始化servlet
呼叫service()方法響應客戶請求。
呼叫destroy()方法消滅servlet物件。
當某個servlet第一次被請求時,伺服器會生成該servlet並呼叫其init()方法初始化,在呼叫service()方法處理使用者請求。
處理結束後該servlet會常駐記憶體,新的使用者請求直接呼叫當前servlet物件的service()方法處理。伺服器關閉時,呼叫destroy()方法。
在servlet的一個生命週期中,init()和destroy()被呼叫一次,而service()則會被呼叫多次。
每個客戶的每次請求都導致service()方法被呼叫,由於執行不在不同的執行緒中,service()方法中的
1.區域性變數互不干擾。
2.成員變數是被所有執行緒共享的資料。
3樓:葉秋雨
安全性解決方法
1.儘量不要定義成員變數
2.定義不可以被修改的成員變數
3.加鎖
4樓:匿名使用者
確實是不安全的。
你的做法是
1.一般的做法是放在servlet的方法中2.如果非要使用,這些成員變數可能被修改,可以考慮使用同步
多個客戶同時請求一個servlet後,servlet在伺服器怎麼處理
5樓:匿名使用者
預設的話它是會各自開啟一個新執行緒去分別執行請求,但是這個要求servlet可以處理併發問題。如果servlet實現了singlethreadmodel這個類,這樣的話每次就只有一個執行緒在執行請求,其他的請求會排隊。
多個客戶請求同一個servlet時web伺服器如何處理
6樓:谷歌七彩魚
一個web容器一般為每個請求建立一個執行緒來處理。如果使用者確認一個servlet例項每次只處理一個請求,servlet就能實現singlethreadmodel 介面。如果servlet實現了這個介面,使用者就能確保servlet的服務方法中不可能有兩個執行緒併發執行。
web容器可通過同步訪問一個servlet的單獨例項、或者通過維護一個web元件池為每個例項呼叫一個新的請求來實現。這個介面並不能防止web元件訪問共享資源(如靜態類變數、外部物件)導致的同步問題
在容器總啟動的每一個servlet都是一個執行緒嗎
7樓:匿名使用者
servlet是單例多執行緒的無需置疑。
每個servlet會根據請求來新建執行緒
也就是說你接到一個請求到servlet,這個servlet就會執行一個tread
如果servlet只有一個例項,而同時有十個使用者訪問這個servlet該用什麼方法解決?
8樓:匿名使用者
一個servlet在web容器中只能有一個例項,例如:tomcat,它在服務啟動時被建立初始化,如果你的專案中有設計多個servlet,那麼它們也是每個對應一個例項
servlet設計時就是多執行緒的處理request,包括如何處理併發問題,關於這點應該不屬於你程式設計考慮的問題,你應該考慮真正的業務實現類中的併發問題
9樓:
基本上是並行的,因為servlet是用多執行緒來為客戶端提供服務,來一個客戶請求,就分一個執行緒去為其服務.
10樓:匿名使用者
當是個使用者訪問的時候 是建立了十個應用程式的例項 十個執行緒
11樓:匿名使用者
並行,排序不是要down掉。。
對 一個servlet型別,伺服器只建立一個例項物件 的理解
12樓:南
流程如下:1.容器載入servlet類2.容器初始化servlet類(呼叫建構函式),得到servlet類例項
3.容器通過servlet例項呼叫servlet的init()方法 以上3步在servlet的一生中只有一次呼叫
4.每當一個請求來到容器時,容器找到對應的servlet,並且生成request與response物件。再新建一個執行緒,在這個執行緒裡通過之前已經建立的servlet例項呼叫servlet的service(request,response)方法。
5.service方法根據http請求來呼叫對應的dopost與doget方法。6.
最後容器執行destroy()方法。servlet的一生走到盡頭gg
當買車客戶問起最低價時怎麼回答,買汽車客戶通常會問哪些問題
怎樣才能以最低 將車開回家?這是每個人都關心的問題。很多人以為熟人有面子,所以到處托熟人買車。其實,在銷售微利的年代,有時候賣給陌生人的 比友情價更低。因為熟人拿到 後通常不好意思再還價,而精明的顧客卻討價還價直到最後一刻。那麼,我們怎樣才能以較低的 把車開回家呢?首先當然是貨比三家。這個 比 是有...
當位置開關關閉時,是否可以請求位置資訊?
2 開啟貼吧客戶端,登陸後點選左上角的頭像。3 接著再點選左下角的 設定 4 在 設定 下找到 隱私設定 5 開啟 隱私設定 在最上方就可以看到 地理位置資訊共享 6 將 地理位置資訊共享 後面的開關關閉即可。手機在開機狀態下可以被網路定位,這一點已經是一種常識了。所以才會有前些年還在收取國內網路漫...
當開啟多個視窗時,(不先點下兩個視窗)如何固定在兩個視窗中切換
按住alt鍵同時,然後不斷按tab鍵,直到你需要的兩個視窗其 中一個出來,此時兩版個鍵都鬆開,再次按住權住alt鍵同時,然 後不斷按tab鍵,直到你需要的兩個視窗另一個出來,再次兩個鍵鬆開。這個時候你再用alt tab切換鍵切換的時候,就這兩個視窗切換了。提醒 這個時候切換,一定是切換一次,全鬆開一...