常用內置對象:
1. 輸出輸入對象:request對象、response對象、out對象
2. 通信控制對象:pageContext對象、session對象、application對象
3. Servlet對象:page對象、config對象
4. 錯誤處理對象:exception對象
一:out(輸出對象)
作用:用於輸出JSP頁面的信息
作用域:page
使用方式:
<%="信息內容"%>
<%out.print("信息內容")%>
<%out.println("信息內容")%>
二:request(請求對象)
作用:將頁面上的動態信息提交給服務器,頁面提交后,顯示輸入的數據
動態信息:用戶名、密碼
作用域:Request
指從http頁面請求到服務器端處理結束,返回響應結果的整個過程
使用方式:
String name = request.getParameter("上一個界面表單里邊的文本域的name");
三:response(響應對象)
作用:將服務器端處理完的結果返回客戶端
登錄成功-->成功頁面
登錄失敗-->失敗頁面
作用域:page
使用方式:
(1)將請求重新定位到一個不同的URL頁面,即頁面重定向
response.sendRedirect("success.jsp");
response.sendRedirect("error.jsp");
四:session(會話對象)
*會話:一個會話就是瀏覽器與服務器之間的一次通話
session與瀏覽器一一對應,一次請求響應的過程就是一次會話
作用域:Session
發生以下四種情況之一,session將失效
• 用戶關閉當前正在使用的瀏覽器
• 關閉網頁服務器
• 用戶未向服務器提出請求,無操作停留時間超過session預設時間
• 運行程序結束session
*注意:當瀏覽器關閉時,不會向服務器發送信息,這次會話關聯的所有會話數據不會馬上被刪除,直到會話超時才會被刪除。但是,當用戶再次打開瀏覽器時,服務器無法將新請求與以前的會話聯系起來,會通過新請求再創建一個新的會話。
五:application(應用程序對象)
所有客戶端使用的application對象都是同一個,這和session對象不同
作用域:application
開始於服務器的啟動,結束於服務器的關閉,在此期間,此對象一直存在
作用:
實現了用戶間數據共享,可存放全局變量。
*注意:在用戶的前后連續或不同用戶之間的連接中,都可以對此對象的同一屬性進行操作。而且,在任何地方對此對象屬性的操作,都將影響到其他用戶對此訪問。
六:exception(異常對象)
作用域:page
七:page(頁面對象)
page指的是JSP本身
作用域:page
八:config(配置對象)
作用域:page
九:pageContext(頁面上下文對象)
作用域:page
可以訪問其他八個對象
四大作用域
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都是完全隔離的,無論如何修改都不會影響其他