JSP九大內建對象和四個範圍

來源:互聯網
上載者:User

標籤:nbsp   ida   war   容器   attribute   int   pre   request   活動   

現在我們先來說一下四個範圍,以便描述各大對象都分屬於什麼範圍,下面我們就通過一張簡單的表格來看看各大範圍的資訊共用範圍:

    第一個範圍是page,他只在當前頁面有效,也就是使用者請求的頁面有效,噹噹前頁面關閉或轉到其他頁面時,page對象將在響應回饋給用戶端後釋放。

    第二個範圍是request,他在當前請求中有效,request可以通過setAttribute()方法實現頁面中的資訊傳遞,也可以通過forward()方法進行頁面間的跳轉,需要注意的是request是轉寄不是重新導向,轉寄相對於瀏覽器來說是透明的,也就是無論頁面如何跳轉,地址欄上顯示的依舊是最初的地址。

    第三個範圍是session,他在當前回話中有效。當一個台電腦上的同一瀏覽器對伺服器進行多次訪問時,在這多次訪問之間傳遞的資訊就是session範圍的範圍。它從瀏覽器發出第一個HTTP請求即可認為會話開始,但是會話結束的時間是不確定的,因為在瀏覽器關閉時並不會通知伺服器,一般Tomcat設定的預設時間為120分鐘,也可以通過setMaxInactiveInterval(int)方法進行設定,或是通過invalidate()方法強制結束當前會話。

    第四個範圍是application,他在所有的應用程式中都有效,也就是當伺服器開始到伺服器結束這段時間,application範圍中儲存的資料都是有效,同樣可以通過setAttribute賦值和getAttribute取值。

    好了,相信現在大家已經對四個範圍有了一定的瞭解,下面我們來說一下九大內建對象。

內建對象一(out):

    out 對象用於在Web瀏覽器內輸出資訊,並且管理應用伺服器上的輸出緩衝區。在使用 out 對象輸出資料時,可以對資料緩衝區進行操作,及時清除緩衝區中的殘餘資料,為其他的輸出讓出緩衝空間。待資料輸出完畢後,要及時關閉輸出資料流。其最常用的方法為print,可在頁面中顯示字串資訊。out的範圍為page:

<%out.print("Hello World"); %>

內建對象二(request):

    request 對象是 javax.servlet.httpServletRequest類型的對象。 該對象代表了用戶端的請求資訊,主要用於接受通過HTTP協議傳送到伺服器的資料。(包括頭資訊、系統資訊、請求方式以及請求參數等)。request對象的範圍為一次請求(也就是request範圍)。request的常用方法有getParameter(String name)根據表單組件名稱擷取頁面提交資料,getParameterValues(String name)擷取一組以相同名稱命名的表單組件提交的資料,setCharacterEncoding(String charset)在調用getParameter()方法前進行設定,用於解決中文亂碼,getRequestDispatcher(String path)返回一個javax.servlet.RequestDispatcher對象,該對象的forward()方法用於轉寄請求:

 <%   Object obj = new Object();       request.getParameter("uname");       request.getParameterValues("rid");       request.setCharacterEncoding("UTF-8");       request.getRequestDispatcher("目標頁面").forward(request,response);   %>

內建對象三(response):

    response 代表的是對用戶端的響應,主要是將JSP容器處理過的對象傳回到用戶端。response對象也具有範圍,它只在JSP頁面內有效。response的常用方法有addCookie(Cookie cookie)向用戶端添加cookie,serContentType(String type)設定HTTP響應的contentType類型,setCharacterEncoding(String charset)設定響應所採用的字元編碼類型,sendRedirect(String location)將請求重新置放到一個新的地址上,這是地址欄上的地址會改變:

 <%   response.addCookie(cokkie);   response.setContentType("type");   response.setCharacterEncoding("utf-8");   response.sendRedirect("重新置放的頁面");   %>

內建對象四(session):

    session 對象是由伺服器自動建立的與使用者請求相關的對象。伺服器為每個使用者都產生一個session對象,用於儲存該使用者的資訊,跟蹤使用者的操作狀態。session對象內部使用Map類來儲存資料,因此儲存資料的格式為 “Key/value”。 session對象的value可以使用物件類型。session的常用方法有setAttribute(String key,Object value)以key/value的形式將對象儲存到session中,getAttribute(String key)通過key值擷取session中儲存的value,invalidate()強制session對象失效,getId()擷取sessionid,setMaxInactiveInterval(int interval)設定session的非啟用時間,getMaxInactiveInterval()擷取session的有效非啟用時間,removeAttribute(String key)刪除session中對應key的value值:

<%   Object obj = new Object();   session.setAttribute("key",obj);   session.getAttribute("key");   session.setMaxInactiveInterval(100);   session.getMaxInactiveInterval();   session.getId();   session.removeAttribute("key");   session.invalidate();   %>

內建對象五(application):

    application 對象可將資訊儲存在伺服器中,直到伺服器關閉,否則application對象中儲存的資訊會在整個應用中都有效。與session對象相比,application對象生命週期更長,類似於系統的“全域變數”。application常用方法有setAttribute(String key,Object value)以key/value的形式將Object Storage Service到application中,getAttribute(String key)通過key擷取application中儲存的對象,getRealPath(String path)返回相對路徑的真實路徑:

  <%   Object obj = new Object();   application.setAttribute("key",obj);   application.getAttribute("key");   application.getRealPath("路徑名");   %>

內建對象六(pageContext):

    pageContext 對象的作用是取得任何範圍的參數,通過它可以擷取 JSP頁面的out、request、reponse、session、application 等對象。pageContext對象的建立和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象。pageContext的常用方法有getRequest()擷取request對象,getResponse()擷取response對象,getSession()獲得session對象,getOut()擷取out對象,setAttribute(String key,Object value)儲存屬性,getAttribute(String key)擷取屬性,include("url")請求指定的資源,並且將目標資源的響應結果包含在調用頁面的響應中:

<%   Object obj = new Object();   pageContext.getRequest();   pageContext.getResponse();   pageContext.getSession();   pageContext.getOut();   pageContext.setAttribute("key",obj);   pageContext.getAttribute("key");   pageContext.include("資源地址");   %>

內建對象七(page):

    page 對象代表JSP本身,只有在JSP頁面內才是合法的。 page隱含對象本質上包含當前 Servlet介面引用的變數,類似於Java編程中的 this 指標。

內建對象八(config): 

    config 對象的主要作用是取得伺服器的配置資訊。通過 pageConext對象的 getServletConfig() 方法可以擷取一個config對象。當一個Servlet 初始化時,容器把某些資訊通過 config對象傳遞給這個 Servlet。 開發人員可以在web.xml 檔案中為應用程式環境中的Servlet程式和JSP頁面提供初始化參數。

內建對象九(exception):

    exception 對象的作用是顯示異常資訊,只有在包含 isErrorPage="true" 的頁面中才可以被使用,在一般的JSP頁面中使用該對象將無法編譯JSP檔案。excepation對象和Java的所有對象一樣,都具有系統提供的繼承結構。exception 對象幾乎定義了所有異常情況。在Java程式中,可以使用try/catch關鍵字來處理異常情況; 如果在JSP頁面中出現沒有捕獲到的異常,就會產生 exception 對象,並把 exception 對象傳送到在page指令中設定的錯誤頁面中,然後在錯誤頁面中處理相應的 exception 對象。

    因為後三個對象很少在JSP頁面中使用,所以在這裡不過多介紹。

JSP九大內建對象和四個範圍

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.