JSP的四大作用域(pageContext request session application)

jsp四大作用域

jsp概念

JSP(全稱JavaServer Pages)一種動態網頁技術標準。JSP部署於網絡服務器上,可以響應客戶端發送的請求,並根據請求內容動態地生成HTML、XML或其他格式文檔的Web網頁,然後返回給請求者。JSP技術以Java語言作爲腳本語言,爲用戶的HTTP請求提供服務,並能與服務器上的其它Java程序共同處理複雜的業務需求。
JSP將Java代碼和特定變動內容嵌入到靜態的頁面中,實現以靜態頁面爲模板,動態生成其中的部分內容。簡單來說就是一種在html嵌入java代碼,並且能夠實現網頁動態交互的一個技術。在沒有jsp的時候,主要是在servlet中嵌套html代碼。jsp技術可以說是反過來了。同時,每個JSP 頁面在第一次被訪問時,WEB容器都會把請求交給JSP引擎(即一個Java程序)去處理。JSP文件會被翻譯成一個_jspServlet文件(實質上也是一個servlet) ,然後按照servlet的調用方式進行調用。

四大作用域

  1. pageContext
  2. request
  3. session
  4. application

pageContext(page域):
1.page域指當前的jsp頁面,作用範圍是整個JSP頁面,是四大作用域中最小的一個。
2.在pageContext中可以存數據,可利用setAttribute(String name,Object value,int scope)。
3.pageContex的生命週期是這個頁面的運行時間,若你關掉這個頁面,頁面運行結束,pageContext就會消亡,數據也會失效。
4.使用情況:只適合在一個頁面中使用,在一個頁面中定義變量,和保存在此頁面中有用的數據。

request(request域):
1.request是指一次請求,即當用戶訪問web服務器的時候,web服務器會生成request和response對象,然後在service方法調用,完成用戶的請求和對用戶的響應。作用範圍整個請求鏈
2**.request域中可以存數據**,可利用setAttribute(String name,Object value,int scope)。
3**.request的生命週期是請求的週期**,若請求一直轉發下去,其生命並不會結束。當整個請求結束,request生命結束。在request保存的數據也會失效。
4.使用情況:用於一次請求在不同頁面間的操作及參數傳遞,如表單的參數傳遞。

session(session域)
1.session是指一次會話,當用戶首次訪問服務器時,服務器會根據每一個瀏覽器的請求創建一個session對象,每個用戶有每個的session對象,相當於身份證,保存在服務器中。藉助cookie技術來傳遞id屬性,就可以在每次訪問中找到自己的session。作用範圍是一次會話。
2**.session域中可以存數據**,可利用setAttribute(String name,Object value,int scope)。
3.session的生命週期是在服務器正常的情況下,在第一次調用request.getSession()方法時到銷燬該session時結束。默認情況是30分鐘。當然也可以設置session的maxage來改變生命週期。生命結束,數據會丟失。
4.使用情況:主要是網站用戶的信息,購物車

application(ServletContext)
1.application即是servlet中的ServeltContext。application作用範圍:整個Web應用。
2**.ServletContext可以存數據,只要設置一次,整個web應用都可以訪問到數據。**
3.ServletContext生命週期在服務器啓動時創建,在服務器關閉時銷燬
4.使用情況:每個用戶都可以訪問的數據,或者多個客戶端共享數據。例如購物網站的首頁,商品頁等。

作用域從小到大爲:PageContext(jsp頁面),ServletRequest(一次請求),HttpSession(一次會話),ServletContext(整個web應用)。
一個jsp頁面在搜尋數據時,這四個域中有數據同名的話從作用域小的地方到作用域大的地方搜尋。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章