1. 程式人生 > >JSP 內建物件

JSP 內建物件

JSP提供了九個內建物件

  • request:請求物件
  • response:響應物件
  • session:會話物件
  • application:應用程式物件
  • out:輸出物件
  • page:頁面物件
  • config:配置物件
  • exception:異常物件
  • pageContext:頁面上下文物件

request物件

當客戶端請求一個JSP頁面時,JSP容器會將客戶端的請求資訊包裝在這個request物件中.

封裝的資料大概有如下幾種:

  • HTTP報文頭部資料.
  • 客戶端提交的資料.
  • 網路層協議資料.

主要方法

  • getParameter(String name)//返回指定引數,不存在則返回空
  • getParameterValues(String name)//返回指定引數所有值,不存在則返回空
  • setAttribute(String key,Object obj)
  • getAttribute(String name)
  • getAttributeNames()
  • getSession()//獲取request對應的session物件,不存在則建立一個
  • getInputStream()
  • getRemoteAddr()
  • getCharacterEncoding()

response物件

向客戶端傳送資料,設定HTTP報文頭,寫入cookie資訊,將處理結果返回客戶端

主要方法

  • setRedirect(String location)//對畫面進行跳轉.
  • setCharacterEncoding(String charset)//設定響應字元編碼
  • setContenType(String type)//設定響應頭資訊
  • reset()//清除快取中任何資料.
  • isCommitted()//返回響應是否已經提交到客戶端
  • addCookie(Cookie c)
  • getCookie(Cookie c)

cookie的操作

向客戶端傳送cookie

Cookie c = new Cookie("username","u1");
c.setMaxAge(60*60*24*7);
response.addCookie(c);

從客戶端讀取cookie

Cookie [] cookies = request.getCookies();
if(cookies!=null){
    for(int i=0; i<cookies.length;i++){
        Cookie cookie=cookies[i];
        if(cookit.getName().equals("userName"))
            dosomething(cookie.getValue());
        }
    }
}

session物件

客戶端和伺服器之間的互動稱為會話,session儲存物件資訊.用於臨時儲存多個頁面的共享資料.

session物件會在以下情況失效

  • 客戶關閉瀏覽器.
  • 會話超時,即超過session物件的生存時間.預設30min
  • 顯式的呼叫invalidate方法

主要方法

  • getId()
  • removeAttribute(String name)
  • setAttribute(String name,Object value)
  • getAttribute(String name)
  • getCreationTime()
  • setMaxInactiveInterval(int n)
  • invalidate()
  • 利用session物件儲存資料
  • session物件的生命週期

out物件

向客戶端傳送資料,傳送的內容是瀏覽器需要顯示的內容.型別為JspWriter

寫入到tomcat的緩衝區

  • page指定的buffer屬性關閉了out物件的快取功能
  • out物件的緩衝區已滿
  • 整個JSP頁面結束

主要方法

  • print(datatype data)
  • println(datatype data)
  • newLine()
  • flush()
  • close()
  • clear()
  • getRemaining()

application物件

用於多個程式或使用者之間的共享資料

主要方法

  • getInitParameter(String name)
  • getServerInfo()
  • getRealPath(URL)
  • setAttribute(String key,Object obj)
  • getAttribute(String name)

利用application物件儲存資料

其他內建物件

page物件,指向當前物件本身

config物件,用於獲取配置引數

pageContext物件,代表頁面上下文

pageContext主要方法

  • setAttribute(String key,Object value[,int scope])
  • getAttribute(String name)
  • forward(String url)//頁面重定向到另外一個頁面
  • getRequest()
  • getServletConfig()