系統知識網 系統知識 jsp內置對象是什麼?常見的jsp內置對象有哪些?(jsp高手筆記)

jsp內置對象是什麼?常見的jsp內置對象有哪些?(jsp高手筆記)

jsp內置對象是什麼?JSP內置對象是Web容器創建的一組對象,不使用new關鍵字創建,就可以直接使用。JSP全名為Java Server Pages,中文名叫java服務器頁面。那麼常見的jsp內置對象有哪些呢?常見的九大jsp內置對象。

jsp內置對象是什麼?JSP內置對象是Web容器創建的一組對象,不使用new關鍵字創建,就可以直接使用。JSP全名為Java Server Pages,中文名叫java服務器頁面。那麼常見的jsp內置對象有哪些呢?

常見的九大jsp內置對象詳細介紹:

JSP中一共預先定義瞭9個這樣的對象,分別為:request、response、session、application、out、pagecontext、config、page、exception

out對象:

緩沖區——Buffer,就是內存的一塊區域,用來保存臨時數據。

out對象是JSPWriter類的實例,向客戶端輸出內容時常用的對象。

out對象常用的方法有:

  • void println() 向客戶端打印字符串;
  • void flush() 將緩沖區內容輸出到客戶端;
  • void clear() 清除緩沖區的內容,如果在flush之後調用會拋出異常;
  • void clearBuffer() 清除緩沖區的內容,在flush之後調用不會拋出異常;
  • int getBufferSize() 返回緩沖區字節數的大小,如果不設緩沖區則為0;
  • int getRemaining() 返回緩沖區還剩餘多少可用;
  • boolean isAutoFlush() 返回緩沖區滿時,是自動清空還是拋出異常;
  • void close() 關閉輸出流

get與post的區別:

表單有兩種提交方式:get與post

提交方式 提交內容的方式 數據量大小 安全性 效率 適用情況
get 明文,通過URL提交數據(數據在URL中可以看到) 不超過2KB 較低 適合提交數據量不大,安全性不高,的數據;比如:搜素、查詢等功能。
post 將用戶提交的信息封裝在HTML HEADER內 數據量大 適合提交數據量大,安全性高,的用戶信息;比如:註冊、修改、上傳等功能。

request對象:

客戶端的請求信息被封裝在request對象中,通過它才能瞭解到客戶的需求,然後做出響應。

request對象是HttpServletRequest類的實例。

request對象具有請求域,即完成客戶端的請求之前,該對象一直有效。

常用的方法有:

  • String getParameter(String name) 返回指定參數的參數值;
  • String[] getParameterValues(String name) 返回包含指定參數的所有參數值的數組;
  • void setAttribute(String,Object) 存儲此請求中的屬性;
  • object getAttribute(String name) 返回指定屬性的屬性值;
  • String getContentType() 得到請求體的MIME類型;
  • Stirng getProtocol() 返回請求的協議類型和版本號;
  • String getServerName() 返回接收請求的服務器主機名;
  • int getServerPort() 返回服務器接收此請求所用的端口號;
  • String getCharacterEncoding() 返回字符編碼方式;
  • int getContentLength() 返回請求體的長度(字節數);
  • String getRemoteAddr() 返回發送此請求的客戶端IP地址;
  • String getRealPath(String path) 返回某虛擬路徑的真實路徑;
  • String getContentPath() 返回上下文路徑。

response對象:

response對象包含瞭,響應客戶請求的有關信息,在JSP中很少直接用到它。

response對象是HttpServletResponse類的實例。

response對象具有頁面作用域,即訪問一個頁面時,該頁面內的response對象隻能對這次訪問有效,其它頁面的response對象對當前頁面無效。

常用的方法:

  • String getCharacterEncoding() 返回響應的字符編碼;
  • void setContentType(String type) 設置響應的MIME類型;
  • PrintWriter getWriter() 返回一個 可以向客戶端輸出字符的 對象;(response對象生成的輸出流對象,出現在out內置對象的前面)
  • sendRedirect(java.lang.String location) 重新定向客戶端的請求。

請求轉發VS請求重定向

方式 Client/Server 方法 說明 URL內容
請求重定向 客戶端行為 response.sendRedirect() 本質上等同於兩次請求,前一次的請求對象不會保存 URL改變
請求轉發 服務器行為 request.getRequestDispatcher().forward(req,resp) 一次請求,轉發後請求對象會保存 URL不變

session對象:

  session:客戶端與服務器的一次會話

Web中的session:用戶在瀏覽某個網站時,從進入網站,到瀏覽器關閉所經過的這段時間,也就是,用戶瀏覽這個網站所花費的時間。

  session實際上是一個特定的時間概念。

session對象在第一個JSP頁面被裝載時自動創建,開始會話期管理。

一個session:從客戶打開瀏覽器並連接到服務器開始,到客戶關閉瀏覽器離開這個服務器結束。

session對象,是HttpSession類的實例。

常用的方法:

  • long getCreationTime() 返回session創建時間;
  • String getId() 返回session創建時JSP引擎為它設的唯一ID號;
  • Object setAttribute(String name,Object value) 使用指定名稱將對象綁定到此會話;
  • Object getAttribute(String name) 返回此對話中,與指定名稱綁定在一起的對象,如果該名稱下沒有綁定對象,返回null;
  • String[] getValueNames() 返回一個 包含此會話中所有可用屬性 的數組;
  • int getMaxInactiveInterval() 返回兩次請求間隔多長時間此session被取消;
  • void setMaxInactiveInterval(long time) 設置兩次請求間隔多長時間此session被取消。

Session的生命周期

創建:當客戶端第一次訪問某個jsp或者Servlet的時候,服務器會為當前會話創建一個SessionId,每次客戶端向服務器端發送請求時,都會將該SessionId攜帶過去,服務器端會對此SessionId進行校驗。

活動:

  • 某次會話當中,通過超鏈接打開的新頁面,屬於同一次會話;
  • 隻要當前會話頁面沒有全部關閉,重新打開新的瀏覽器窗口訪問同一項目資源時屬於同一次會話;
  • 除非本次會話的所有頁面都關閉後,再重新訪問某個jsp或者servlet將會創建新的會話。

銷毀:

session的銷毀方式有3種:

  1. 調用session.invalidate()方法;
  2. Session過期(超時);
  3. 服務器重新啟動。

  tomcat默認session超時時間為30分鐘,

設置Session超時,兩種方式:

  1. session.setMaxInactiveInterval(time) //單位是秒;
  2. 在web.xml中配置

<session-config>

<session-timeout>

10

</session-timeout>

</session-config> //單位是分鐘

application對象:

application對象,實現用戶間數據的共享,可存放全局變量;

application對象,開始於服務器啟動,終止於服務器關閉;

在用戶的前後連接或不同用戶之間的連接中,可以對application對象的同一屬性進行操作;

在任何地方對application對象屬性的操作,都將影響到其他用戶對此的訪問;

application對象是ServletContext類的實例。

常用的方法:

  • void setAttribute(String name,Object value) 使用指定名稱將對象綁定到此會話;
  • Object getAttribute(String name) 返回此會話中,指定名稱綁定的對象,如果該名稱沒有綁定任何對象,則返回null;
  • Enumeration getAttributeNames() 返回此會話所有可用屬性名的枚舉;
  • String getServerInfo() 返回JSP(servlet)引擎名及版本號。

page對象:

page對象,就是指當前JSP頁面本身,有點像類中的this指針;

page對象,是java.lang.Object類的實例。

pageContext對象

pageContext對象,提供瞭對JSP頁面內所有對象及名字空間的訪問;

pageContext對象,可以訪問到本頁所在的session,也可以取本頁面所在的application的某一屬性值;

pageContext對象是pageContext類的實例。

config對象:

config對象,是在一個servlet初始化時,jsp引擎向它傳遞信息用的,此信息包括servlet初始化時所要用到的參數(由屬性名和屬性值構成)以及服務器的有關信息(傳遞一個ServletContext對象);

常用的方法:

  • ServletContext getServletContext() 返回含有服務器相關信息的ServletContext對象;
  • String getInitParameter(String name) 返回初始化參數的值;
  • Enumeration getInitParameterNames() 返回Servlet初始化所需要的所有參數的枚舉。

exception對象:

exception對象,是一個異常對象,當一個頁面在運行過程中發生瞭異常,就產生這個對象。如果一個Jsp頁面要應用此對象,就必須把isErrorPage設為true,否則無法編譯。是java.lang.Throwable的對象。

常用方法:

  • String getMessage() 返回描述異常的消息;
  • String toString() 返回關於異常的簡短描述消息;
  • void printStackTrace() 顯示異常及其棧軌跡;
  • Throwable FillInStackTrace() 重寫異常的執行棧軌跡。

以上就是常見的jsp內置對象的詳細介紹瞭,內容比較詳細想必對大傢會有用。

返回顶部