servlet再次總結

上古休斯發表於2018-04-30
 請求重定向和請求轉發的區別,請求重定向
redirect是不推薦用的,因為在跳轉的過程中引數是傳不過去的,原因呼叫servlet的request和response和申請的servlet  request..和response不是一個,但是可以在不同站點之間跳轉,而後者只能在一個servlet之間跳轉,但是請求的request和response和呼叫的是同一個,後者是常用的,可以傳遞引數。

post和get方式的提交不同,編碼的問題,
前者的提交編碼是html頁面的編碼,可以在後臺轉碼
後者提交的引數在URL後邊,提交的編碼是瀏覽器的預設編碼,所以儘量別用中文傳參,後臺編碼轉碼是沒用的。

絕對路徑和相對路徑的不同

絕對路徑是以/開頭的,是全的http://
後者是如servlet2這樣的短路徑。

請求域來接受傳遞資料的不同,

在後臺常用setAttribute來傳遞引數,
這便是請求域。

獲取請求中資料,方式,姿態,
可以常用getParameter獲取單個引數。
獲取陣列如前臺的多選框用getParameterValues

servlet執行原理,
當發過來的請求,是靜態的請求時,那麼伺服器就會直接返回資訊,當是動態的請求時就會
servlet客戶端傳送請求到servlet容器中的jvm中啟用servlet,servlet只建立一個例項,就是在第一次請求的時候建立的,然後分發給其他servlet來處理,最後返回給web容器,返回給客戶端。框架就是對於servlet的一種封裝。

servlet的生命週期,
首先會在第一次請求的時候建立一個例項,然後初始化,初始化是為了載入後邊的處理servlet的資源,準備好資源,然後交給servlet處理,Get處理get請求,Post處理post請求。當呼叫銷燬方法時,比如關了連結資料庫,把io關了,把建立的例項銷燬,把資源歸還給servlet容器,把容器釋放。為其他請求騰資源。空間。

當多個請求時只建立一個例項,第一個請求由一個執行緒去處理,第二個請求由另一個執行緒請求去處理。

servlet執行緒安全性,

servlet是預設多執行緒的處理,所以成員變數和共享型資源都是不安全的,所以要少用成員變數,設定執行緒等待,而request請求是安全的,因為一個請求只有一個執行緒來處理。

servlet過濾器,我更願意把它說成servlet連它是在使用者和web伺服器之間的一層,檢查request請求,處理response響應,一般總在中文亂碼和許可權控制時使用,注意web.xml的控制路徑,過濾路徑是請求的URL中的路徑。

servlet監聽器一般用來統計訪問網站人數。

 jsp隱式物件,就是在容器中被定義好的物件,內嵌好的物件,你直接用就好了,嚴禁重複宣告物件,直接使用容器的服務和資源根據需求,這就是九大內建物件,servlet中也有,分為四種型別,輸入輸出型別,通訊型別,錯誤型別,頁面傳遞型別,直接用變數呼叫裡邊的方法就行了。


相關文章