servlet還有人用嗎 一個(gè)servlet中有兩個(gè)doGet方法,調(diào)用的是哪一個(gè)?
一個(gè)servlet中有兩個(gè)doGet方法,調(diào)用的是哪一個(gè)?當(dāng)服務(wù)器創(chuàng)建servlet對(duì)象時(shí),該對(duì)象將調(diào)用init方法來初始化自身。每次服務(wù)器收到servlet請(qǐng)求時(shí),都會(huì)生成一個(gè)新線程。在該線程中,s
一個(gè)servlet中有兩個(gè)doGet方法,調(diào)用的是哪一個(gè)?
當(dāng)服務(wù)器創(chuàng)建servlet對(duì)象時(shí),該對(duì)象將調(diào)用init方法來初始化自身。每次服務(wù)器收到servlet請(qǐng)求時(shí),都會(huì)生成一個(gè)新線程。在該線程中,servlet對(duì)象將調(diào)用服務(wù)對(duì)象來檢查HTTP請(qǐng)求類型(get、post),在服務(wù)方法中,將根據(jù)相應(yīng)的請(qǐng)求類型調(diào)用doget和dopost方法。如果用戶請(qǐng)求類型為get或post,則服務(wù)器處理完全相同,因此只能在doPost中編寫處理進(jìn)程,doPost在doGet中調(diào)用,否則也可以在doGet中處理,doGet在doPost中調(diào)用。如果根據(jù)不同的請(qǐng)求類型需要不同的處理,則需要在這兩種方法中編寫不同的處理過程。get請(qǐng)求的內(nèi)容(您在頁面上輸入的信息)將顯示在地址欄中,因此不安全。如果不顯示post,效果會(huì)更好。
多個(gè)客戶同時(shí)請(qǐng)求一個(gè)servlet后?
web容器通常為每個(gè)請(qǐng)求創(chuàng)建一個(gè)線程。如果用戶確認(rèn)servlet實(shí)例一次只處理一個(gè)請(qǐng)求,servlet就可以實(shí)現(xiàn)singlethreadmodel接口。如果servlet實(shí)現(xiàn)了這個(gè)接口,那么用戶可以確保兩個(gè)線程不能在servlet的服務(wù)方法中同時(shí)執(zhí)行。web容器可以通過同步訪問servlet的單個(gè)實(shí)例來實(shí)現(xiàn),或者通過維護(hù)web組件池來為每個(gè)實(shí)例調(diào)用新的請(qǐng)求。此接口不能防止web組件訪問共享資源(如靜態(tài)類變量和外部對(duì)象)時(shí)出現(xiàn)同步問題