1. 程式人生 > >Jsp的四大作用域與九大對象

Jsp的四大作用域與九大對象

處理對象 tput rec message padding ddc tex AC init

轉載:https://www.cnblogs.com/mengzhen123/p/5968831.html

內置對象特點:

1. 由JSP規範提供,不用編寫者實例化。

2. 通過Web容器實現和管理

3. 所有JSP頁面均可使用

4. 只有在腳本元素的表達式或代碼段中才可使用(<%=使用內置對象%>或<%使用內置對象%>)

常用內置對象:

1. 輸出輸入對象:request對象、response對象、out對象

2. 通信控制對象:pageContext對象、session對象、application對象

3. Servlet對象:page對象、config對象

4. 錯誤處理對象:exception對象

Request(Javax.servlet.ServletRequest)它包含了有關瀏覽器請求的信息.通過該對象可以獲得請求中的頭信息、Cookie和請求參數。

Response(Javax.servlet.ServletResponse)作為JSP頁面處理結果返回給用戶的響應存儲在該對象中。並提供了設置響應內容、響應頭以及重定向的方法(如cookies,頭信息等)

Out(Javax.servlet.jsp.JspWriter)用於將內容寫入JSP頁面實例的輸出流中,提供了幾個方法使你能用於向瀏覽器回送輸出結果。

pageContext(Javax.servlet.jsp.PageContext)描述了當前JSP頁面的運行環境。可以返回JSP頁面的其他隱式對象及其屬性的訪問,另外,它還實現將控制權從當前頁面傳輸至其他頁面的方法。

Session(javax.servlet.http.HttpSession)會話對象存儲有關此會話的信息,也可以將屬性賦給一個會話,每個屬性都有名稱和值。會話對象主要用於存儲和檢索屬性值。

Application(javax.servle.ServletContext)存儲了運行JSP頁面的servlet以及在同一應用程序中的任何Web組件的上下文信息。

Page(Java.lang.Object)表示當前JSP頁面的servlet實例

Config(javax.servlet.ServletConfig)該對象用於存取servlet實例的初始化參數。

Exception(Javax.lang.Throwable)在某個頁面拋出異常時,將轉發至JSP錯誤頁面,提供此對象是為了在JSP中處理錯誤。只有在錯誤頁面中才可使用<%@page isErrorPage=“true”%>

Jsp內置對象

功能

主要方法

out

向客戶端輸出數據

print() println() flush() clear() isAutoFlush() getBufferSize() close() …………

request

向客戶端請求數據

getAttributeNames() getCookies() getParameter() getParameterValues() setAttribute() getServletPath() …………..

response

封裝了jsp產生的響應,然後被發送到客戶端以響應客戶的請求

addCookie() sendRedirect() setContentType()

flushBuffer() getBufferSize() getOutputStream()

sendError() containsHeader()……………

application

config

表示Servlet的配置,當一個Servlet初始化時,容器把某些信息通過此對象傳遞給這個Servlet

getServletContext() getServletName() getInitParameter() getInitParameterNames()……………

page

Jsp實現類的實例,它是jsp本身,通過這個可以對它進行訪問

flush()………

pagecontext

為JSP頁面包裝頁面的上下文。管理對屬於JSP中特殊可見部分中己經命名對象的該問

forward() getAttribute() getException() getRequest() getResponse() getServletConfig()

getSession() getServletContext() setAttribute()

removeAttribute() findAttribute() ……………

session

用來保存每個用戶的信息,以便跟蹤每個用戶的操作狀態

getAttribute() getId() getAttributeNames() getCreateTime() getMaxInactiveInterval()

invalidate() isNew()

exception

反映運行的異常

getMessage()…………

pageContext, request, session、application四個作用域中

1、如果把變量放到pageContext裏,就說明它的作用域是page,它的有效範圍只在當前jsp頁面裏。 從把變量放到pageContext開始,到jsp頁面結束,你都可以使用這個變量。

2、如果把變量放到request裏,就說明它的作用域是request,它的有效範圍是當前請求周期。所謂請求周期,就是指從http請求發起,到服務器處理結束,返回響應的整個過程。在這個過 程中可能使用forward的方式跳轉了多個jsp頁面,在這些頁面裏你都可以使用這個變量。 3、如果把變量放到session裏,就說明它的作用域是session,它的有效範圍是當前會話。所謂當前會話,就是指從用戶打開瀏覽器開始,到用戶關閉瀏覽器這中間的過程。這個過程可能包含多個請求響應。也就是說,只要用戶不關瀏覽器,服務器就有辦法知道這些請求是一個人發起的,整個過程被稱為一個會話(session),而放到會話中的變量,

4、如果把變量放到application裏,就說明它的作用域是application,它的有效範圍是整個應用。整個應用是指從應用啟動,到應用結束。我們沒有說“從服務器啟動,到服務器關閉”是因為一個服務器可能部署多個應用,當然你關閉了服務器,就會把上面所有的應用都關閉了。application作用域裏的變量,它們的存活時間是最長的,如果不進行手工刪除,它們就一直可以使用。與上述三個不同的是,application裏的變量可以被所有用戶共用。如果用戶甲的操作修改了application中的變量,用戶乙訪問時得到的是修改後的值。這在其他scope中都是不會發生的,page, request, session都是完全隔離的,無論如何修改都不會影響其他

Jsp的四大作用域與九大對象