天天看點

JSP---JSP中4個容器-pageContext使用setAttribute()和getAttribute:示範用pageContext設定4個容器的屬性:示範pageContext.findAttribute():順便提一下ContentType與pageEncoding的差別:

這裡重點隻講pageContext容器的用法哦。

因為另外的3個容器(request,session,application)在前面的servlet中已經示範過很多遍了

詳細介紹:

pageContext – 它的作用範圍僅為目前JSP頁面。

request – 對于使用者的一次請求有效,請求/響應結束即消失。

更多細節:

一個請求通過Servlet通路資源,在Servlet中将資料封裝到request中,這在機關中是通常的做法。必須記住、必須記住、必須記住。

然後将請求轉發到JSP頁面,在從JSP頁面上将封裝到request中的資訊取出。MVC

注意我上面說的是轉發,而不是重定向。

對于使用者的一次請求,并且請求完成後,資料将不再使用可使用request進行封裝,以節省記憶體。

session – 對于使用者的一次會話有效,通常我們用此域來封裝使用者登入的資訊。也必須記住。

application – 在整個Web項目的生命周期内有效,不建議使用或謹慎使用。實際項目中根本不用。

開發原則 – 能用小的域盡量使用小的域。

index.jsP;

JSP---JSP中4個容器-pageContext使用setAttribute()和getAttribute:示範用pageContext設定4個容器的屬性:示範pageContext.findAttribute():順便提一下ContentType與pageEncoding的差別:
JSP---JSP中4個容器-pageContext使用setAttribute()和getAttribute:示範用pageContext設定4個容器的屬性:示範pageContext.findAttribute():順便提一下ContentType與pageEncoding的差別:

pageContext.findAttribute()方法會依次從pageContext、request、session和application中(頁面、請求、會話、app)查找對應的屬性,找到一個,後面的就不會再去找了。如果沒有就傳回null.

示範結果:

JSP---JSP中4個容器-pageContext使用setAttribute()和getAttribute:示範用pageContext設定4個容器的屬性:示範pageContext.findAttribute():順便提一下ContentType與pageEncoding的差別:

pageEncoding是jsp檔案本身的編碼 ,把jsp檔案編譯成java的時候給編譯器用的 。

contentType的charset是指伺服器發送給用戶端時的内容編碼 ,是浏覽器解析網頁的時候用的

如果兩個任意設定了其中一個,另一個即會與此保持一緻。但,contentType除可以設定charset外,還可以設定MIME類型,如text/html