1. 程式人生 > >jsp九大內建物件與四大域物件(轉載)

jsp九大內建物件與四大域物件(轉載)

一,什麼是內建物件?

在jsp開發中會頻繁使用到一些物件,如ServletContext HttpSession PageContext等.如果每次我們在jsp頁面中需要使用這些物件都要自己親自動手建立就會特別的繁瑣.SUN公司因此在設計jsp時,在jsp頁面載入完畢之後自動幫開發者建立好了這些物件,開發者只需要使用相應的物件呼叫相應的方法即可.這些系統建立好的物件就叫做內建物件.

在servlet程式中,如果開發者希望使用session物件,必須通過request.getSession()來得到session物件;而在jsp程式中,開發中可直接使用session(系統幫我們建立好的session物件的名字就叫session)呼叫相應的方法即可,如:session.getId().

二,九大內建物件到底是哪九大呢?

[plain] view plain copy  print?
  1. 內建物件名          型別  
  2. request        HttpServletRequest  
  3. response       HttpServletResponse  
  4. config         ServletConfig  
  5. application    ServletContext  
  6. session        HttpSession  
  7. exception      Throwable  
  8. page           Object(this)  
  9. out            JspWriter  
  10. pageContext    PageContext   

三,解析幾個內建物件

1)out物件物件,物件型別是JspWriter類,相當於帶快取的PrintWriter(不帶快取)

PrintWriter:write("內容")           直接向瀏覽器輸出內容

JspWriter:writer("內容")            向jsp緩衝區寫出內容

JspWriter當滿足以下條件時之一時,緩衝區的內容寫出:

a,緩衝區滿了

b,重新整理緩衝區

c,關閉緩衝區

d,jsp頁面執行完畢

2)pageContext物件

pageContext的物件型別是PageContext,叫jsp的上下文物件.

pageContext作用:可以獲取其他八個內建物件

[plain] view plain copy  print?
  1. //示例:  
  2. pageContext.getOut();  
  3. pageContext.getServletConfig()  
使用場景:在自定義標籤時會頻繁使用到PageContext物件;或者是定義一個方法需要用到多個物件時,傳一個pageContext物件就能解決問題.

四,JSP中四大域物件

分類:

[plain] view plain copy  print?
  1. ServletContext     context域  
  2. HttpServletRequet  request域  
  3. HttpSession        session域     --前三種在學習Servlet時就能接觸到  
  4. PageContext        page域     --jsp學習的  
域物件的作用:儲存資料,獲取資料,共享資料.

儲存資料:

[plain] view plain copy  print?
  1. pageContext.setAttribute("內容");//預設儲存到page域  
  2. pageContext.setAttribute("內容",域範圍常量);//儲存到指定域中  
  3. //四個域常量  
  4. PageContext.PAGE_SCOPE  
  5. PageContext.REQUEST_SCOPE  
  6. PageContext..SESSION_SCOPE  
  7. PageContext.APPLICATION_SCOPE  

獲取資料:

[plain] view plain copy  print?
  1. pageContext.getAttribute("內容");  
  2. <p>pageContext.getAttribute("name",<span style="font-family:宋體;">域範圍常量</span><span style="font-family:Calibri;">);</span></p>//自動在四個域中搜索資料  
  3. pageContext.findAttribute("內容");//在四個域中自動搜尋資料,順序:page域->request域->session域->application域(context域)  

域作用範圍:

[plain] view plain copy  print?
  1. page域:    只能在當前jsp頁面使用                (當前頁面)  
  2. request域: 只能在同一個請求中使用               (轉發)  
  3. session域: 只能在同一個會話(session物件)中使用  (私有的)  
  4. context域: 只能在同一個web應用中使用            (全域性的)  

五,總結

堅持每天學一點新技術,堅持寫寫部落格,這就是今天部落格的總結!Fighting,bighuan!