詳解JSP九大內置對象

內置對象:就是在JSP中無需創建就可使用的稱爲內置對象,它是有容器創建的(如Tomcat、JBoss、weblgic等容器創建)。

JSP九大內置對象分別爲:out、request、response、session、application、pageContext、page、config、exception。

1、out對象

  向客戶端輸出信息,它是JspWriter類的一個實例。

  常用的有out.print();或out.println();

2、request對象

  獲取客戶端傳遞到服務器的信息。request對象實現了HttpServletRequest接口,而此接口又繼承與ServletRequest接口。由於接口是不能創建對象的,所以可以通過反射(request.getClass().getName())來獲得request對象屬於具體的哪個類,不同的容器(服務器)會產生不一樣的結果。

request對象常用的方法

    1. getParameter():獲得客戶端傳遞給服務器一個參數的值。

    2. getParameterNames():獲得客戶端傳遞給服務器的所有參數的名字。

    3. getParameterValues():獲取一個參數的所有值(如checkBox的情況)。

    4. setAttribute(),getAttribute(),removeAttribute():這三個方法主要用於struts框架中,必須在同一個請求中設置的屬性才能獲得。

    5. getCookies():把個人信息存放到客戶端。

    6. setCharacterEncoding()/getCharacterEncoding():設置/獲得字符編碼。

    7. getContextLength():獲得整個網頁的長度(長度不確定時返回-1).

    8. getRequestURL():返回當前網頁的地址(http://localhost:8080/項目名/具體頁面.jsp)

    9. getRequestURI():返回項目名/具體網頁.jsp。

    10. getMethod():獲得網頁提交的方法,默認爲get,還可以設置爲post。

    11. getRemoteAddr():獲得遠程地址。

    12. getRemoteHost():獲得遠程主機的名稱。

    13. getServerPort():端口號(一般默認是8080)。

    14. getServletPath():/具體網頁.jsp。

    15. getContextPath():/項目名,獲得的是上下文路徑。

    16. getHeader(),getHeaders(),getHeaderNames():request.getHeader("Referer");獲得來自的網頁。

3、response對象

  向客戶端瀏覽器輸出信息,對客戶的請求進行響應。它是實現了HttpServletResponse接口,此接口繼承與ServletResponse,與request對象類似,根據反射機制,由於服務器不同,具體的類也不一樣。

4、session對象

  會話對象,它是實現HttpSession接口。它們有會話失效時間,tomcat默認是30分鐘,可以設置。每個用戶的會話空間是隔離的,例如用戶商城網站,每個人買的東西都不一樣,他們各自把選的商品放在各自的購物車中,互不影響。

5、Application對象

  應用對象,它是實現ServletContext接口。Application、Session、request都可以通過setAttribute來設置屬性,通過getAttribute來獲取屬性的值。但是它們的可見範圍是不一樣的。

  • Application對象所設置的屬性不會過期,它在整個服務器運行過程中都是有效的,直到服務器重啓。

  • Session對象所設置的屬性只有在同一個session中可見。

  • request對象所設置的屬性只有在同一次請求之間可見。

通過Application.getRealPath();可以獲得其真實路徑。

如c:\workspace\.metadate\.plugins\org.eclipse.wst.server.core\temp0\wtpwebapps\項目名(這是項目最後部署完成的一個目錄)。

6、page對象

  JSP網頁在翻譯時會轉換成一個servlet(而此servlet是一個類)。

   它是JSP網頁本身,page對象是當前網頁轉換後的servlet類的實例。

7、config對象

  一般用來配置指定的JSP參數,它是實現了ServletConfig接口。

8、exception對象

  在可能產生錯誤的文件中用page指令指定errorPage(例如在test.jsp頁面中設置errorPage="error.jsp"),然後在error.jsp頁面中指定isErrorPage="true",用exception對象獲取錯誤信息。

9、pageContext對象

  它是PageContext類的一個實例。

  它主要有以下兩個作用:

      1. 獲取其它八大對象的句柄

        pageContext.getOut();       //獲得out對象的句柄

        pageContext.getRequest();     //獲得request對象的句柄

        pageContext.getResponse();    //獲得response對象的句柄

        pageContext.getSession();     //獲得session對象的句柄

        pageContext.getServletContext();//獲得application對象的句柄

        pageContext.getServletConfig(); //獲得config對象的句柄

        pageContext.getException();   //獲得exception對象的句柄

        pageContext.getPage();      //獲得page對象的句柄

      2. 設置或獲取4(page,request,session,application)個不同範圍的值

        pageContext.setAttribute("name","zhang");   //只在本頁面有效

        pageContext.setAttribute("name","zhang",PageContext.REQUEST_SCOPE);  

        相當於request.setAttribute("name","zhang"); //只在同一次請求中有效

        pageContext.setAttribute("name","zhang",PageContext.SESSION_SCOPE);  

        相當於session.setAttribute("name","zhang"); //只在同一次會話中有效

        pageContext.setAttribute("name","zhang",PageContext.APPLICATION_SCOPE);  

        相當於application.setAttribute("name","zhang"); //在整個應用中都有效

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章